1-verbose 2# Use ProGuard only to get rid of unused classes 3-dontobfuscate 4-dontoptimize 5-keepattributes * 6 7# Preverification was introduced in Java 6 to enable faster classloading, but 8# dex doesn't use the java .class format, so it has no benefit and can cause 9# problems. 10-dontpreverify 11 12# Skipping analysis of some classes may make proguard strip something that's 13# needed. 14-dontskipnonpubliclibraryclasses 15 16# Parcel reflectively accesses this field. 17-keepclassmembers class * implements android.os.Parcelable { 18 public static *** CREATOR; 19} 20 21# Don't warn about Nullable and NonNull annotations 22-dontwarn org.jetbrains.annotations.* 23 24# Unexpected reference to missing service class: META-INF/services/javax.annotation.processing.Processor. 25-dontwarn javax.annotation.processing.Processor 26 27# Keep PreferenceController constructors 28-keepclassmembers public class * extends com.android.car.settings.common.PreferenceController { 29 public <init>(...); 30} 31 32# Keep QCItem constructors 33-keepclassmembers public class * extends com.android.car.settings.qc.SettingsQCItem { 34 public <init>(...); 35} 36 37# Keep QCBackgroundWorker constructors 38-keepclassmembers public class * extends com.android.car.settings.qc.SettingsQCBackgroundWorker { 39 public <init>(...); 40} 41 42# Keep fragments that are only created via xml 43-keep public class * extends com.android.car.settings.common.SettingsFragment 44-keep public class * extends com.android.car.settings.common.BaseFragment 45 46# Keep PreferenceControllers 47-keep public class * extends com.android.car.settings.common.PreferenceController 48