# Uncomment the following to show all included rules during build
#-printconfiguration

# Generate usage file (for shrinking)
-printusage

# Keep deprecated GSM SMS API
-keepclasseswithmembers class android.telephony.gsm.SmsManager,android.telephony.gsm.SmsManager$* {
public *;
}
-keepclasseswithmembers class android.telephony.gsm.SmsMessage,android.telephony.gsm.SmsMessage$* {
public protected *;
}

# Keep telephony sysprop
-keepclasseswithmembers class android.internal.telephony.sysprop.TelephonyProperties {
public *;
}

# Keep public classes and public/protected members
-keepclasseswithmembers class com.android.internal.telephony.** {
public protected *;
}

# Keep classes and members that have the @UnsupportedAppUsage annotation
-keep @**.UnsupportedAppUsage class *
-keepclassmembers class * {
@**.UnsupportedAppUsage *;
}
