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;
+}