# ============================================================================== # Siro Maps (map-saas) ProGuard & R8 Optimization Rules # ============================================================================== # ── 1. FLUTTER EMBEDDING & NATIVE CHANNELS ──────────────────────────────────── -keep class io.flutter.app.** { *; } -keep class io.flutter.plugin.** { *; } -keep class io.flutter.util.** { *; } -keep class io.flutter.view.** { *; } -keep class io.flutter.** { *; } -keep class io.flutter.plugins.** { *; } -keepattributes *Annotation* -keepattributes SourceFile,LineNumberTable -keepattributes Signature -keepattributes InnerClasses,EnclosingMethod # Keep native methods used by Flutter engine -keepclasseswithmembers class * { native ; } # ── 2. ANDROID AUTO (CAR APP LIBRARY) ───────────────────────────────────────── -keep class androidx.car.app.** { *; } -keep interface androidx.car.app.** { *; } -keep class androidx.car.app.model.** { *; } -keep class androidx.car.app.navigation.** { *; } -keep class androidx.car.app.navigation.model.** { *; } -keep class androidx.car.app.validation.** { *; } # Keep our custom CarAppService, Session, Screen and State models -keep class com.urukmap.app.car.** { *; } -keepclassmembers class com.urukmap.app.car.** { *; } -dontwarn androidx.car.app.** # ── 3. MAPLIBRE GL NATIVE & RENDERING ENGINE ────────────────────────────────── -keep class org.maplibre.** { *; } -keep interface org.maplibre.** { *; } -keep class org.maplibre.android.** { *; } -keep interface org.maplibre.android.** { *; } -keep class org.maplibre.android.maps.** { *; } -keep class org.maplibre.android.geometry.** { *; } -keep class org.maplibre.android.style.** { *; } -dontwarn org.maplibre.** -dontwarn org.maplibre.android.** # ── 4. SHRED PREFERENCES & DATA MODELS ──────────────────────────────────────── -keepclassmembers class * implements java.io.Serializable { static final long serialVersionUID; private static final java.io.ObjectStreamField[] serialPersistentFields; !static !transient ; !private ; !private ; private void writeObject(java.io.ObjectOutputStream); private void readObject(java.io.ObjectInputStream); java.lang.Object writeReplace(); java.lang.Object readResolve(); } # ── 5. KOTLIN & COROUTINES ──────────────────────────────────────────────────── -dontwarn kotlin.** -dontwarn kotlinx.coroutines.** -keep class kotlin.Metadata { *; } # ── 6. PLAY STORE CORE & DEFERRED COMPONENTS ────────────────────────────────── -dontwarn com.google.android.play.core.** -dontwarn com.google.android.play.core.splitcompat.** -dontwarn com.google.android.play.core.splitinstall.** -dontwarn com.google.android.play.core.tasks.** # ── 7. GENERAL DEPENDENCIES ─────────────────────────────────────────────────── -dontwarn javax.annotation.** -dontwarn org.checkerframework.**