# ProGuard/R8 rules приложения :app (F7cloud Mobile). # Vendor-зависимости (WebRTC/LoganSquare/Dagger/RxJava/Parceler/EventBus) держат # vendor/talk-android/app/consumer-rules.pro (доезжает сюда через consumerProguardFiles). # Здесь — правила для КОДА ПРИЛОЖЕНИЯ и его прямых библиотек. # --- Общие атрибуты (нужны рефлексии/сериализации/отладке стектрейсов) --- -keepattributes Signature,*Annotation*,EnclosingMethod,InnerClasses -keepattributes SourceFile,LineNumberTable -renamesourcefileattribute SourceFile # --- kotlinx.serialization (@Serializable в feature-модулях) --- # Держим сгенерированные сериализаторы; без этого @Serializable падает в рантайме. -keepclassmembers @kotlinx.serialization.Serializable class ** { *** Companion; *** INSTANCE; kotlinx.serialization.KSerializer serializer(...); } -keepclasseswithmembers class ** { @kotlinx.serialization.Serializable ; } -keep,includedescriptorclasses class ru.forbion.f7cloud.**$$serializer { *; } -dontwarn kotlinx.serialization.** # --- Kotlin метаданные/корутины --- -keep class kotlin.Metadata { *; } -dontwarn kotlinx.coroutines.** # --- enum'ы приложения (values()/valueOf по имени) --- -keepclassmembers enum ru.forbion.f7cloud.** { *; } # --- Coil (декодеры подгружаются по имени) --- -dontwarn coil.** -keep class coil.decode.** { *; } # --- OkHttp/Okio/security-провайдеры (косметические ворнинги R8) --- -dontwarn okhttp3.internal.platform.** -dontwarn org.conscrypt.** -dontwarn org.bouncycastle.** -dontwarn org.openjsse.** # --- Firebase Cloud Messaging --- -keep class com.google.firebase.** { *; } -dontwarn com.google.firebase.** # --- WebView JS-мосты (@JavascriptInterface вызывается из JS по имени) --- -keepclassmembers class * { @android.webkit.JavascriptInterface ; } # --- Compose обычно не требует правил; косметика --- -dontwarn org.jetbrains.annotations.**