proguard-rules.pro 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. # Add project specific ProGuard rules here.
  2. # You can control the set of applied configuration files using the
  3. # proguardFiles setting in build.gradle.
  4. #
  5. # For more details, see
  6. # http://developer.android.com/guide/developing/tools/proguard.html
  7. # If your project uses WebView with JS, uncomment the following
  8. # and specify the fully qualified class name to the JavaScript interface
  9. # class:
  10. #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
  11. # public *;
  12. #}
  13. # Uncomment this to preserve the line number information for
  14. # debugging stack traces.
  15. -keepattributes SourceFile,LineNumberTable
  16. # If you keep the line number information, uncomment this to
  17. # hide the original source file name.
  18. #-renamesourcefileattribute SourceFile
  19. # Keep all maps related classes
  20. -keep class com.codeskraps.maps.** { *; }
  21. -keep class com.codeskraps.maps.presentation.** { *; }
  22. -keep class com.codeskraps.maps.presentation.components.** { *; }
  23. -keep class com.codeskraps.maps.presentation.mvi.** { *; }
  24. # Keep specifically the problematic classes
  25. -keep class com.codeskraps.maps.presentation.MapViewModel { *; }
  26. -keep class com.codeskraps.maps.presentation.MapViewModel_HiltModules$KeyModule { *; }
  27. -keep class com.codeskraps.maps.presentation.components.MapScreenKt { *; }
  28. -keep class com.codeskraps.maps.presentation.mvi.MapEvent { *; }
  29. -keep class com.codeskraps.maps.presentation.mvi.MapState { *; }
  30. # Keep dependencies
  31. -keep class com.codeskraps.core.local.domain.model.** { *; }
  32. -keep class com.codeskraps.core.local.domain.repository.** { *; }
  33. -keep class com.codeskraps.core.location.domain.** { *; }
  34. -keep class com.codeskraps.umami.domain.** { *; }
  35. # Keep Koin module classes
  36. -keep class com.codeskraps.maps.di.** { *; }
  37. -keep class com.codeskraps.maps.di.FeatureModuleKt { *; }
  38. # Keep Compose screen classes
  39. -keep class com.codeskraps.maps.presentation.components.** { *; }
  40. -keep class com.codeskraps.maps.presentation.components.MapScreenKt { *; }
  41. -keep class com.codeskraps.maps.presentation.components.MapScreenKt$* { *; }
  42. # Keep Compose-related classes
  43. -keep class androidx.compose.** { *; }
  44. -keep class androidx.compose.runtime.** { *; }
  45. -keep class androidx.compose.ui.** { *; }
  46. -keep class androidx.compose.foundation.** { *; }
  47. -keep class androidx.compose.material.** { *; }
  48. -keep class androidx.compose.material3.** { *; }
  49. # Less aggressive obfuscation
  50. -keepnames class com.codeskraps.maps.** { *; }
  51. -keepnames class com.codeskraps.maps.data.** { *; }
  52. -keepnames class com.codeskraps.maps.domain.** { *; }
  53. -keepnames class com.codeskraps.maps.presentation.** { *; }
  54. # Keep Kotlin metadata
  55. -keepattributes RuntimeVisibleAnnotations, RuntimeVisibleParameterAnnotations, RuntimeVisibleTypeAnnotations
  56. -keepattributes *Annotation*
  57. -keepattributes Signature
  58. -keepattributes InnerClasses
  59. -keepattributes EnclosingMethod
  60. # Keep Kotlin coroutines
  61. -keepnames class kotlinx.coroutines.internal.MainDispatcherFactory {}
  62. -keepnames class kotlinx.coroutines.CoroutineExceptionHandler {}
  63. # Dontwarn rules
  64. -dontwarn com.codeskraps.core.local.domain.model.GeoLocation
  65. -dontwarn com.codeskraps.core.local.domain.repository.LocalGeocodingRepository
  66. -dontwarn com.codeskraps.core.local.domain.repository.LocalResourceRepository
  67. -dontwarn com.codeskraps.core.location.domain.LocationTracker
  68. -dontwarn com.codeskraps.umami.domain.AnalyticsRepository
  69. -dontwarn java.lang.invoke.StringConcatFactory