# 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 <fields>;
}
-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 <methods>;
}

# --- Compose обычно не требует правил; косметика ---
-dontwarn org.jetbrains.annotations.**
