Ensure classes used via XML are kept by proguard
Bug: 29795762
- Keep MenuItem onClick methods.
- Keep View subclasses and animatable properties.
Change-Id: I4449c8d6caee1d499d8816e62ffc482661df6bea
diff --git a/proguard.flags b/proguard.flags
index 3b1749d..ba855b9 100644
--- a/proguard.flags
+++ b/proguard.flags
@@ -1,12 +1,29 @@
+# This is a configuration file for ProGuard.
+# http://proguard.sourceforge.net/index.html#manual/usage.html
+
# Keep all Fragments in this package, which are used by reflection.
-keep public class com.android.settings.** extends android.app.Fragment
-# Keep click handlers.
+# 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);
+ public void *(android.view.MenuItem);
}
+# Keep setters in Views so that animations can still work.
+-keep public class * extends android.view.View {
+ public <init>(android.content.Context);
+ public <init>(android.content.Context, android.util.AttributeSet);
+ public <init>(android.content.Context, android.util.AttributeSet, int);
+
+ void set*(***);
+ *** get*();
+}
+
+# Keep classes that may be inflated from XML.
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
+}
+-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}