cmparts: Create PartsCatalog

 * Add a service which can tell a remote application (like Settings)
   some various information about available parts and get callbacks
   when state changes.

Change-Id: I71ad7bc7b282bc831c0b20ac47df7910c0a59337
diff --git a/proguard.flags b/proguard.flags
index ecbb6e0..4d0b1d0 100644
--- a/proguard.flags
+++ b/proguard.flags
@@ -1,60 +1,17 @@
--optimizationpasses 5
--dontusemixedcaseclassnames
--dontskipnonpubliclibraryclasses
--dontpreverify
--verbose
--optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
+# Keep all Fragments in this package, which are used by reflection.
+-keep class org.cyanogenmod.cmparts.*Fragment
+-keep class org.cyanogenmod.cmparts.*Picker
+-keep class org.cyanogenmod.cmparts.*Settings
+-keep class org.cyanogenmod.cmparts.notificationlight.*
+-keep class org.cyanogenmod.cmparts.livedisplay.*
+-keep class org.cyanogenmod.cmparts.privacyguard.*
 
--keep public class * extends android.app.Activity
--keep public class * extends android.app.Application
--keep public class * extends android.app.Service
--keep public class * extends android.content.BroadcastReceiver
--keep public class * extends android.content.ContentProvider
--keep public class * extends android.app.backup.BackupAgentHelper
--keep public class * extends android.preference.Preference
--keep public class android.support.v7.preference.Preference {
-    public <init>(android.content.Context, android.util.AttributeSet);
-}
--keep public class * extends android.support.v7.preference.Preference {
-    public <init>(android.content.Context, android.util.AttributeSet);
-}
--keep public class com.android.vending.licensing.ILicensingService
-
--keepclasseswithmembernames class * {
-    native <methods>;
+# Keep click responders
+-keepclassmembers class com.android.settings.inputmethod.UserDictionaryAddWordActivity {
+  *** onClick*(...);
 }
 
--keepclasseswithmembers class * {
+-keep public class * extends android.support.v7.preference.* {
     public <init>(android.content.Context, android.util.AttributeSet);
 }
 
--keepclasseswithmembers class * {
-    public <init>(android.content.Context, android.util.AttributeSet, int);
-}
-
--keepclassmembers class * extends android.app.Activity {
-   public void *(android.view.View);
-}
-
--keepclassmembers enum * {
-    public static **[] values();
-    public static ** valueOf(java.lang.String);
-}
-
--keep class * implements android.os.Parcelable {
-  public static final android.os.Parcelable$Creator *;
-}
-
--keep @android.support.annotation.Keep class *
--keepclassmembers class * {
-    @android.support.annotation.Keep *;
-}
-
--dontwarn org.bouncycastle.x509.util.LDAPStoreHelper
--dontwarn org.bouncycastle.jce.provider.X509LDAPCertStoreSpi
--dontwarn org.bouncycastle.util.io.pem.AllTests
--dontwarn org.bouncycastle.util.AllTests
--dontwarn android.support.v13.app.FragmentCompatICSMR1
--dontwarn android.support.v4.view.ViewCompatJellybeanMr1
--dontwarn org.bouncycastle.x509.X509V3CertificateGenerator
--dontwarn org.bouncycastle.jce.provider.BouncyCastleProvider