✨ Deep link
This commit is contained in:
parent
74b6ccd5c7
commit
7800a70ef2
21
.github/workflows/nightly.yml
vendored
21
.github/workflows/nightly.yml
vendored
@ -22,27 +22,6 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
name: build-output-web
|
name: build-output-web
|
||||||
path: build/web
|
path: build/web
|
||||||
build-apk:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Clone repository
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
- name: Set up Flutter
|
|
||||||
uses: subosito/flutter-action@v2
|
|
||||||
with:
|
|
||||||
channel: stable
|
|
||||||
cache: true
|
|
||||||
- uses: actions/setup-java@v4
|
|
||||||
with:
|
|
||||||
distribution: "zulu"
|
|
||||||
java-version: "17"
|
|
||||||
- run: flutter pub get
|
|
||||||
- run: flutter build apk --split-per-abi
|
|
||||||
- name: Archive production artifacts
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: build-output-android
|
|
||||||
path: build/app/outputs/flutter-apk/*.apk
|
|
||||||
build-exe:
|
build-exe:
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
steps:
|
steps:
|
||||||
|
@ -23,11 +23,26 @@ if (flutterVersionName == null) {
|
|||||||
flutterVersionName = "1.0"
|
flutterVersionName = "1.0"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def keystoreProperties = new Properties()
|
||||||
|
def keystorePropertiesFile = rootProject.file('key.properties')
|
||||||
|
if (keystorePropertiesFile.exists()) {
|
||||||
|
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
|
||||||
|
}
|
||||||
|
|
||||||
android {
|
android {
|
||||||
namespace = "dev.solsynth.solian"
|
namespace = "dev.solsynth.solian"
|
||||||
compileSdk = flutter.compileSdkVersion
|
compileSdk = flutter.compileSdkVersion
|
||||||
ndkVersion = "26.1.10909125"
|
ndkVersion = "26.1.10909125"
|
||||||
|
|
||||||
|
signingConfigs {
|
||||||
|
release {
|
||||||
|
keyAlias keystoreProperties['keyAlias']
|
||||||
|
keyPassword keystoreProperties['keyPassword']
|
||||||
|
storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
|
||||||
|
storePassword keystoreProperties['storePassword']
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
compileOptions {
|
compileOptions {
|
||||||
coreLibraryDesugaringEnabled true
|
coreLibraryDesugaringEnabled true
|
||||||
sourceCompatibility JavaVersion.VERSION_17
|
sourceCompatibility JavaVersion.VERSION_17
|
||||||
@ -45,7 +60,8 @@ android {
|
|||||||
|
|
||||||
buildTypes {
|
buildTypes {
|
||||||
release {
|
release {
|
||||||
signingConfig = signingConfigs.debug
|
// signingConfig = signingConfigs.debug
|
||||||
|
signingConfig = signingConfigs.release
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -54,7 +54,9 @@
|
|||||||
<action android:name="android.intent.action.VIEW" />
|
<action android:name="android.intent.action.VIEW" />
|
||||||
<category android:name="android.intent.category.DEFAULT" />
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
<category android:name="android.intent.category.BROWSABLE" />
|
<category android:name="android.intent.category.BROWSABLE" />
|
||||||
<data android:scheme="http" android:host="solsynth.dev" />
|
<data android:host="solsynth.dev" />
|
||||||
|
<data android:host="sn.solsynth.dev" />
|
||||||
|
<data android:scheme="https" />
|
||||||
<data android:scheme="https" />
|
<data android:scheme="https" />
|
||||||
<data android:scheme="solink" />
|
<data android:scheme="solink" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
|
@ -8,6 +8,8 @@
|
|||||||
<array>
|
<array>
|
||||||
<string>webcredentials:solsynth.dev</string>
|
<string>webcredentials:solsynth.dev</string>
|
||||||
<string>applinks:solsynth.dev</string>
|
<string>applinks:solsynth.dev</string>
|
||||||
|
<string>webcredentials:sn.solsynth.dev</string>
|
||||||
|
<string>applinks:sn.solsynth.dev</string>
|
||||||
</array>
|
</array>
|
||||||
<key>com.apple.developer.usernotifications.communication</key>
|
<key>com.apple.developer.usernotifications.communication</key>
|
||||||
<true/>
|
<true/>
|
||||||
|
@ -156,7 +156,7 @@ class PostCreatePopup extends StatelessWidget {
|
|||||||
];
|
];
|
||||||
|
|
||||||
return SizedBox(
|
return SizedBox(
|
||||||
height: MediaQuery.of(context).size.height * 0.35,
|
height: MediaQuery.of(context).size.height * 0.38,
|
||||||
child: Column(
|
child: Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
|
@ -59,6 +59,14 @@ class _AttachmentListFullScreenState extends State<AttachmentListFullScreen> {
|
|||||||
dismissThresholds: const {
|
dismissThresholds: const {
|
||||||
DismissiblePageDismissDirection.multi: 0.05,
|
DismissiblePageDismissDirection.multi: 0.05,
|
||||||
},
|
},
|
||||||
|
onDragStart: () {
|
||||||
|
print('start dragging');
|
||||||
|
setState(() => _showDetails = false);
|
||||||
|
},
|
||||||
|
onDragEnd: () {
|
||||||
|
print('stop dragging');
|
||||||
|
setState(() => _showDetails = true);
|
||||||
|
},
|
||||||
child: GestureDetector(
|
child: GestureDetector(
|
||||||
child: Stack(
|
child: Stack(
|
||||||
fit: StackFit.loose,
|
fit: StackFit.loose,
|
||||||
@ -70,7 +78,7 @@ class _AttachmentListFullScreenState extends State<AttachmentListFullScreen> {
|
|||||||
boundaryMargin: EdgeInsets.zero,
|
boundaryMargin: EdgeInsets.zero,
|
||||||
minScale: 1,
|
minScale: 1,
|
||||||
maxScale: 16,
|
maxScale: 16,
|
||||||
panEnabled: false,
|
panEnabled: true,
|
||||||
scaleEnabled: true,
|
scaleEnabled: true,
|
||||||
child: AttachmentItem(
|
child: AttachmentItem(
|
||||||
parentId: widget.parentId,
|
parentId: widget.parentId,
|
||||||
@ -98,7 +106,7 @@ class _AttachmentListFullScreenState extends State<AttachmentListFullScreen> {
|
|||||||
.animate(target: _showDetails ? 1 : 0)
|
.animate(target: _showDetails ? 1 : 0)
|
||||||
.fadeIn(curve: Curves.fastEaseInToSlowEaseOut),
|
.fadeIn(curve: Curves.fastEaseInToSlowEaseOut),
|
||||||
Positioned(
|
Positioned(
|
||||||
bottom: MediaQuery.of(context).padding.bottom,
|
bottom: math.max(MediaQuery.of(context).padding.bottom, 16),
|
||||||
left: 16,
|
left: 16,
|
||||||
right: 16,
|
right: 16,
|
||||||
child: IgnorePointer(
|
child: IgnorePointer(
|
||||||
|
25
web/.well-known/apple-app-site-association
Normal file
25
web/.well-known/apple-app-site-association
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
"applinks": {
|
||||||
|
"apps": [],
|
||||||
|
"details": [
|
||||||
|
{
|
||||||
|
"appIDs": [
|
||||||
|
"W7HPZ53V6B.dev.solsynth.solian"
|
||||||
|
],
|
||||||
|
"paths": [
|
||||||
|
"*"
|
||||||
|
],
|
||||||
|
"components": [
|
||||||
|
{
|
||||||
|
"/": "/*"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"webcredentials": {
|
||||||
|
"apps": [
|
||||||
|
"W7HPZ53V6B.dev.solsynth.solian"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
14
web/.well-known/assetlinks.json
Normal file
14
web/.well-known/assetlinks.json
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"relation": [
|
||||||
|
"delegate_permission/common.handle_all_urls"
|
||||||
|
],
|
||||||
|
"target": {
|
||||||
|
"namespace": "android_app",
|
||||||
|
"package_name": "dev.solsynth.solian",
|
||||||
|
"sha256_cert_fingerprints": [
|
||||||
|
"AA:77:45:8F:BD:96:54:E6:F8:A3:83:48:85:6E:24:1B:05:C2:EE:28:A3:25:5B:F4:51:C8:68:90:D9:25:5F:04"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
Loading…
Reference in New Issue
Block a user