Browse Source

update shrinker rules and packaging excludes (#5055)

We wouldn't want to ship unnecessary stuff, would we

 apk size 20.788.307 ->  20.768.841 bytes 🤪
pull/5057/head^2
Konrad Pozniak 11 months ago committed by GitHub
parent
commit
97efda2668
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 3
      app/build.gradle
  2. 34
      app/proguard-rules.pro

3
app/build.gradle

@ -105,6 +105,9 @@ android {
packagingOptions.resources.excludes += [ packagingOptions.resources.excludes += [
'LICENSE_OFL', 'LICENSE_OFL',
'LICENSE_UNICODE', 'LICENSE_UNICODE',
'META-INF/androidx/**',
'META-INF/NOTICE.md',
'DebugProbesKt.bin'
] ]
bundle { bundle {

34
app/proguard-rules.pro vendored

@ -20,23 +20,6 @@
public static final ** CREATOR; public static final ** CREATOR;
} }
# Preserve annotated Javascript interface methods.
-keepclassmembers class * {
@android.webkit.JavascriptInterface <methods>;
}
# 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 # TUSKY SPECIFIC OPTIONS
# preserve line numbers for crash reporting # 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$* { *; }
-keep class org.bouncycastle.jcajce.provider.asymmetric.ec.KeyPairGeneratorSpi$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 # remove all logging from production apk
-assumenosideeffects class android.util.Log { -assumenosideeffects class android.util.Log {
public static *** getStackTraceString(...); public static *** getStackTraceString(...);
@ -70,9 +57,16 @@
static void checkNotNullExpressionValue(java.lang.Object, java.lang.String); 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);
static void checkReturnedValueIsNotNull(java.lang.Object, java.lang.String, 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); static void throwUninitializedPropertyAccessException(java.lang.String);
} }
# Preference fragments can be referenced by name, ensure they remain # there is no need for edit mode in production builds, allow it to be pruned
# https://github.com/tuskyapp/Tusky/issues/3161 -assumenosideeffects public class * extends android.view.View {
-keep class * extends androidx.preference.PreferenceFragmentCompat boolean isInEditMode();
}
-assumevalues public class * extends android.view.View {
boolean isInEditMode() return false;
}
-checkdiscard class com.keylesspalace.tusky.usecase.DeveloperToolsUseCase

Loading…
Cancel
Save