# Add project specific ProGuard rules here. # You can control the set of applied configuration files using the # proguardFiles setting in build.gradle.kts. # Keep Kotlin serialization -keepattributes *Annotation*, InnerClasses -dontnote kotlinx.serialization.AnnotationsKt -keepclassmembers class kotlinx.serialization.json.** { *** Companion; } -keepclasseswithmembers class kotlinx.serialization.json.** { kotlinx.serialization.KSerializer serializer(...); } # Keep JMAP models -keep,includedescriptorclasses class com.fastmask.data.api.**$$serializer { *; } -keepclassmembers class com.fastmask.data.api.** { *** Companion; } -keepclasseswithmembers class com.fastmask.data.api.** { kotlinx.serialization.KSerializer serializer(...); } # Retrofit -keepattributes Signature, InnerClasses, EnclosingMethod -keepattributes RuntimeVisibleAnnotations, RuntimeVisibleParameterAnnotations -keepclassmembers,allowshrinking,allowobfuscation interface * { @retrofit2.http.* ; } -dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement -dontwarn javax.annotation.** -dontwarn kotlin.Unit -dontwarn retrofit2.KotlinExtensions -dontwarn retrofit2.KotlinExtensions$* # OkHttp -dontwarn okhttp3.** -dontwarn okio.** # Google Tink (used by security-crypto) -keep class com.google.crypto.tink.** { *; } -keepclassmembers class * extends com.google.crypto.tink.shaded.protobuf.GeneratedMessageLite { ; } # Tink optional dependencies (not used but referenced) -dontwarn com.google.api.client.http.** -dontwarn com.google.errorprone.annotations.InlineMe -dontwarn org.joda.time.** # Google Error Prone annotations -dontwarn com.google.errorprone.annotations.CanIgnoreReturnValue -dontwarn com.google.errorprone.annotations.CheckReturnValue -dontwarn com.google.errorprone.annotations.Immutable -dontwarn com.google.errorprone.annotations.RestrictedApi -dontwarn javax.annotation.**