summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAlbin <albin@mullvad.net>2023-02-16 13:55:51 +0100
committerAlbin <albin@mullvad.net>2023-02-16 13:55:51 +0100
commit5d87248c1c052f6f6f338b60ff3ff284dd617bfd (patch)
tree62986cb85525d453b317564cbea54f626d3a0c6f
parentca0e5973acd92f0dcf0db0f2b4f89dbac7fae32c (diff)
parent07a2e94cd2283f87c4c74eb948ca945cf75d0e99 (diff)
downloadmullvadvpn-5d87248c1c052f6f6f338b60ff3ff284dd617bfd.tar.xz
mullvadvpn-5d87248c1c052f6f6f338b60ff3ff284dd617bfd.zip
Merge branch 'enable-r8-minify-and-shrinking'
-rw-r--r--android/app/build.gradle.kts13
-rw-r--r--android/app/proguard-rules.pro20
-rw-r--r--android/gradle.properties1
3 files changed, 32 insertions, 2 deletions
diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts
index 55b7b33c05..97739770de 100644
--- a/android/app/build.gradle.kts
+++ b/android/app/build.gradle.kts
@@ -62,16 +62,25 @@ android {
buildTypes {
getByName("release") {
- isMinifyEnabled = false
signingConfig = signingConfigs.getByName("release")
}
}
}
buildTypes {
+ getByName("release") {
+ isMinifyEnabled = true
+ isShrinkResources = true
+ proguardFiles(
+ getDefaultProguardFile("proguard-android-optimize.txt"),
+ "proguard-rules.pro"
+ )
+ }
+
create("fdroid") {
initWith(buildTypes.getByName("release"))
- isMinifyEnabled = false
+ isMinifyEnabled = true
+ isShrinkResources = true
signingConfig = null
matchingFallbacks += "release"
}
diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro
new file mode 100644
index 0000000000..7d80dc6e39
--- /dev/null
+++ b/android/app/proguard-rules.pro
@@ -0,0 +1,20 @@
+# Mullvad
+# Keeping all Mullvad classes etc until the project has been split into multiple sub-projects
+# where it's better defined where the FFI/JNI boundaries are.
+-keep class net.mullvad.** { *; }
+
+# Mullvad daemon FFI/JNI
+# See: <repository-root>/mullvad-jni/classes.rs
+-keep class android.os.Parcelable { *; }
+-keep class java.lang.Boolean { *; }
+-keep class java.lang.Integer { *; }
+-keep class java.lang.String { *; }
+-keep class java.net.InetAddress { *; }
+-keep class java.net.InetSocketAddress { *; }
+-keep class java.util.ArrayList { *; }
+
+# Joda Time
+-dontwarn org.joda.convert.**
+-dontwarn org.joda.time.**
+-keep class org.joda.time.** { *; }
+-keep interface org.joda.time.** { *; }
diff --git a/android/gradle.properties b/android/gradle.properties
index de2e2a73d1..84db78d9df 100644
--- a/android/gradle.properties
+++ b/android/gradle.properties
@@ -1,4 +1,5 @@
android.enableJetifier=true
+android.enableR8.fullMode=true
android.useAndroidX=true
kotlin.code.style=official
org.gradle.jvmargs=-Xmx8192M -Dkotlin.daemon.jvm.options\="-Xmx8192M"