Keep classes/fields only used via reflection
Bug: 30355720
Change-Id: I9c8325a0b42cda5beeb8dfe76bde46afd2bec727
diff --git a/proguard.flags b/proguard.flags
index ba855b9..d644f47 100644
--- a/proguard.flags
+++ b/proguard.flags
@@ -6,8 +6,8 @@
# 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);
+ public void *(android.view.View);
+ public void *(android.view.MenuItem);
}
# Keep setters in Views so that animations can still work.
@@ -27,3 +27,15 @@
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
+
+# Keep annotated classes or class members.
+-keep @android.support.annotation.Keep class *
+-keepclassmembers class * {
+ @android.support.annotation.Keep *;
+}
+
+# Keep specific fields used via reflection.
+-keepclassmembers class * {
+ public static ** SEARCH_INDEX_DATA_PROVIDER;
+ public static ** SUMMARY_PROVIDER_FACTORY;
+}
diff --git a/src/com/android/settings/overlay/FeatureFactoryImpl.java b/src/com/android/settings/overlay/FeatureFactoryImpl.java
index ce561f3..f527172 100644
--- a/src/com/android/settings/overlay/FeatureFactoryImpl.java
+++ b/src/com/android/settings/overlay/FeatureFactoryImpl.java
@@ -17,10 +17,12 @@
package com.android.settings.overlay;
import android.content.Context;
+import android.support.annotation.Keep;
/**
* {@link FeatureFactory} implementation for AOSP Settings.
*/
+@Keep
public final class FeatureFactoryImpl extends FeatureFactory {
@Override