Files
aiturk-mobil/app/proguard-rules.pro
T
Hy4ri 34d339e6c9 fix(nav): correct proguard keep rule to use extends instead of implements
Proguard/R8 uses extends for both subclassing and interface implementation, so the implements keyword was invalid.
2026-06-20 18:16:30 +03:00

54 lines
2.9 KiB
Prolog

# ── Kotlin / Coroutines ─────────────────────────────────────────────────
-dontwarn kotlinx.coroutines.**
# ── Room ─────────────────────────────────────────────────────────────────
-keep class * extends androidx.room.RoomDatabase { *; }
-keep @androidx.room.Entity class * { *; }
-keepclassmembers class * { @androidx.room.* <methods>; }
-dontwarn androidx.room.**
# ── Gson / Serialization ─────────────────────────────────────────────────
# Keep all data model classes — Gson uses reflection to access fields
-keep class com.m57.hermescontrol.data.model.** { *; }
-keep class com.m57.hermescontrol.data.ws.JsonRpc* { *; }
-keep class com.m57.hermescontrol.data.ws.WsEvent* { *; }
-keep class com.m57.hermescontrol.data.ws.WsMethods { *; }
-keep class com.m57.hermescontrol.ui.chat.ChatMessage { *; }
-keep class com.m57.hermescontrol.ui.chat.MessageRole { *; }
-keep class com.m57.hermescontrol.ui.chat.ToolStatus { *; }
# Gson itself
-dontwarn com.google.gson.**
-keep class com.google.gson.** { *; }
# Generic type signatures used by Gson
-keepattributes Signature
-keepattributes *Annotation*
-keepattributes EnclosingMethod
-keepattributes InnerClasses
# ── OkHttp / Retrofit ────────────────────────────────────────────────────
-dontwarn okhttp3.**
-dontwarn okio.**
-dontwarn retrofit2.**
-keepattributes RuntimeVisibleAnnotations
-keepattributes RuntimeInvisibleAnnotations
-keepclassmembers,allowshrinking,allowobfuscation interface * {
@retrofit2.http.* <methods>;
}
# ── AndroidX Security Crypto ─────────────────────────────────────────────
-dontwarn androidx.security.crypto.**
# ── Compose ───────────────────────────────────────────────────────────────
-dontwarn androidx.compose.**
# ── BuildConfig ───────────────────────────────────────────────────────────
-keep class com.m57.hermescontrol.BuildConfig { *; }
# ── Navigation (NavKey Names) ─────────────────────────────────────────────
# Keep screen object class names because their simpleNames are used for bottom nav selection and storage.
-keep class * extends androidx.navigation3.runtime.NavKey { *; }