# JellyTau custom keep rules. # # These classes are loaded by name from the Rust backend via JNI # (env.find_class / class-loader lookups), so R8 cannot see the # references and would otherwise strip or rename them in a minified # release build — causing an instant ClassNotFoundException crash on # startup. See src-tauri/src/player/android/mod.rs and # src-tauri/src/credentials.rs. -keep class com.dtourolle.jellytau.player.** { *; } -keep class com.dtourolle.jellytau.security.** { *; } # Picture-in-picture is driven from the WebView through an # @JavascriptInterface bridge, so the only references to these methods live # in JavaScript. R8 sees them as unused and would strip them, silently # breaking the PiP button in release builds only. -keep class com.dtourolle.jellytau.PictureInPictureManager { *; } -keep class com.dtourolle.jellytau.VideoOverlayManager { *; } -keep class com.dtourolle.jellytau.WindowInsetsBridge { *; } -keepclassmembers class * { @android.webkit.JavascriptInterface ; } # Media3 / ExoPlayer is accessed reflectively in places; keep it intact. -keep class androidx.media3.** { *; } -dontwarn androidx.media3.**