# Applied automatically when a publisher's app runs R8/minify.
# Keeps the publisher-facing API + manifest activities so R8 doesn't strip them.

-keep public class net.media.renderer.MNetSDK { *; }
-keep public class net.media.renderer.MNetAdCallbacks { *; }
-keep public class net.media.renderer.MNetAdCallbacks$DefaultImpls { *; }
-keep public class net.media.renderer.MNetAdError { *; }
-keep public class net.media.renderer.MNetAdError$* { *; }
-keep public class net.media.renderer.MNetAdEvent { *; }
-keep public class net.media.renderer.MNetInitConfiguration { *; }
-keep public class net.media.renderer.MNetInitConfiguration$* { *; }
-keep public interface net.media.renderer.MNetInitListener { *; }
-keep public class net.media.renderer.MNetInitListener$DefaultImpls { *; }
-keep public class net.media.renderer.MNetInitializationResult { *; }
-keep public class net.media.renderer.MNetInitializationResult$* { *; }
-keep public class net.media.renderer.standalone.MNetBannerView { *; }
-keep public class net.media.renderer.standalone.MNetBannerView$Listener { *; }
-keep public class net.media.renderer.standalone.MNetBannerView$Listener$DefaultImpls { *; }
-keep public class net.media.renderer.standalone.MNetInterstitial { *; }
-keep public class net.media.renderer.standalone.MNetInterstitial$Listener { *; }
-keep public class net.media.renderer.standalone.MNetInterstitial$Listener$DefaultImpls { *; }
-keep public class net.media.renderer.standalone.MNetRewardedAd { *; }
-keep public class net.media.renderer.standalone.MNetRewardedAd$Listener { *; }
-keep public class net.media.renderer.standalone.MNetRewardedAd$Listener$DefaultImpls { *; }
-keep class net.media.renderer.standalone.MNetInterstitialActivity { *; }
-keep class net.media.renderer.standalone.PodInterstitialActivity { *; }
-keep public enum net.media.renderer.standalone.MNetFriendlyObstructionPurpose { *; }

-keep class net.media.renderer.adapter.MNetRenderer { *; }
-keep class net.media.renderer.adapter.RenderRequest { *; }
-keep class net.media.renderer.adapter.ConsentSnapshot { *; }
-keep class net.media.renderer.adapter.ConsentSnapshot$* { *; }
-keep class net.media.renderer.adapter.ServerLoggingParser { *; }
-keep class net.media.renderer.adapter.ServerLoggingParser$* { *; }
-keep class net.media.renderer.adapter.PodResponseParser { *; }
-keep class net.media.renderer.adapter.PodResponseParser$* { *; }
-keep class net.media.renderer.standalone.PodPreloader { *; }
-keep class net.media.renderer.standalone.PreloadedSlot { *; }
-keep class net.media.renderer.standalone.PodSlotChannel { *; }
-keep class net.media.renderer.logging.MNetLogger { *; }
-keep interface net.media.renderer.logging.MNetLogListener { *; }

-keep class net.media.renderer.creative.mraid.MraidActivity
-keep class net.media.renderer.creative.browser.MNetBrowserActivity

# Bundled OMSDK — keep so verification scripts work end-to-end.
-keep class com.iab.omid.library.medianet.** { *; }
-dontwarn com.iab.omid.library.medianet.**

# Relocated Media3 (net.media.media3:*) needs no rules here. The AARs ship Media3's own
# proguard.txt, which pins HlsMediaSource$Factory — the one class DefaultMediaSourceFactory
# resolves by name — and everything else is reached statically, so R8 may rename it. Verified
# on device: R8'd HLS playback fetches the playlist and every segment, start..complete.

-dontwarn javax.annotation.**
-dontwarn java.lang.ClassValue
-dontwarn sun.misc.Unsafe
