-verbose
# Use ProGuard only to get rid of unused classes
-dontobfuscate
-dontoptimize
-keepattributes *

# Preverification was introduced in Java 6 to enable faster classloading, but
# dex doesn't use the java .class format, so it has no benefit and can cause
# problems.
-dontpreverify

# Skipping analysis of some classes may make proguard strip something that's
# needed.
-dontskipnonpubliclibraryclasses

# Parcel reflectively accesses this field.
-keepclassmembers class * implements android.os.Parcelable {
  public static *** CREATOR;
}

# Don't warn about Nullable and NonNull annotations
-dontwarn org.jetbrains.annotations.*

# Unexpected reference to missing service class: META-INF/services/javax.annotation.processing.Processor.
-dontwarn javax.annotation.processing.Processor

# Keep PreferenceController constructors
-keepclassmembers public class * extends com.android.car.settings.common.PreferenceController {
   public <init>(...);
}

# Keep QCItem constructors
-keepclassmembers public class * extends com.android.car.settings.qc.SettingsQCItem {
   public <init>(...);
}

# Keep QCBackgroundWorker constructors
-keepclassmembers public class * extends com.android.car.settings.qc.SettingsQCBackgroundWorker {
   public <init>(...);
}

# Keep fragments that are only created via xml
-keep public class * extends com.android.car.settings.common.SettingsFragment
-keep public class * extends com.android.car.settings.common.BaseFragment