aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuutaW <17158086+Trumeet@users.noreply.github.com>2019-02-28 20:55:05 -0800
committerYuutaW <17158086+Trumeet@users.noreply.github.com>2019-02-28 20:55:05 -0800
commite004e1e12ecdca2296fefde5b305c8f3bd361833 (patch)
treeb14e23001ed984014dddbbe63ebbd113ad8d2638
parent373bda9f0219ecd3f1069bf5fe0637c61dc87787 (diff)
downloadWorkMode-e004e1e12ecdca2296fefde5b305c8f3bd361833.tar
WorkMode-e004e1e12ecdca2296fefde5b305c8f3bd361833.tar.gz
WorkMode-e004e1e12ecdca2296fefde5b305c8f3bd361833.tar.bz2
WorkMode-e004e1e12ecdca2296fefde5b305c8f3bd361833.zip
fix(app): enable optimization for Proguard to let some settings work
Signed-off-by: YuutaW <17158086+Trumeet@users.noreply.github.com>
-rw-r--r--app/build.gradle2
-rw-r--r--app/proguard-rules-android.pro88
2 files changed, 89 insertions, 1 deletions
diff --git a/app/build.gradle b/app/build.gradle
index 3c9d7d6..c3ed648 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -58,7 +58,7 @@ android {
release {
signingConfig signingConfigs.general
minifyEnabled true
- proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
+ proguardFiles 'proguard-android-optimize.txt', 'proguard-rules.pro'
}
}
compileOptions {
diff --git a/app/proguard-rules-android.pro b/app/proguard-rules-android.pro
new file mode 100644
index 0000000..8c5b402
--- /dev/null
+++ b/app/proguard-rules-android.pro
@@ -0,0 +1,88 @@
+# From Android SDK, remember to update when you update the compile SDK.
+
+# This is a configuration file for ProGuard.
+# http://proguard.sourceforge.net/index.html#manual/usage.html
+#
+# This file is no longer maintained and is not used by new (2.2+) versions of the
+# Android plugin for Gradle. Instead, the Android plugin for Gradle generates the
+# default rules at build time and stores them in the build directory.
+
+# Optimizations: If you don't want to optimize, use the
+# proguard-android.txt configuration file instead of this one, which
+# turns off the optimization flags. Adding optimization introduces
+# certain risks, since for example not all optimizations performed by
+# ProGuard works on all versions of Dalvik. The following flags turn
+# off various optimizations known to have issues, but the list may not
+# be complete or up to date. (The "arithmetic" optimization can be
+# used if you are only targeting Android 2.0 or later.) Make sure you
+# test thoroughly if you go this route.
+-optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/*
+-optimizationpasses 5
+-allowaccessmodification
+# This line is disabled by Trumeet@GitHub
+# -dontpreverify
+
+# The remainder of this file is identical to the non-optimized version
+# of the Proguard configuration file (except that the other file has
+# flags to turn off optimization).
+
+-dontusemixedcaseclassnames
+-dontskipnonpubliclibraryclasses
+-verbose
+
+-keepattributes *Annotation*
+-keep public class com.google.vending.licensing.ILicensingService
+-keep public class com.android.vending.licensing.ILicensingService
+
+# For native methods, see http://proguard.sourceforge.net/manual/examples.html#native
+-keepclasseswithmembernames class * {
+ native <methods>;
+}
+
+# keep setters in Views so that animations can still work.
+# see http://proguard.sourceforge.net/manual/examples.html#beans
+-keepclassmembers public class * extends android.view.View {
+ void set*(***);
+ *** get*();
+}
+
+# We want to keep methods in Activity that could be used in the XML attribute onClick
+-keepclassmembers class * extends android.app.Activity {
+ public void *(android.view.View);
+}
+
+# For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations
+-keepclassmembers enum * {
+ public static **[] values();
+ public static ** valueOf(java.lang.String);
+}
+
+-keepclassmembers class * implements android.os.Parcelable {
+ public static final android.os.Parcelable$Creator CREATOR;
+}
+
+-keepclassmembers class **.R$* {
+ public static <fields>;
+}
+
+# The support library 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.
+-dontwarn android.support.**
+
+# Understand the @Keep support annotation.
+-keep class android.support.annotation.Keep
+
+-keep @android.support.annotation.Keep class * {*;}
+
+-keepclasseswithmembers class * {
+ @android.support.annotation.Keep <methods>;
+}
+
+-keepclasseswithmembers class * {
+ @android.support.annotation.Keep <fields>;
+}
+
+-keepclasseswithmembers class * {
+ @android.support.annotation.Keep <init>(...);
+}