# Yorvana ProGuard rules # Keep kotlinx.serialization -keepattributes *Annotation*, InnerClasses -dontnote kotlinx.serialization.AnnotationsKt -keepclassmembers class kotlinx.serialization.json.** { *** Companion; } -keepclasseswithmembers class kotlinx.serialization.json.** { kotlinx.serialization.KSerializer serializer(...); } -keep,includedescriptorclasses class com.yorvana.**$$serializer { *; } -keepclassmembers class com.yorvana.** { *** Companion; } -keepclasseswithmembers class com.yorvana.** { kotlinx.serialization.KSerializer serializer(...); } # Keep data classes used in serialization -keep class com.yorvana.data.model.** { *; } # Keep TestTags for release-build instrumentation tests -keep class com.yorvana.ui.TestTags { *; } # Suppress warnings from test dependencies used in instrumentation tests -dontwarn net.bytebuddy.** -dontwarn com.sun.jna.** -dontwarn com.google.errorprone.** -dontwarn org.junit.** -dontwarn io.mockk.** -dontwarn sun.misc.Unsafe -dontwarn java.lang.instrument.ClassFileTransformer -dontwarn javax.lang.model.element.Modifier # Explicitly handle missing classes that R8 blockers -keep class com.sun.jna.** { *; } -keep class net.bytebuddy.** { *; } # Keep Compose nodes for testing -keep class androidx.compose.ui.platform.AbstractComposeView { *; } -keep class androidx.compose.ui.platform.InspectableValue { *; } -keep class androidx.compose.ui.semantics.SemanticsModifierNode { *; }