Files
aiturk-mobil/app/proguard-rules.pro
T
M57 5697405b19 refactor: migrate Gson serialization to kotlinx.serialization (#475)
* refactor: migrate Gson serialization to kotlinx.serialization

* fix(dto): resolve serializing Any? and Map<String, Any?> with JsonElement

* test(refactor): fix unit test issues under kotlinx.serialization and update nullable DTO defaults

* fix(chat): support flexible numeric and string decoding for message timestamps

* fix(chat): sequentialize cache loading to avoid overwriting network state
2026-07-05 21:30:44 +03:00

50 lines
2.8 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 { *; }
# Generic type signatures used by serialization
-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 { *; }