diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index 117f9d4..455fcab 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -20,8 +20,8 @@ android { applicationId = "dev.dettmer.simplenotes" minSdk = 24 targetSdk = 36 - versionCode = 20 // 🎉 v1.8.0: Widgets, Sorting, UI Polish, Post-Update Changelog - versionName = "1.8.0" // 🎉 v1.8.0: Major Feature Release + versionCode = 21 // 🐛 v1.8.1: Checklist Fixes, Widget Sorting, ProGuard Audit + versionName = "1.8.1" // 🐛 v1.8.1: Bugfix & Polish Release testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro index 4e87efa..c187894 100644 --- a/android/app/proguard-rules.pro +++ b/android/app/proguard-rules.pro @@ -82,3 +82,23 @@ # v1.7.1: Suppress TextInclusionStrategy warnings on older Android versions # This class only exists on API 35+ but Compose handles the fallback gracefully -dontwarn android.text.Layout$TextInclusionStrategy + +# ═══════════════════════════════════════════════════════════════════════ +# v1.8.1: Widget & Compose Fixes +# ═══════════════════════════════════════════════════════════════════════ + +# Glance Widget ActionCallbacks (instanziiert via Reflection durch actionRunCallback()) +# Ohne diese Rule findet R8 die Klassen nicht zur Laufzeit → Widget-Crash +-keep class dev.dettmer.simplenotes.widget.*Action { *; } +-keep class dev.dettmer.simplenotes.widget.*Receiver { *; } + +# Glance Widget State (Preferences-basiert, intern via Reflection) +-keep class androidx.glance.appwidget.state.** { *; } +-keep class androidx.datastore.preferences.** { *; } + +# Compose Text Layout: Verhindert dass R8 onTextLayout-Callbacks +# als Side-Effect-Free optimiert (behebt Gradient-Regression) +-keepclassmembers class androidx.compose.foundation.text.** { + ; +} +-keep class androidx.compose.ui.text.TextLayoutResult { *; }