Compare commits
	
		
			2 Commits
		
	
	
		
			2.5.2+92
			...
			63ff6df93a
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 63ff6df93a | |||
| f95eadd3e6 | 
							
								
								
									
										2
									
								
								android/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								android/.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -11,3 +11,5 @@ GeneratedPluginRegistrant.java | ||||
| key.properties | ||||
| **/*.keystore | ||||
| **/*.jks | ||||
|  | ||||
| app/.cxx | ||||
| @@ -10,10 +10,15 @@ plugins { | ||||
| } | ||||
|  | ||||
| dependencies { | ||||
| //    implementation('org.jitsi.react:jitsi-meet-sdk:11.1.1') { transitive = true } | ||||
| //    implementation 'com.facebook.fresco:webpsupport:2.6.0' | ||||
| //    implementation 'com.facebook.fresco:animated-webp:2.6.0' | ||||
| //    implementation 'com.facebook.react:react-android:0.75.5' | ||||
| //    implementation 'com.facebook.react:hermes-android:0.75.5' | ||||
|     implementation 'com.google.android.material:material:1.12.0' | ||||
|     implementation 'androidx.glance:glance:1.1.1' | ||||
|     implementation 'androidx.glance:glance-appwidget:1.1.1' | ||||
|     implementation 'androidx.compose.foundation:foundation-layout-android:1.7.6' | ||||
|     implementation 'androidx.compose.foundation:foundation-layout-android:1.7.8' | ||||
|     implementation 'com.google.code.gson:gson:2.10.1' | ||||
|     implementation 'com.squareup.okhttp3:okhttp:4.12.0' | ||||
|     implementation 'io.coil-kt.coil3:coil-compose:3.0.4' | ||||
| @@ -73,8 +78,10 @@ android { | ||||
|         } | ||||
|         release { | ||||
|             signingConfig = signingConfigs.release | ||||
|             minifyEnabled true | ||||
|             shrinkResources true | ||||
|  | ||||
|             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' | ||||
|             proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
							
								
								
									
										96
									
								
								android/app/proguard-rules.pro
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								android/app/proguard-rules.pro
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,96 @@ | ||||
| -keepclassmembers class kotlin.Metadata { *; } | ||||
| -keep class dev.solsynth.solian.** { *; } | ||||
| -keep public class dev.solsynth.solian.data.** { public *; } | ||||
| -keepclassmembers class dev.solsynth.solian.data.** { *; } | ||||
|  | ||||
| -keepattributes *Annotation* | ||||
| -keepattributes Signature | ||||
| -keepattributes EnclosingMethod | ||||
|  | ||||
| -keep class com.google.gson.** { *; } | ||||
|  | ||||
| -keepclassmembers class * { | ||||
|     @com.google.gson.annotations.SerializedName <fields>; | ||||
| } | ||||
|  | ||||
| -dontwarn com.facebook.imagepipeline.nativecode.WebpTranscoder | ||||
|  | ||||
| -keep,allowobfuscation @interface com.facebook.proguard.annotations.DoNotStrip | ||||
| -keep,allowobfuscation @interface com.facebook.proguard.annotations.KeepGettersAndSetters | ||||
|  | ||||
| # Do not strip any method/class that is annotated with @DoNotStrip | ||||
| -keep @com.facebook.proguard.annotations.DoNotStrip class * | ||||
| -keepclassmembers class * { | ||||
|     @com.facebook.proguard.annotations.DoNotStrip *; | ||||
| } | ||||
|  | ||||
| -keep @com.facebook.proguard.annotations.DoNotStripAny class * { | ||||
|     *; | ||||
| } | ||||
|  | ||||
| -keepclassmembers @com.facebook.proguard.annotations.KeepGettersAndSetters class * { | ||||
|   void set*(***); | ||||
|   *** get*(); | ||||
| } | ||||
|  | ||||
| -keep class * implements com.facebook.react.bridge.JavaScriptModule { *; } | ||||
| -keep class * implements com.facebook.react.bridge.NativeModule { *; } | ||||
| -keepclassmembers,includedescriptorclasses class * { native <methods>; } | ||||
| -keepclassmembers class *  { @com.facebook.react.uimanager.annotations.ReactProp <methods>; } | ||||
| -keepclassmembers class *  { @com.facebook.react.uimanager.annotations.ReactPropGroup <methods>; } | ||||
|  | ||||
| -dontwarn com.facebook.react.** | ||||
| -keep,includedescriptorclasses class com.facebook.react.bridge.** { *; } | ||||
| -keep,includedescriptorclasses class com.facebook.react.turbomodule.core.** { *; } | ||||
|  | ||||
| # hermes | ||||
| -keep class com.facebook.jni.** { *; } | ||||
|  | ||||
| # okio | ||||
| -keep class sun.misc.Unsafe { *; } | ||||
| -dontwarn java.nio.file.* | ||||
| -dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement | ||||
| -dontwarn okio.** | ||||
|  | ||||
| # yoga | ||||
| -keep,allowobfuscation @interface com.facebook.yoga.annotations.DoNotStrip | ||||
| -keep @com.facebook.yoga.annotations.DoNotStrip class * | ||||
| -keepclassmembers class * { | ||||
|     @com.facebook.yoga.annotations.DoNotStrip *; | ||||
| } | ||||
|  | ||||
| # WebRTC | ||||
|  | ||||
| -keep class org.webrtc.** { *; } | ||||
| -dontwarn org.chromium.build.BuildHooksAndroid | ||||
|  | ||||
| # Jisti Meet SDK | ||||
|  | ||||
| -keep class org.jitsi.meet.** { *; } | ||||
| -keep class org.jitsi.meet.sdk.** { *; } | ||||
|  | ||||
| # We added the following when we switched minifyEnabled on. Probably because we | ||||
| # ran the app and hit problems... | ||||
|  | ||||
| -keep class com.facebook.react.bridge.CatalystInstanceImpl { *; } | ||||
| -keep class com.facebook.react.bridge.ExecutorToken { *; } | ||||
| -keep class com.facebook.react.bridge.JavaScriptExecutor { *; } | ||||
| -keep class com.facebook.react.bridge.ModuleRegistryHolder { *; } | ||||
| -keep class com.facebook.react.bridge.ReadableType { *; } | ||||
| -keep class com.facebook.react.bridge.queue.NativeRunnable { *; } | ||||
| -keep class com.facebook.react.devsupport.** { *; } | ||||
|  | ||||
| -dontwarn com.facebook.react.devsupport.** | ||||
| -dontwarn com.google.appengine.** | ||||
| -dontwarn com.squareup.okhttp.** | ||||
| -dontwarn javax.servlet.** | ||||
|  | ||||
| # ^^^ We added the above when we switched minifyEnabled on. | ||||
|  | ||||
| # Rule to avoid build errors related to SVGs. | ||||
| -keep public class com.horcrux.svg.** {*;} | ||||
|  | ||||
| # https://github.com/facebook/fresco/issues/2638 | ||||
| -keep public class com.facebook.imageutils.** { | ||||
|    public *; | ||||
| } | ||||
| @@ -1,4 +1,4 @@ | ||||
| <manifest xmlns:android="http://schemas.android.com/apk/res/android"> | ||||
| <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> | ||||
|     <uses-feature android:name="android.hardware.camera" /> | ||||
|     <uses-feature android:name="android.hardware.camera.autofocus" /> | ||||
|     <uses-permission android:name="android.permission.INTERNET" /> | ||||
| @@ -118,4 +118,4 @@ | ||||
|             <data android:mimeType="text/plain" /> | ||||
|         </intent> | ||||
|     </queries> | ||||
| </manifest> | ||||
| </manifest> | ||||
|   | ||||
							
								
								
									
										14
									
								
								android/app/src/proguard-rules.pro
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								android/app/src/proguard-rules.pro
									
									
									
									
										vendored
									
									
								
							| @@ -1,14 +0,0 @@ | ||||
| -keepclassmembers class kotlin.Metadata { *; } | ||||
| -keep class dev.solsynth.solian.** { *; } | ||||
| -keep public class dev.solsynth.solian.data.** { public *; } | ||||
| -keepclassmembers class dev.solsynth.solian.data.** { *; } | ||||
|  | ||||
| -keepattributes *Annotation* | ||||
| -keepattributes Signature | ||||
| -keepattributes EnclosingMethod | ||||
|  | ||||
| -keep class com.google.gson.** { *; } | ||||
|  | ||||
| -keepclassmembers class * { | ||||
|     @com.google.gson.annotations.SerializedName <fields>; | ||||
| } | ||||
| @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME | ||||
| distributionPath=wrapper/dists | ||||
| zipStoreBase=GRADLE_USER_HOME | ||||
| zipStorePath=wrapper/dists | ||||
| distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-all.zip | ||||
| distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-all.zip | ||||
|   | ||||
| @@ -10,18 +10,22 @@ pluginManagement { | ||||
|     includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") | ||||
|  | ||||
|     repositories { | ||||
|         maven { | ||||
|             url "https://github.com/jitsi/jitsi-maven-repository/raw/master/releases" | ||||
|         } | ||||
|         google() | ||||
|         mavenCentral() | ||||
|         gradlePluginPortal() | ||||
|         maven { url 'https://www.jitpack.io' } | ||||
|     } | ||||
| } | ||||
|  | ||||
| plugins { | ||||
|     id "dev.flutter.flutter-plugin-loader" version "1.0.0" | ||||
|     id "com.android.application" version '8.7.3' apply false | ||||
|     id "com.android.application" version '8.9.1' apply false | ||||
|     // START: FlutterFire Configuration | ||||
|     id "com.google.gms.google-services" version "4.3.15" apply false | ||||
|     id "com.google.firebase.crashlytics" version "2.8.1" apply false | ||||
|     id "com.google.gms.google-services" version "4.4.2" apply false | ||||
|     id "com.google.firebase.crashlytics" version "3.0.3" apply false | ||||
|     // END: FlutterFire Configuration | ||||
|     id "org.jetbrains.kotlin.android" version "1.8.22" apply false | ||||
| } | ||||
|   | ||||
| @@ -964,6 +964,6 @@ | ||||
|   "postVideoLiveDescription": "This is a live video, you can embed the source site by yourself.", | ||||
|   "postVideoRendererWeb": "WebView Rendering",  | ||||
|   "postVideoRendererWebDescription": "Use WebView to render the content", | ||||
|   "fieldPostVideoStreamUrl": "Live Stream URL", | ||||
|   "fieldPostVideoStreamUrlDescription": "Live stream URL, can be HLS or webpage; use webpage renderer if you want to embed the webpage." | ||||
|   "fieldPostVideoUrl": "Video URL", | ||||
|   "fieldPostVideoUrlDescription": "The URL of the video content, it can be a webpage, and will be rendered by iFrame / WebView." | ||||
| } | ||||
|   | ||||
| @@ -961,6 +961,6 @@ | ||||
|   "postVideoLiveDescription": "这是一条直播影片,允许用户自行嵌入源站。", | ||||
|   "postVideoRendererWeb": "网页渲染器",  | ||||
|   "postVideoRendererWebDescription": "使用 WebView 渲染内容。", | ||||
|   "fieldPostVideoStreamUrl": "直播流地址", | ||||
|   "fieldPostVideoStreamUrlDescription": "直播流地址,可以为 HLS,或者网页;使用网页嵌入请启用网页渲染器。" | ||||
|   "fieldPostVideoUrl": "视频流地址", | ||||
|   "fieldPostVideoUrlDescription": "视频内容的地址,可以为网页,将会使用 iFrame / WebView 渲染。" | ||||
| } | ||||
|   | ||||
| @@ -752,6 +752,7 @@ class PostWriteController extends ChangeNotifier { | ||||
|  | ||||
|   void setVideoUrl(String value) { | ||||
|     videoUrl = value; | ||||
|     notifyListeners(); | ||||
|   } | ||||
|  | ||||
|   void setVideoLive(bool value) { | ||||
|   | ||||
| @@ -1219,19 +1219,21 @@ class _PostVideoEditorState extends State<_PostVideoEditor> { | ||||
|                       FocusManager.instance.primaryFocus?.unfocus(), | ||||
|                 ).padding(horizontal: 16), | ||||
|                 const Gap(12), | ||||
|                 if (widget.controller.videoLive) | ||||
|                 if (widget.controller.videoLive || | ||||
|                     widget.controller.videoAttachment == null) | ||||
|                   TextField( | ||||
|                     controller: _streamUrlController, | ||||
|                     decoration: InputDecoration( | ||||
|                       labelText: 'fieldPostVideoStreamUrl'.tr(), | ||||
|                       helperText: 'fieldPostVideoStreamUrlDescription'.tr(), | ||||
|                       labelText: 'fieldPostVideoUrl'.tr(), | ||||
|                       helperText: 'fieldPostVideoUrlDescription'.tr(), | ||||
|                       border: OutlineInputBorder(), | ||||
|                       isDense: true, | ||||
|                     ), | ||||
|                     onTapOutside: (_) => | ||||
|                         FocusManager.instance.primaryFocus?.unfocus(), | ||||
|                   ).padding(horizontal: 12) | ||||
|                 else | ||||
|                   ).padding(horizontal: 16, bottom: 12, top: 2), | ||||
|                 if (!widget.controller.videoLive && | ||||
|                     _streamUrlController.text.isEmpty) | ||||
|                   Container( | ||||
|                     margin: const EdgeInsets.only(left: 16, right: 16), | ||||
|                     decoration: BoxDecoration( | ||||
|   | ||||
| @@ -232,7 +232,7 @@ class _UserNameCardInlineSyntax extends markdown.InlineSyntax { | ||||
|     final alias = match[0]!; | ||||
|     final anchor = markdown.Element.text('a', alias) | ||||
|       ..attributes['href'] = Uri.encodeFull( | ||||
|         'solink://account/${alias.substring(1)}', | ||||
|         'solink://accounts/${alias.substring(1)}', | ||||
|       ); | ||||
|     parser.addNode(anchor); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user