# React Native core
-keep class com.facebook.react.** { *; }
-keep class com.facebook.hermes.** { *; }
-keep class com.facebook.jni.** { *; }
-keep class com.facebook.soloader.** { *; }
-dontwarn com.facebook.**

# React Native new architecture (RN 0.74+)
-keep class com.facebook.react.defaults.** { *; }
-keep class com.facebook.react.turbomodule.** { *; }
-keep class com.facebook.react.fabric.** { *; }
-keep class com.facebook.react.bridgeless.** { *; }
-keep class com.facebook.react.bridge.** { *; }
-keep class com.facebook.react.uimanager.** { *; }
-keep class com.facebook.react.devsupport.** { *; }

# Keep annotations and native methods
-keepattributes *Annotation*
-keepattributes SourceFile,LineNumberTable
-keepclasseswithmembernames class * { native <methods>; }
-keepclassmembers class * {
    @com.facebook.react.bridge.ReactMethod *;
}
-keepclassmembers class * {
    @com.facebook.react.bridge.ReactProp *;
}

# StreamVault app
-keep class com.streamvault.app.** { *; }

# libtorrent4j — local torrent streaming
-keep class org.libtorrent4j.** { *; }
-dontwarn org.libtorrent4j.**
# NanoHTTPD — embedded HTTP server for torrent streaming
-keep class fi.iki.elonen.** { *; }
-dontwarn fi.iki.elonen.**

# Hopmn peer SDK — only present in amazon flavor; suppress warnings in standard
-dontwarn io.hopmonsdk.**
-dontwarn io.hopmon.**
-dontwarn com.android.volley.**

# react-native-reanimated 3.x (critical - strips worklet runtime without this)
-keep class com.swmansion.reanimated.** { *; }
-keep class com.swmansion.gesturehandler.** { *; }
-keep class com.swmansion.rnscreens.** { *; }
-dontwarn com.swmansion.**

# react-native-vector-icons
-keep class com.oblador.vectoricons.** { *; }

# react-native-video 6.x (ExoPlayer 3 / media3 - NOT com.google.android.exoplayer2)
-keep class androidx.media3.** { *; }
-keep class com.brentvatne.** { *; }
-dontwarn androidx.media3.**

# react-native-safe-area-context
-keep class com.th3rdwave.safeareacontext.** { *; }

# React Navigation
-keep class com.reactnativecommunity.** { *; }

# MMKV
-keep class com.tencent.mmkv.** { *; }

# OkHttp (networking)
-keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase
-dontwarn okhttp3.**
-dontwarn okio.**
-dontwarn javax.annotation.**

# Kotlin
-keep class kotlin.** { *; }
-keep class kotlin.Metadata { *; }
-dontwarn kotlin.**
-keepclassmembers class **$WhenMappings { <fields>; }
-keepclassmembers class kotlin.Metadata {
    public <methods>;
}
