proguard-rules.pro 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  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. # Missing classes rules
  20. -keep class com.codeskraps.core.local.data.repository.** { *; }
  21. -keep class com.codeskraps.core.local.di.** { *; }
  22. -keep class com.codeskraps.core.local.domain.repository.** { *; }
  23. -keep class com.codeskraps.core.location.di.** { *; }
  24. -keep class com.codeskraps.core.location.domain.** { *; }
  25. -keep class com.codeskraps.feature.common.di.** { *; }
  26. -keep class com.codeskraps.feature.common.dispatcher.** { *; }
  27. -keep class com.codeskraps.feature.common.mvi.** { *; }
  28. -keep class com.codeskraps.feature.common.navigation.** { *; }
  29. -keep class com.codeskraps.feature.geocoding.** { *; }
  30. -keep class com.codeskraps.feature.weather.** { *; }
  31. -keep class com.codeskraps.maps.** { *; }
  32. -keep class com.codeskraps.umami.** { *; }
  33. # Additional dontwarn rules from missing_rules.txt
  34. -dontwarn com.codeskraps.feature.geocoding.di.FeatureModuleKt
  35. -dontwarn com.codeskraps.feature.weather.di.FeatureModuleKt
  36. # Koin
  37. -keepnames class android.arch.lifecycle.ViewModel
  38. -keepclassmembers public class * extends android.arch.lifecycle.ViewModel { public <init>(...); }
  39. -keepclassmembers class com.codeskraps.** { public <init>(...); }
  40. -keepclassmembers class * { @org.koin.core.annotation.KoinInternalApi *; }
  41. -keep class org.koin.** { *; }
  42. -keep class com.codeskraps.**.di.** { *; }
  43. -keep class * extends org.koin.core.module.Module { *; }
  44. # Keep Koin Modules
  45. -keep class com.codeskraps.feature.geocoding.di.FeatureModuleKt { *; }
  46. -keep class com.codeskraps.feature.maps.di.FeatureModuleKt { *; }
  47. -keep class com.codeskraps.feature.weather.di.FeatureModuleKt { *; }
  48. # Java language APIs
  49. -dontwarn java.lang.invoke.StringConcatFactory
  50. # Hilt ViewModel classes
  51. -keep class * extends androidx.lifecycle.ViewModel { *; }
  52. -keep class * extends dagger.hilt.android.lifecycle.HiltViewModel { *; }
  53. -keep,allowobfuscation @dagger.hilt.android.lifecycle.HiltViewModel class *
  54. -keepclasseswithmembers class * {
  55. @javax.inject.Inject <init>(...);
  56. }
  57. # Explicitly keep Hilt generated ViewModel classes
  58. -keep class com.codeskraps.feature.geocoding.presentation.GeocodingViewModel_HiltModules$* { *; }
  59. -keep class com.codeskraps.feature.weather.presentation.WeatherViewModel_HiltModules$* { *; }
  60. -keep class com.codeskraps.maps.presentation.MapViewModel_HiltModules$* { *; }
  61. # Keep all Hilt related classes
  62. -keep class com.codeskraps.weather.WeatherApp_HiltComponents$* { *; }
  63. -keep class dagger.hilt.** { *; }
  64. -keep class javax.inject.** { *; }
  65. -keep class * extends dagger.hilt.android.internal.managers.ViewComponentManager$FragmentContextWrapper { *; }
  66. # Keep Dagger components
  67. -keep,allowobfuscation,allowshrinking @dagger.** class *
  68. -keep,allowobfuscation,allowshrinking class dagger.** { *; }
  69. -keep,allowobfuscation,allowshrinking class javax.inject.** { *; }
  70. -keep,allowobfuscation,allowshrinking class * extends dagger.internal.Factory { *; }
  71. -keepclassmembers,allowobfuscation class * {
  72. @javax.inject.* *;
  73. @dagger.* *;
  74. <init>();
  75. }
  76. # Keep all generated Hilt code
  77. -keep class **_HiltModules$* { *; }
  78. -keep class **_Impl { *; }
  79. -keep class **_Factory { *; }
  80. -keep class **_MembersInjector { *; }
  81. # Keep specific Hilt ViewModel components
  82. -keep class com.codeskraps.feature.geocoding.presentation.GeocodingViewModel_HiltModules$BindsModule { *; }
  83. -keep class com.codeskraps.feature.geocoding.presentation.GeocodingViewModel_HiltModules$KeyModule { *; }
  84. -keep class com.codeskraps.feature.weather.presentation.WeatherViewModel_HiltModules$BindsModule { *; }
  85. -keep class com.codeskraps.feature.weather.presentation.WeatherViewModel_HiltModules$KeyModule { *; }
  86. -keep class com.codeskraps.maps.presentation.MapViewModel_HiltModules$BindsModule { *; }
  87. -keep class com.codeskraps.maps.presentation.MapViewModel_HiltModules$KeyModule { *; }
  88. # Keep Hilt ViewModel factories
  89. -keep class com.codeskraps.feature.geocoding.presentation.GeocodingViewModel_Factory { *; }
  90. -keep class com.codeskraps.feature.weather.presentation.WeatherViewModel_Factory { *; }
  91. -keep class com.codeskraps.maps.presentation.MapViewModel_Factory { *; }
  92. # Keep Hilt ViewModel members injectors
  93. -keep class com.codeskraps.feature.geocoding.presentation.GeocodingViewModel_MembersInjector { *; }
  94. -keep class com.codeskraps.feature.weather.presentation.WeatherViewModel_MembersInjector { *; }
  95. -keep class com.codeskraps.maps.presentation.MapViewModel_MembersInjector { *; }
  96. # Additionally, adding specific rules from the missing_rules.txt
  97. -dontwarn com.codeskraps.core.local.data.repository.LocalGeocodingRepositoryImpl
  98. -dontwarn com.codeskraps.core.local.data.repository.LocalResourceRepositoryImpl
  99. -dontwarn com.codeskraps.core.local.di.LocalModule_ProvidesGeocodingDBFactory
  100. -dontwarn com.codeskraps.core.local.domain.repository.LocalGeocodingRepository
  101. -dontwarn com.codeskraps.core.local.domain.repository.LocalResourceRepository
  102. -dontwarn com.codeskraps.core.location.di.CoreLocationModule_ProvidesLocationTrackerFactory
  103. -dontwarn com.codeskraps.core.location.domain.LocationTracker
  104. -dontwarn com.codeskraps.feature.common.di.FeatureModule_ProvidesDispatcherProviderFactory
  105. -dontwarn com.codeskraps.feature.common.di.FeatureModule_ProvidesResourcesFactory
  106. -dontwarn com.codeskraps.feature.common.dispatcher.DispatcherProvider
  107. -dontwarn com.codeskraps.feature.common.mvi.StateReducerFlow
  108. -dontwarn com.codeskraps.feature.common.navigation.Screen$Geocoding
  109. -dontwarn com.codeskraps.feature.common.navigation.Screen$Map
  110. -dontwarn com.codeskraps.feature.common.navigation.Screen$Weather
  111. -dontwarn com.codeskraps.feature.geocoding.data.remote.GeocodingApi
  112. -dontwarn com.codeskraps.feature.geocoding.data.repository.GeocodingRepositoryImpl
  113. -dontwarn com.codeskraps.feature.geocoding.di.FeatureModule_ProvidesGeocodingApiFactory
  114. -dontwarn com.codeskraps.feature.geocoding.presentation.GeocodingViewModel
  115. -dontwarn com.codeskraps.feature.geocoding.presentation.components.GeocodingScreenKt
  116. -dontwarn com.codeskraps.feature.geocoding.presentation.mvi.GeoEvent
  117. -dontwarn com.codeskraps.feature.geocoding.presentation.mvi.GeoState
  118. -dontwarn com.codeskraps.feature.geocoding.repository.GeocodingRepository
  119. -dontwarn com.codeskraps.feature.weather.data.remote.WeatherApi
  120. -dontwarn com.codeskraps.feature.weather.data.repository.WeatherRepositoryImpl
  121. -dontwarn com.codeskraps.feature.weather.di.FeatureModule_ProvidesWeatherApiFactory
  122. -dontwarn com.codeskraps.feature.weather.domain.repository.WeatherRepository
  123. -dontwarn com.codeskraps.feature.weather.presentation.WeatherViewModel
  124. -dontwarn com.codeskraps.feature.weather.presentation.components.WeatherScreenKt
  125. -dontwarn com.codeskraps.feature.weather.presentation.mvi.WeatherEvent
  126. -dontwarn com.codeskraps.feature.weather.presentation.mvi.WeatherState
  127. -dontwarn com.codeskraps.maps.presentation.MapViewModel
  128. -dontwarn com.codeskraps.maps.presentation.components.MapScreenKt
  129. -dontwarn com.codeskraps.maps.presentation.mvi.MapEvent
  130. -dontwarn com.codeskraps.maps.presentation.mvi.MapState
  131. -dontwarn com.codeskraps.umami.di.CoreUmamiModule_ProvidesAnalyticsRepositoryFactory
  132. -dontwarn com.codeskraps.umami.di.CoreUmamiModule_ProvidesDeviceIdRepositoryFactory
  133. -dontwarn com.codeskraps.umami.domain.AnalyticsRepository
  134. -dontwarn com.codeskraps.umami.domain.DeviceIdRepository