# For AerServ SDK
-keep class com.aerserv.** { *; }
-keepclassmembers class com.aerserv.** { *; }

# For Adcolony
-dontwarn com.adcolony.**
-keep class com.adcolony.sdk.* { *; }
-keepclassmembers class com.adcolony.sdk.ADCNative** {
   *;
}
-keepclassmembers class fqcn.of.javascript.interface.for.webview {
   public *;
}

# For Admob by Google
-keep class com.google.android.gms.ads.** { *; }

# For Amazon
-dontwarn com.amazon.device.ads.*
-keep class com.amazon.device.ads.** { *; }

# For Applovin
-dontwarn com.applovin.**
-keep class com.applovin.** { *; }

# For AppNext
-keep class com.appnext.** { *; }
-dontwarn com.appnext.**

# For Audience Network by Facebook
-dontwarn com.facebook.ads.**
-keep class com.facebook.ads.** { *; }

# For Chartboost
-dontwarn com.chartboost.sdk.**
-keep class com.chartboost.sdk.** { *; }

# For InMobi
-dontwarn com.inmobi.**
-keep class com.inmobi.** { *; }
# For InMobi (OMID)
-keep class com.iab.omid.library.inmobi.** {*;}
-keep class com.iab.omid.library.inmobi.** {*;}
# For InMobi (Moat)
-keep class com.moat.analytics.mobile.inm.** {*;}
-dontwarn com.moat.analytics.mobile.inm.**
# For InMobi (Picasso)
-keep class com.squareup.picasso.** {*;}
-dontwarn com.squareup.picasso.**
-dontwarn com.squareup.okhttp.**

# For Flurry by Yahoo!
-dontwarn android.support.customtabs.**
-dontwarn com.flurry.android.**
-dontwarn com.flurry.**
-keep class com.flurry.** { *; }

# For Millennial Media by AOL
-dontwarn com.millennialmedia.**
-keep class com.millennialmedia.** { *; }

# For Mopub by Twitter
-dontwarn com.mopub.**
-keep class com.mopub.** { *; }
-keep class * extends com.mopub.mobileads.CustomEventBanner {}
-keep class * extends com.mopub.mobileads.CustomEventInterstitial {}
-keep class * extends com.mopub.nativeads.CustomEventNative {}
-keep class * extends com.mopub.nativeads.CustomEventRewardedAd {}
-keepclassmembers class ** { @com.mopub.common.util.ReflectionTarget *; }
# For Mopub (Avid)
-keepclassmembers class com.integralads.avid.library.mopub.** { public *; }
-keep public class com.integralads.avid.library.mopub.**
# For Mopub (Moat)
-keepclassmembers class com.moat.analytics.mobile.mpub.** { public *; }
-keep public class com.moat.analytics.mobile.mpub.**

# For MyTarget
-dontwarn com.my.target.**
-keep class com.my.target.** { *; }

# For RhythmOne
-dontwarn com.rhythmone.ad.sdk.**
-keep class com.rhythmone.ad.sdk.** { *; }

# For Unity Ads
-dontwarn com.unity3d.ads.**
-keep class com.unity3d.ads.** { *; }
-keep class com.unity3d.services.** {
   *;
}
-dontwarn com.google.ar.core.**

# For Vungle
-dontwarn com.vungle.**
-dontnote com.vungle.**
-keep class com.vungle.** { *; }
-keep class javax.inject.*
# ignore eventbus warnings
-dontwarn de.greenrobot.event.util.**
# ignore rx warnings
-dontwarn rx.internal.util.unsafe.**
# keep some important rx stuff - https://github.com/ReactiveX/RxJava/issues/3097
-keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* {
    long producerIndex;
    long consumerIndex;
}
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef {
    rx.internal.util.atomic.LinkedQueueNode producerNode;
}
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef {
    rx.internal.util.atomic.LinkedQueueNode consumerNode;
}
-keep class rx.schedulers.Schedulers { public static <methods>; }
-keep class rx.schedulers.ImmediateScheduler { public <methods>; }
-keep class rx.schedulers.TestScheduler { public <methods>; }
-keep class rx.schedulers.Schedulers { public static ** test(); }

# Shared libraries
-keepattributes *Annotation*

-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 public class android.webkit.JavascriptInterface {}

-keepclassmembers class * {
   @android.webkit.JavascriptInterface <methods>;
}

-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 {*;}

-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 class * implements android.os.Parcelable {
    public static final ** CREATOR;
}

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

-keep class android.support.v7.** {
    public protected *;
}
