-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontskipnonpubliclibraryclassmembers
-dontpreverify
-verbose
-dump class_files.txt
-printseeds seeds.txt
-printusage unused.txt
-printmapping mapping.txt
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-keeppackagenames com.adpdigital.push.**
-keeppackagenames com.adpdigital.push.location.**
-flattenpackagehierarchy
-allowaccessmodification
-renamesourcefileattribute SourceFile
-keepattributes *Annotation*
-keepattributes Signature
-keepattributes SourceFile,LineNumberTable
-keepattributes Exceptions,InnerClasses
#-adaptresourcefilenames **.properties

-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 class android.os.Bundle { *; }

-keep class com.adpdigital.push.AdpPushClient { *; }
-keep class com.adpdigital.push.ForegroundManager { *; }
-keep class com.adpdigital.push.AppListener { *; }
-keep class com.adpdigital.push.PushMessage { *; }
-keep class com.adpdigital.push.ChabokNotification { *; }
-keep class com.adpdigital.push.DeliveryMessage { *; }
-keep class com.adpdigital.push.EventMessage { *; }
-keep class com.adpdigital.push.MessageSent { *; }
-keep class com.adpdigital.push.BadgeUpdate { *; }
-keep class com.adpdigital.push.Callback { *; }
-keep class com.adpdigital.push.NotificationHandler { *; }
-keep class com.adpdigital.push.ConnectionStatus { *; }
-keepclassmembernames class com.adpdigital.push.location.GeofenceParams {
    public <methods>;
    public <fields>;
}
-keep public class com.adpdigital.push.location.GeofenceParams$* {
    *;
}
-keep public class com.adpdigital.push.location.LocationParams$* {
    *;
}
-keep public class com.adpdigital.push.location.LocationParams.Builder.** { *; }
-keepattributes com.adpdigital.push.location.LocationParams.Builder
-keepclassmembers class com.adpdigital.push.location.LocationParams.** { *; }
-keep class com.adpdigital.push.location.LocationEvent { *; }
-keep class com.adpdigital.push.location.LocationMode { *; }
-keep class com.adpdigital.push.location.LocationAccuracy { *; }
-keep class com.adpdigital.push.location.OnLocationUpdateListener { *; }

-keepnames class com.adpdigital.push.location.LocationManager
-keepclassmembernames class com.adpdigital.push.location.LocationManager {
    public <methods>;
    public <fields>;
}

-keepclassmembers class * {
    public protected *;
    public void onEvent;
    private static class *;
}


# Preserve the special static methods that are required in all enumeration classes.
-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}


# Remove Logging statements
-assumenosideeffects class com.adpdigital.push.Logger {
    public static boolean isLoggable(java.lang.String, int);
    public static *** d(...);
    public static *** v(...);
    public static *** w(...);
    public static *** e(...);
    public static *** i(...);
}

#-assumenosideeffects class android.util.Log {
#    public static boolean isLoggable(java.lang.String, int);
#    public static int d(...);
#    public static int w(...);
#    public static int v(...);
#    public static int i(...);
#}


#not sure if this is neccassary
# pulled from https://github.com/leolin310148/ShortcutBadger/blob/master/ShortcutBadger/proguard-rules.pro
-keep class me.leolin.shortcutbadger.impl.AdwHomeBadger { <init>(...); }
-keep class me.leolin.shortcutbadger.impl.ApexHomeBadger { <init>(...); }
-keep class me.leolin.shortcutbadger.impl.AsusHomeLauncher { <init>(...); }
-keep class me.leolin.shortcutbadger.impl.DefaultBadger { <init>(...); }
-keep class me.leolin.shortcutbadger.impl.NewHtcHomeBadger { <init>(...); }
-keep class me.leolin.shortcutbadger.impl.NovaHomeBadger { <init>(...); }
-keep class me.leolin.shortcutbadger.impl.SolidHomeBadger { <init>(...); }
-keep class me.leolin.shortcutbadger.impl.SonyHomeBadger { <init>(...); }
-keep class me.leolin.shortcutbadger.impl.XiaomiHomeBadger { <init>(...); }