Compare commits
No commits in common. "master" and "2.5.2+92" have entirely different histories.
2
android/.gitignore
vendored
2
android/.gitignore
vendored
@ -11,5 +11,3 @@ GeneratedPluginRegistrant.java
|
|||||||
key.properties
|
key.properties
|
||||||
**/*.keystore
|
**/*.keystore
|
||||||
**/*.jks
|
**/*.jks
|
||||||
|
|
||||||
app/.cxx
|
|
@ -10,15 +10,10 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
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 'com.google.android.material:material:1.12.0'
|
||||||
implementation 'androidx.glance:glance:1.1.1'
|
implementation 'androidx.glance:glance:1.1.1'
|
||||||
implementation 'androidx.glance:glance-appwidget:1.1.1'
|
implementation 'androidx.glance:glance-appwidget:1.1.1'
|
||||||
implementation 'androidx.compose.foundation:foundation-layout-android:1.7.8'
|
implementation 'androidx.compose.foundation:foundation-layout-android:1.7.6'
|
||||||
implementation 'com.google.code.gson:gson:2.10.1'
|
implementation 'com.google.code.gson:gson:2.10.1'
|
||||||
implementation 'com.squareup.okhttp3:okhttp:4.12.0'
|
implementation 'com.squareup.okhttp3:okhttp:4.12.0'
|
||||||
implementation 'io.coil-kt.coil3:coil-compose:3.0.4'
|
implementation 'io.coil-kt.coil3:coil-compose:3.0.4'
|
||||||
@ -78,10 +73,8 @@ android {
|
|||||||
}
|
}
|
||||||
release {
|
release {
|
||||||
signingConfig = signingConfigs.release
|
signingConfig = signingConfigs.release
|
||||||
minifyEnabled true
|
|
||||||
shrinkResources true
|
|
||||||
|
|
||||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
96
android/app/proguard-rules.pro
vendored
96
android/app/proguard-rules.pro
vendored
@ -1,96 +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>;
|
|
||||||
}
|
|
||||||
|
|
||||||
-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" xmlns:tools="http://schemas.android.com/tools">
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<uses-feature android:name="android.hardware.camera" />
|
<uses-feature android:name="android.hardware.camera" />
|
||||||
<uses-feature android:name="android.hardware.camera.autofocus" />
|
<uses-feature android:name="android.hardware.camera.autofocus" />
|
||||||
<uses-permission android:name="android.permission.INTERNET" />
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
|
14
android/app/src/proguard-rules.pro
vendored
Normal file
14
android/app/src/proguard-rules.pro
vendored
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
-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
|
distributionPath=wrapper/dists
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-all.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-all.zip
|
||||||
|
@ -10,22 +10,18 @@ pluginManagement {
|
|||||||
includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
|
includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
maven {
|
|
||||||
url "https://github.com/jitsi/jitsi-maven-repository/raw/master/releases"
|
|
||||||
}
|
|
||||||
google()
|
google()
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
gradlePluginPortal()
|
gradlePluginPortal()
|
||||||
maven { url 'https://www.jitpack.io' }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
|
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
|
||||||
id "com.android.application" version '8.9.1' apply false
|
id "com.android.application" version '8.7.3' apply false
|
||||||
// START: FlutterFire Configuration
|
// START: FlutterFire Configuration
|
||||||
id "com.google.gms.google-services" version "4.4.2" apply false
|
id "com.google.gms.google-services" version "4.3.15" apply false
|
||||||
id "com.google.firebase.crashlytics" version "3.0.3" apply false
|
id "com.google.firebase.crashlytics" version "2.8.1" apply false
|
||||||
// END: FlutterFire Configuration
|
// END: FlutterFire Configuration
|
||||||
id "org.jetbrains.kotlin.android" version "1.8.22" apply false
|
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.",
|
"postVideoLiveDescription": "This is a live video, you can embed the source site by yourself.",
|
||||||
"postVideoRendererWeb": "WebView Rendering",
|
"postVideoRendererWeb": "WebView Rendering",
|
||||||
"postVideoRendererWebDescription": "Use WebView to render the content",
|
"postVideoRendererWebDescription": "Use WebView to render the content",
|
||||||
"fieldPostVideoUrl": "Video URL",
|
"fieldPostVideoStreamUrl": "Live Stream URL",
|
||||||
"fieldPostVideoUrlDescription": "The URL of the video content, it can be a webpage, and will be rendered by iFrame / WebView."
|
"fieldPostVideoStreamUrlDescription": "Live stream URL, can be HLS or webpage; use webpage renderer if you want to embed the webpage."
|
||||||
}
|
}
|
||||||
|
@ -961,6 +961,6 @@
|
|||||||
"postVideoLiveDescription": "这是一条直播影片,允许用户自行嵌入源站。",
|
"postVideoLiveDescription": "这是一条直播影片,允许用户自行嵌入源站。",
|
||||||
"postVideoRendererWeb": "网页渲染器",
|
"postVideoRendererWeb": "网页渲染器",
|
||||||
"postVideoRendererWebDescription": "使用 WebView 渲染内容。",
|
"postVideoRendererWebDescription": "使用 WebView 渲染内容。",
|
||||||
"fieldPostVideoUrl": "视频流地址",
|
"fieldPostVideoStreamUrl": "直播流地址",
|
||||||
"fieldPostVideoUrlDescription": "视频内容的地址,可以为网页,将会使用 iFrame / WebView 渲染。"
|
"fieldPostVideoStreamUrlDescription": "直播流地址,可以为 HLS,或者网页;使用网页嵌入请启用网页渲染器。"
|
||||||
}
|
}
|
||||||
|
@ -752,7 +752,6 @@ class PostWriteController extends ChangeNotifier {
|
|||||||
|
|
||||||
void setVideoUrl(String value) {
|
void setVideoUrl(String value) {
|
||||||
videoUrl = value;
|
videoUrl = value;
|
||||||
notifyListeners();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void setVideoLive(bool value) {
|
void setVideoLive(bool value) {
|
||||||
|
@ -1219,21 +1219,19 @@ class _PostVideoEditorState extends State<_PostVideoEditor> {
|
|||||||
FocusManager.instance.primaryFocus?.unfocus(),
|
FocusManager.instance.primaryFocus?.unfocus(),
|
||||||
).padding(horizontal: 16),
|
).padding(horizontal: 16),
|
||||||
const Gap(12),
|
const Gap(12),
|
||||||
if (widget.controller.videoLive ||
|
if (widget.controller.videoLive)
|
||||||
widget.controller.videoAttachment == null)
|
|
||||||
TextField(
|
TextField(
|
||||||
controller: _streamUrlController,
|
controller: _streamUrlController,
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
labelText: 'fieldPostVideoUrl'.tr(),
|
labelText: 'fieldPostVideoStreamUrl'.tr(),
|
||||||
helperText: 'fieldPostVideoUrlDescription'.tr(),
|
helperText: 'fieldPostVideoStreamUrlDescription'.tr(),
|
||||||
border: OutlineInputBorder(),
|
border: OutlineInputBorder(),
|
||||||
isDense: true,
|
isDense: true,
|
||||||
),
|
),
|
||||||
onTapOutside: (_) =>
|
onTapOutside: (_) =>
|
||||||
FocusManager.instance.primaryFocus?.unfocus(),
|
FocusManager.instance.primaryFocus?.unfocus(),
|
||||||
).padding(horizontal: 16, bottom: 12, top: 2),
|
).padding(horizontal: 12)
|
||||||
if (!widget.controller.videoLive &&
|
else
|
||||||
_streamUrlController.text.isEmpty)
|
|
||||||
Container(
|
Container(
|
||||||
margin: const EdgeInsets.only(left: 16, right: 16),
|
margin: const EdgeInsets.only(left: 16, right: 16),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
|
@ -232,7 +232,7 @@ class _UserNameCardInlineSyntax extends markdown.InlineSyntax {
|
|||||||
final alias = match[0]!;
|
final alias = match[0]!;
|
||||||
final anchor = markdown.Element.text('a', alias)
|
final anchor = markdown.Element.text('a', alias)
|
||||||
..attributes['href'] = Uri.encodeFull(
|
..attributes['href'] = Uri.encodeFull(
|
||||||
'solink://accounts/${alias.substring(1)}',
|
'solink://account/${alias.substring(1)}',
|
||||||
);
|
);
|
||||||
parser.addNode(anchor);
|
parser.addNode(anchor);
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ endif()
|
|||||||
# of modifying this function.
|
# of modifying this function.
|
||||||
function(APPLY_STANDARD_SETTINGS TARGET)
|
function(APPLY_STANDARD_SETTINGS TARGET)
|
||||||
target_compile_features(${TARGET} PUBLIC cxx_std_14)
|
target_compile_features(${TARGET} PUBLIC cxx_std_14)
|
||||||
target_compile_options(${TARGET} PRIVATE -Wall -Wextra)
|
target_compile_options(${TARGET} PRIVATE -Wall -Werror)
|
||||||
target_compile_options(${TARGET} PRIVATE "$<$<NOT:$<CONFIG:Debug>>:-O3>")
|
target_compile_options(${TARGET} PRIVATE "$<$<NOT:$<CONFIG:Debug>>:-O3>")
|
||||||
target_compile_definitions(${TARGET} PRIVATE "$<$<NOT:$<CONFIG:Debug>>:NDEBUG>")
|
target_compile_definitions(${TARGET} PRIVATE "$<$<NOT:$<CONFIG:Debug>>:NDEBUG>")
|
||||||
endfunction()
|
endfunction()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user