Files
horrorapp/app/proguard-rules.pro
renato97 38c5342e88 feat: state-based D-pad navigation, seek mode, subtitle picker, 20-agent audit fixes
- Replace broken Compose focus system with state-based selectedButton approach
- Add seek mode (DPAD_UP to enter, LEFT/RIGHT to seek, CENTER/DOWN to apply)
- Make SubtitlePickerOverlay state-based (DPAD UP/DOWN navigate, CENTER select)
- Fix 25 P0 crashes from 20-agent audit (SSRF, CancellationException, DTO defaults)
- Fix UX issues: animations, padding, TvErrorDisplay, navigation, finishAffinity
- Fix pause button: remove clickable, onKeyEvent only, repeatCount guard
- Add subtitle extraction: OpenSubtitles EN/ES, HI filtering, dedup
- Fix override accumulation: clearOverridesOfType before setting new tracks
- Disable tunneling for subtitle compatibility
- Performance: AutoHideHolder, @Immutable models, contentType
- Fix SearchScreen focus visibility: animated scale, white border, dimming
- Fix PlayerButton invisible text: white on HorrorGray bg
- Fix isLoading stuck in Home/Detail/SearchViewModel
- Fix VideoExtractor CancellationException rethrow, IMDB_ID_PATTERN 7+ digits
2026-04-27 16:05:53 -03:00

90 lines
2.5 KiB
Prolog

-keep public class * extends android.app.Activity
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends androidx.lifecycle.ViewModel
-keep class com.horrortv.app.data.remote.omdb.dto.** { *; }
-keep class com.horrortv.app.domain.model.** { *; }
-keep class retrofit2.** { *; }
-keepclassmembernames class * {
@retrofit2.http.* <methods>;
}
-keep class okhttp3.** { *; }
-keep interface okhttp3.** { *; }
-dontwarn okhttp3.**
-dontwarn okio.**
-keep class com.google.gson.** { *; }
-keepclassmembers class * {
@com.google.gson.annotations.SerializedName <fields>;
}
-keep class dagger.** { *; }
-keep class * extends dagger.** { *; }
-keep class * implements dagger.** { *; }
-keep class * extends javax.inject.** { *; }
-keep class * implements javax.inject.** { *; }
-dontwarn dagger.**
-keep class io.coil.** { *; }
-keep class coil.** { *; }
-keepclassmembers class kotlinx.coroutines.** {
volatile <fields>;
}
-keepnames class kotlinx.coroutines.internal.MainDispatcherFactory {}
-keepnames class kotlinx.coroutines.CoroutineExceptionHandler {}
-keepclassmembernames class kotlinx.coroutines.** {
@kotlinx.coroutines.InternalCoroutinesApi <methods>;
}
-assumenosideeffects class android.util.Log {
public static boolean isLoggable(...);
public static int v(...);
public static int d(...);
public static int i(...);
}
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*,!code/allocation/variable
-keepattributes *Annotation*
-keepattributes SourceFile,LineNumberTable
-keepattributes RuntimeVisibleAnnotations,RuntimeInvisibleAnnotations
-keepattributes RuntimeVisibleParameterAnnotations,RuntimeInvisibleParameterAnnotations
-keepattributes AnnotationDefault
-renamesourcefileattribute SourceFile
-keepattributes EnclosingMethod
-dontwarn javax.annotation.**
-dontwarn kotlin.Unit
-dontwarn retrofit2.Platform$Java8
-dontwarn kotlin.jvm.internal.Reflection
# Compose
-keep class androidx.compose.runtime.CompositionLocal { *; }
-keepclassmembers class * {
@androidx.compose.runtime.Composable <methods>;
}
# Media3 ExoPlayer
-keep class androidx.media3.** { *; }
# Jsoup
-keep class org.jsoup.** { *; }
# Keep generic signature info for Retrofit+Gson
-keepattributes Signature
# Enums
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}