-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontskipnonpubliclibraryclassmembers
-dontpreverify
-keepattributes SourceFile,LineNumberTable,*Annotation*,EnclosingMethod,Signature,JavascriptInterface

-keep,includedescriptorclasses class com.intentsoftware.addapptr.** {*;}
-keep public class * extends com.intentsoftware.addapptr.internal.ad.Ad
-dontwarn com.intentsoftware.addapptr.ad.**
-dontwarn com.intentsoftware.addapptr.consent.**
-dontwarn com.intentsoftware.addapptr.internal.ad.**
-dontwarn com.intentsoftware.addapptr.internal.AdController
-dontwarn com.intentsoftware.addapptr.internal.ConsentHelper
-dontwarn com.intentsoftware.addapptr.internal.AdLoader$Delegate$DefaultImpls

-dontwarn com.google.android.exoplayer2.source.rtsp.RtspMessageChannel$MessageParser$ReadingState

#AmazonHB
-keep class com.amazon.device.ads.** { *; }

#AppNexus
-keep public class com.appnexus.opensdk.** {public *;}
-keep public interface com.appnexus.opensdk.* {*;}

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

# display.io
-keep class com.brandio.ads.** { *;}
-dontwarn com.brandio.ads.**

#InMobi
-keep class com.inmobi.** { *; }
-keep public class com.google.android.gms.**
-dontwarn com.google.android.gms.**
-dontwarn com.squareup.picasso.**
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient{
     public *;
}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info{
     public *;
}
# skip the Picasso library classes
-keep class com.squareup.picasso.** {*;}
-dontwarn com.squareup.okhttp.**
# skip Moat classes
-keep class com.moat.** {*;}
-dontwarn com.moat.**
# skip IAB classes
-keep class com.iab.** {*;}
-dontwarn com.iab.**

#Teads
-keep public class tv.teads.sdk.** {*;}
-keep public interface tv.teads.sdk.** {*;}
-keepnames class tv.teads.sdk.** {*;}
-keepnames interface tv.teads.sdk.** {*;}

#Google CMP
-keep class com.google.android.ump.** { *; }

#PubNative
-keep class net.pubnative.** { *; }
-keep class com.iab.omid.library.pubnativenet.** { *; }

#FeedAd
-keep class com.feedad.** { *; }

#Facebook
-keep class com.facebook.** { *; }
-dontwarn com.facebook.**

#ironSource
-keepclassmembers class com.ironsource.sdk.controller.IronSourceWebView$JSInterface {
    public *;
}
-keepclassmembers class * implements android.os.Parcelable {
    public static final android.os.Parcelable$Creator *;
}
-keep public class com.google.android.gms.ads.** {
   public *;
}
-keep class com.ironsource.adapters.** { *;
}
-dontwarn com.ironsource.mediationsdk.**
-dontwarn com.ironsource.adapters.**
-keepattributes JavascriptInterface
-keepclassmembers class * {
    @android.webkit.JavascriptInterface <methods>;
}

# Mintegral
-keep class com.mbridge.** {*; }
-keep interface com.mbridge.** {*; }
-dontwarn com.mbridge.**
-keepclassmembers class **.R$* { public static final int mbridge*; }

-keep public class com.mbridge.* extends androidx.** { *; }
-keep public class androidx.viewpager.widget.PagerAdapter{*;}
-keep public class androidx.viewpager.widget.ViewPager.OnPageChangeListener{*;}
-keep interface androidx.annotation.IntDef{*;}
-keep interface androidx.annotation.Nullable{*;}
-keep interface androidx.annotation.CheckResult{*;}
-keep interface androidx.annotation.NonNull{*;}
-keep public class androidx.fragment.app.Fragment{*;}
-keep public class androidx.core.content.FileProvider{*;}
-keep public class androidx.core.app.NotificationCompat{*;}
-keep public class androidx.appcompat.widget.AppCompatImageView {*;}
-keep public class androidx.recyclerview.*{*;}
-keep class com.mbridge.msdk.foundation.tools.FastKV{*;}
-keep class com.mbridge.msdk.foundation.tools.FastKV$Builder{*;}

