Deep link

This commit is contained in:
LittleSheep 2024-07-27 19:20:53 +08:00
parent 74b6ccd5c7
commit 7800a70ef2
8 changed files with 72 additions and 26 deletions

View File

@ -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:

View File

@ -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
} }
} }
} }

View File

@ -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>

View File

@ -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/>

View File

@ -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: [

View File

@ -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(

View File

@ -0,0 +1,25 @@
{
"applinks": {
"apps": [],
"details": [
{
"appIDs": [
"W7HPZ53V6B.dev.solsynth.solian"
],
"paths": [
"*"
],
"components": [
{
"/": "/*"
}
]
}
]
},
"webcredentials": {
"apps": [
"W7HPZ53V6B.dev.solsynth.solian"
]
}
}

View 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"
]
}
}
]