diff --git a/app/build.gradle b/app/build.gradle index f8258d8e8..4615ded61 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -105,6 +105,9 @@ android { packagingOptions.resources.excludes += [ 'LICENSE_OFL', 'LICENSE_UNICODE', + 'META-INF/androidx/**', + 'META-INF/NOTICE.md', + 'DebugProbesKt.bin' ] bundle { diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 0bcca6c2a..b3833ebce 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -20,23 +20,6 @@ public static final ** CREATOR; } -# Preserve annotated Javascript interface methods. --keepclassmembers class * { - @android.webkit.JavascriptInterface ; -} - -# The support libraries contains references to newer platform versions. -# Don't warn about those in case this app is linking against an older -# platform version. We know about them, and they are safe. --dontnote androidx.** --dontwarn androidx.** - -# This class is deprecated, but remains for backward compatibility. --dontwarn android.util.FloatMath - -# These classes are duplicated between android.jar and core-lambda-stubs.jar. --dontnote java.lang.invoke.** - # TUSKY SPECIFIC OPTIONS # preserve line numbers for crash reporting @@ -47,6 +30,10 @@ -keep class org.bouncycastle.jcajce.provider.asymmetric.EC$* { *; } -keep class org.bouncycastle.jcajce.provider.asymmetric.ec.KeyPairGeneratorSpi$EC +# Preference fragments can be referenced by name, ensure they remain +# https://github.com/tuskyapp/Tusky/issues/3161 +-keep class * extends androidx.preference.PreferenceFragmentCompat + # remove all logging from production apk -assumenosideeffects class android.util.Log { public static *** getStackTraceString(...); @@ -70,9 +57,16 @@ static void checkNotNullExpressionValue(java.lang.Object, java.lang.String); static void checkReturnedValueIsNotNull(java.lang.Object, java.lang.String); static void checkReturnedValueIsNotNull(java.lang.Object, java.lang.String, java.lang.String); + static void throwUninitializedProperty(java.lang.String); static void throwUninitializedPropertyAccessException(java.lang.String); } -# Preference fragments can be referenced by name, ensure they remain -# https://github.com/tuskyapp/Tusky/issues/3161 --keep class * extends androidx.preference.PreferenceFragmentCompat +# there is no need for edit mode in production builds, allow it to be pruned +-assumenosideeffects public class * extends android.view.View { + boolean isInEditMode(); +} +-assumevalues public class * extends android.view.View { + boolean isInEditMode() return false; +} + +-checkdiscard class com.keylesspalace.tusky.usecase.DeveloperToolsUseCase