# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in F:\Android/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the proguardFiles
# directive in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

-dontskipnonpubliclibraryclasses
-dontskipnonpubliclibraryclassmembers

# Preserve all native method names and the names of their classes.
-keepclasseswithmembernames class * {
    native <methods>;
}

-keep public class com.android.vending.licensing.ILicensingService
-dontnote com.android.vending.licensing.ILicensingService
-dontwarn com.google.ads.interactivemedia.v3.**

-dontwarn com.qsl.**
-keep class com.qsl.** {
    public protected private *;
}

-dontwarn org.codehaus.jackson.**
-keep class org.codehaus.jackson.** {
    public protected private *;
}

### END JACKSON

# START GSON

# For using GSON @Expose annotation
-keepattributes *Annotation*,EnclosingMethod,Signature

# Gson specific classes
-keep class sun.misc.Unsafe { *; }

# Application classes that will be serialized/deserialized over Gson
-keep class net.amp.dvr.api.** { *; }
-keep class net.amp.dvr.messaging.** { *; }
# END GSON

# START JS
-keep public class android.webkit.JavascriptInterface {
    public protected private *;
}

-keepattributes JavascriptInterface

-keepclassmembers class * implements com.vervewireless.advert.MRAIDJavascriptInterface {
     public *;
}

-keepclassmembers class com.vervewireless.advert.internal.MRAIDJavascriptCallsProxy {
    public *;
}

-keepclassmembers class com.vervewireless.advert.internal.MRAIDBridge$JavascriptInterfaceImpl {
    public *;
}

-keepclassmembers class * implements com.vervewireless.advert.VRVSDKJavascriptInterface {
    public *;
}

-keepclassmembers class com.vervewireless.advert.internal.VRVSDKBridge$JavascriptInterfaceImpl {
    public *;
}

-keepclassmembers class com.vervewireless.advert.internal.VRVSDKJavascriptCallsProxy {
    public *;
}
# END JS

-keepclassmembers public class com.vervewireless.advert.SupportServiceUtils {
    static void storePartnerKeyword(android.content.Context,java.lang.String);
}

-keep public interface com.vervewireless.advert.AppStateListener {
    public *;
}

-keepclassmembers public class com.vervewireless.advert.VerveAdSDK {
    private void setAppStateListener(com.vervewireless.advert.AppStateListener);
    private void setPermissionRequestInProgress(boolean);
    private void setPartnerKeywordInternal(java.lang.String);
}

-dontwarn com.vervewireless.advert.**
-keep class com.vervewireless.advert.** {
    public protected *;
    <init>(...);
}

-dontwarn com.moat.**
-keep class com.moat.** {
    public protected private *;
}

#AVID
-dontwarn com.integralads.avid.library.verve.**
-keep class com.integralads.avid.library.verve.** {
    public protected private *;
}

# MoPub Proguard Config

## Keep public classes and methods.
-keepclassmembers class com.mopub.** { public *; }
-keep public class com.mopub.**
-keep public class android.webkit.JavascriptInterface {}


 # Explicitly keep any custom event classes in any package.
-keep class * extends com.mopub.mobileads.CustomEventBanner {}
-keepclassmembers class com.mopub.mobileads.CustomEventBannerAdapter {!private !public !protected *;}
-keep class * extends com.mopub.mobileads.CustomEventInterstitial {}
-keep class * extends com.mopub.mobileads.CustomEventNative {}

 -keep class * extends com.mopub.mobileads.VerveBanner {}
 -keep class * extends com.mopub.mobileads.VerveBannerAlt {}
 -keep class * extends com.mopub.mobileads.VerveInterstitial {}
 -keep class * extends com.mopub.mobileads.VerveInterstitialAlt {}

 # Support for Android Advertiser ID.
 -keep class com.google.android.gms.common.GooglePlayServicesUtil {*;}
 -keep class com.google.android.gms.ads.identifier.AdvertisingIdClient {*;}
 -keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info {*;}
 -dontwarn com.google.android.gms.**

 # Filter out warnings that refer to legacy Code.
 -dontwarn org.apache.http.**
 -dontwarn com.mopub.volley.toolbox.**

# Support for Android Advertiser ID.
-keep class com.google.android.gms.common.GooglePlayServicesUtil {*;}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient {*;}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info {*;}

# Support for Google Play Services
# http://developer.android.com/google/play-services/setup.html
-keep class * extends java.util.ListResourceBundle {
    protected Object[][] getContents();
}

-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
    public static final *** NULL;
}

-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
    @com.google.android.gms.common.annotation.KeepName *;
}

-keepnames class * implements android.os.Parcelable {
    public static final ** CREATOR;
}
# END MoPub

# START Android Support v7
-keep public class android.support.v7.widget.** { *; }
-keep public class android.support.v7.internal.widget.** { *; }
-keep public class android.support.v7.internal.view.menu.** { *; }

-keep public class * extends android.support.v4.view.ActionProvider {
    public <init>(android.content.Context);
}
# END Android Support v7