diff --git a/app/build.gradle.kts b/app/build.gradle.kts index f138e19..5397eda 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -12,8 +12,8 @@ android { applicationId = "com.gronod.esp32aldldashboard" minSdk = 24 targetSdk = 36 - versionCode = 1 - versionName = "1.0" + versionCode = 2 + versionName = "1.0.0" } signingConfigs { @@ -31,7 +31,7 @@ android { buildTypes { release { signingConfig = signingConfigs.getByName("release") - isMinifyEnabled = false + isMinifyEnabled = true proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro") } } diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..bda9751 --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,43 @@ +# ProGuard rules for ESP32 ALDL Dashboard +# Compose + Room + Kotlin Serialization + Navigation3 + +# --- General --- +-keepattributes *Annotation* +-keepattributes Signature +-keepattributes Exceptions +-keepattributes InnerClasses +-keepattributes EnclosingMethod +-keepattributes SourceFile,LineNumberTable +-renamesourcefileattribute SourceFile + +# --- Room --- +-keep class * extends androidx.room.RoomDatabase +-keep class * { @androidx.room.* ; } +-dontwarn androidx.room.paging.** + +# --- Kotlin Serialization --- +-keep class kotlinx.serialization.** { *; } +-keepclassmembers class * { + @kotlinx.serialization.SerialName ; + @kotlinx.serialization.Serializable ; +} +-if @kotlinx.serialization.Serializable class ** +-keepclassmembers class <1> { + static **$$serializerInstance; + kotlinx.serialization.KSerializer serializer(...); +} + +# --- Compose / Navigation --- +-keep class androidx.navigation3.** { *; } +-keep class * implements androidx.navigation3.NavigationUi { *; } +-keepclassmembers class * { + @androidx.compose.runtime.Composable ; +} + +# --- DataStore / Preferences --- +-keep class androidx.datastore.** { *; } +-keep class * implements androidx.datastore.core.Serializer { *; } + +# --- Application classes (auto-generated, keep to be safe) --- +-keep class com.gronod.esp32aldldashboard.** { *; } +-keepclassmembers class com.gronod.esp32aldldashboard.** { *; }