# Vungle
-dontwarn com.vungle.warren.downloader.DownloadRequestMediator$Status
-dontwarn com.vungle.warren.error.VungleError$ErrorCode
-keep public class com.vungle.ads.** {*;}

# Tappx
-keep public class com.tappx.** { *; }

# Kidoz
-keepclasseswithmembers class com.kidoz.** {*;}
-keep @interface org.greenrobot.eventbus.Subscribe
-keepclassmembers class * {
@org.greenrobot.eventbus.Subscribe <methods>;
}

#Unity
-dontwarn android.adservices.AdServicesState
-dontwarn android.adservices.topics.GetTopicsRequest$Builder
-dontwarn android.adservices.topics.GetTopicsRequest
-dontwarn android.adservices.topics.GetTopicsResponse
-dontwarn android.adservices.topics.Topic
-dontwarn android.adservices.topics.TopicsManager

#Ogury
-dontwarn com.android.billingclient.api.BillingClient$Builder
-dontwarn com.android.billingclient.api.BillingClient
-dontwarn com.android.billingclient.api.BillingClientStateListener
-dontwarn com.android.billingclient.api.BillingFlowParams$Builder
-dontwarn com.android.billingclient.api.BillingFlowParams
-dontwarn com.android.billingclient.api.BillingResult
-dontwarn com.android.billingclient.api.Purchase$PurchasesResult
-dontwarn com.android.billingclient.api.Purchase
-dontwarn com.android.billingclient.api.PurchasesUpdatedListener
-dontwarn com.android.billingclient.api.SkuDetails
-dontwarn com.android.billingclient.api.SkuDetailsParams$Builder
-dontwarn com.android.billingclient.api.SkuDetailsParams
-dontwarn com.android.billingclient.api.SkuDetailsResponseListener

#SFBX/AppConsent
-dontwarn com.sfbx.**
-dontwarn java.lang.management.ManagementFactory
-dontwarn java.lang.management.RuntimeMXBean

# Google
-keep class com.google.android.gms.** { *; }
-dontwarn com.google.android.gms.**

-keep class com.google.api.client.** { *; }
-dontwarn com.google.api.client.**

-keep class org.joda.time.** { *; }
-dontwarn org.joda.time.**

# Protobuf
-dontwarn com.google.protobuf.**
-keepclassmembers class com.google.protobuf.** {
  *;
}
-keep class * extends com.google.protobuf.GeneratedMessageLite { *; }

# GSON
-keepattributes *Annotation*
-keepattributes Signature
# Prevent R8 from leaving Data object members always null
-keepclassmembers,allowobfuscation class * {
@com.google.gson.annotations.SerializedName <fields>;
}

# Gson specific classes
-dontwarn sun.misc.**
#-keep class com.google.gson.stream.** { *; }

# Application classes that will be serialized/deserialized over Gson
-keep class com.google.gson.examples.android.model.** { <fields>; }

# Prevent proguard from stripping interface information from TypeAdapter, TypeAdapterFactory,
# JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter)
-keep class * extends com.google.gson.TypeAdapter
-keep class * implements com.google.gson.TypeAdapterFactory
-keep class * implements com.google.gson.JsonSerializer
-keep class * implements com.google.gson.JsonDeserializer

# Retain generic signatures of TypeToken and its subclasses with R8 version 3.0 and higher.
-keep,allowobfuscation,allowshrinking class com.google.gson.reflect.TypeToken
-keep,allowobfuscation,allowshrinking class * extends com.google.gson.reflect.TypeToken

# OkHttp + Okio
-dontwarn javax.annotation.**
-keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase
-dontwarn org.codehaus.mojo.animal_sniffer.*
-dontwarn okhttp3.internal.platform.ConscryptPlatform

# Ignore optional networks
-dontwarn com.amazon.device.ads.**
-dontwarn com.kidoz.sdk.**
-dontwarn tv.teads.sdk.**


