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 += [
'LICENSE_OFL',
'LICENSE_UNICODE',
'META-INF/androidx/**',
'META-INF/NOTICE.md',
'DebugProbesKt.bin'
]
bundle {

34
app/proguard-rules.pro vendored

@ -20,23 +20,6 @@
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
# 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

Loading…
Cancel
Save