diff --git a/CHANGELOG.md b/CHANGELOG.md index 7c3f79487..36db56f1c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ * better multi-device: synchronize group creation across devices * data saving: do not send Autocrypt header in read receipts * improve onboarding speed +* reduce app size * don't show badge counter in app icon for the permanent background notification * remove deprecated "companion app" code * remove deprecated "Watch Sent Folder" preference diff --git a/build.gradle b/build.gradle index a2389b5ab..d64a4b199 100644 --- a/build.gradle +++ b/build.gradle @@ -88,7 +88,9 @@ android { buildTypes { debug { - minifyEnabled false + minifyEnabled true + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + testProguardFiles 'test-proguard-rules.pro' applicationIdSuffix ".beta" } release { @@ -101,7 +103,9 @@ android { // // nb: it is highly recommended to use the same settings in debug+release - // otherwise problems might be noticed delayed only - minifyEnabled false + minifyEnabled true + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + testProguardFiles 'test-proguard-rules.pro' signingConfig signingConfigs.release } } diff --git a/proguard-rules.pro b/proguard-rules.pro new file mode 100644 index 000000000..1047f540b --- /dev/null +++ b/proguard-rules.pro @@ -0,0 +1,15 @@ +# native methods +-keep class com.b44t.messenger.** { * ; } + +# Keep metadata needed by the JSON parser +-keep class chat.delta.rpc.** { * ; } +-keepattributes *Annotation*,EnclosingMethod,Signature +-keepnames class com.fasterxml.jackson.** { *; } + +# bug with video recoder +-keep class com.coremedia.iso.** { *; } + +# unused SealedData constructor needed by JsonUtils +-keep class org.thoughtcrime.securesms.crypto.KeyStoreHelper* { *; } + +-dontwarn com.google.firebase.analytics.connector.AnalyticsConnector \ No newline at end of file diff --git a/test-proguard-rules.pro b/test-proguard-rules.pro new file mode 100644 index 000000000..6086f95db --- /dev/null +++ b/test-proguard-rules.pro @@ -0,0 +1,38 @@ +# Please add these rules to your existing keep rules in order to suppress warnings. +# This is generated automatically by the Android Gradle plugin. +-dontwarn com.sun.jna.FunctionMapper +-dontwarn com.sun.jna.JNIEnv +-dontwarn com.sun.jna.LastErrorException +-dontwarn com.sun.jna.Library +-dontwarn com.sun.jna.Native +-dontwarn com.sun.jna.NativeLibrary +-dontwarn com.sun.jna.Platform +-dontwarn edu.umd.cs.findbugs.annotations.SuppressFBWarnings +-dontwarn java.lang.instrument.ClassDefinition +-dontwarn java.lang.instrument.ClassFileTransformer +-dontwarn java.lang.instrument.IllegalClassFormatException +-dontwarn java.lang.instrument.Instrumentation +-dontwarn java.lang.instrument.UnmodifiableClassException +-dontwarn java.lang.management.ManagementFactory +-dontwarn java.lang.management.ThreadInfo +-dontwarn java.lang.management.ThreadMXBean +-dontwarn org.junit.jupiter.api.TestInstance$Lifecycle +-dontwarn org.junit.jupiter.api.extension.AfterEachCallback +-dontwarn org.junit.jupiter.api.extension.AfterTestExecutionCallback +-dontwarn org.junit.jupiter.api.extension.BeforeEachCallback +-dontwarn org.junit.jupiter.api.extension.ExtensionConfigurationException +-dontwarn org.junit.jupiter.api.extension.ExtensionContext$Namespace +-dontwarn org.junit.jupiter.api.extension.ExtensionContext$Store +-dontwarn org.junit.jupiter.api.extension.ExtensionContext +-dontwarn org.junit.jupiter.api.extension.ParameterContext +-dontwarn org.junit.jupiter.api.extension.ParameterResolutionException +-dontwarn org.junit.jupiter.api.extension.ParameterResolver +-dontwarn org.junit.jupiter.api.extension.TestInstancePostProcessor +-dontwarn org.junit.jupiter.api.parallel.Execution +-dontwarn org.junit.jupiter.api.parallel.ExecutionMode +-dontwarn org.junit.platform.commons.annotation.Testable +-dontwarn org.junit.platform.commons.support.AnnotationSupport +-dontwarn org.junit.platform.commons.support.HierarchyTraversalMode +-dontwarn org.junit.platform.commons.support.ReflectionSupport +-dontwarn org.opentest4j.MultipleFailuresError +-dontwarn org.w3c.dom.bootstrap.DOMImplementationRegistry \ No newline at end of file