Files
Ascently/android/app/proguard-rules.pro

73 lines
2.1 KiB
Prolog

# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# Preserve line number information for debugging stack traces
-keepattributes SourceFile,LineNumberTable
# Hide the original source file name
-renamesourcefileattribute SourceFile
# Keep generic signatures for Kotlin
-keepattributes Signature
# Keep annotations
-keepattributes *Annotation*
# Room Database
-keep class * extends androidx.room.RoomDatabase
-keep @androidx.room.Entity class *
-keepclassmembers class * {
@androidx.room.* <fields>;
@androidx.room.* <methods>;
}
# Kotlinx Serialization
-keepattributes *Annotation*, InnerClasses
-dontnote kotlinx.serialization.AnnotationsKt
-keepclassmembers class kotlinx.serialization.json.** {
*** Companion;
}
-keepclasseswithmembers class kotlinx.serialization.json.** {
kotlinx.serialization.KSerializer serializer(...);
}
-keep,includedescriptorclasses class com.atridad.ascently.**$$serializer { *; }
-keepclassmembers class com.atridad.ascently.** {
*** Companion;
}
-keepclasseswithmembers class com.atridad.ascently.** {
kotlinx.serialization.KSerializer serializer(...);
}
# Keep data classes used for serialization
-keep class com.atridad.ascently.data.model.** { *; }
-keep class com.atridad.ascently.data.format.** { *; }
# Coroutines
-keepnames class kotlinx.coroutines.internal.MainDispatcherFactory {}
-keepnames class kotlinx.coroutines.CoroutineExceptionHandler {}
-keepclassmembers class kotlinx.coroutines.** {
volatile <fields>;
}
# Health Connect
-keep class androidx.health.connect.client.** { *; }
-keep interface androidx.health.connect.client.** { *; }
# Coil Image Loading
-keep class coil.** { *; }
# Keep Compose
-keep class androidx.compose.** { *; }
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}