-printmapping out.map

-optimizations !code/allocation/variable

-keepparameternames
-dontskipnonpubliclibraryclasses

-dontwarn android.support.**

-dontwarn org.junit.**
-dontwarn junit.**
-dontwarn okhttp3.**
-dontwarn okio.**
-dontwarn javax.annotation.**
-dontwarn javax.naming.**
# A resource is loaded with a relative path so the package of this class must be preserved.
-keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase

-renamesourcefileattribute SourceFile
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod
-keep class okhttp3.** { *; }
-keep interface okhttp3.** { *; }
-keep class sun.misc.Unsafe { *; }
-keep class org.junit.** { *; }
-keep class junit.** { *; }

-keep public class * {
    public *;
}

-keep class com.penthera.virtuososdk.database.impl.provider.VirtuosoSDKContentProvider {
    protected <methods>;
}

-keep class com.penthera.virtuososdk.client.subscriptions.SubscriptionsService {
    protected <methods>;
}

-keep class com.penthera.virtuososdk.client.drm.LicenseManager {
    public *;
    protected *;
}

-keep class com.penthera.virtuososdk.client.drm.castlabs.CastLabsLicenseManager {
    public *;
    protected *;
}

-keep class com.penthera.virtuososdk.client.subscriptions.ADMService {
    public *;
    protected *;
}

-keep class com.penthera.virtuososdk.service.BroadcastReceiverMessageHandler { *; }
-keep class com.penthera.virtuososdk.service.BroadcastReceiverMessageHandler$** { *; }
-keep class com.penthera.virtuososdk.interfaces.toolkit.VirtuosoContentBox$** { *; }
-keep class com.penthera.virtuososdk.service.VirtuosoService$** { *; }

-keep class com.penthera.virtuososdk.utility.SerializableHttpCookie { *; }

-keepclassmembers class com.penthera.virtuososdk.service.BroadcastReceiverMessageHandler { *; }
-keepclassmembernames class com.penthera.virtuososdk.service.BroadcastReceiverMessageHandler { *; }

-keepclassmembers class com.penthera.virtuososdk.service.VirtuosoForegroundServiceHandler {
    protected *;
    public *;
}

-keepclassmembers class com.penthera.virtuososdk.service.VirtuosoServiceStarter {
    protected *;
    public *;
}

-keepclassmembernames class * {
    java.lang.Class class$(java.lang.String);
    java.lang.Class class$(java.lang.String, boolean);
}

-keepclasseswithmembernames class * {
    native <methods>;
}

-keepclassmembers,allowoptimization enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

-keepclassmembers class * implements java.io.Serializable {
    static final long serialVersionUID;
    private static final java.io.ObjectStreamField[] serialPersistentFields;
    private void writeObject(java.io.ObjectOutputStream);
    private void readObject(java.io.ObjectInputStream);
    java.lang.Object writeReplace();
    java.lang.Object readResolve();
}

# ignore warnings related to push notification libraries not in use at runtime
-dontwarn  com.penthera.virtuososdk.client.subscriptions.**
-dontwarn com.penthera.virtuososdk.subscriptions.**