v1.5.0: Jetpack Compose Settings Redesign + Fixes
Features: - ✨ Complete Settings UI redesign with Jetpack Compose - 🎨 Material 3 Design with Dynamic Colors (Material You) - 📊 6 logical settings groups in separate screens: * Server Settings (URL, Credentials, Connection Test) * Sync Settings (Auto-Sync, Interval 15/30/60 min) * Markdown Desktop Integration (Auto-Sync for .md files) * Backup & Restore (Local/Server) * About this App (Version, GitHub, License) * Debug & Diagnostics (File Logging, Log Export) Bugfixes (ported from old SettingsActivity): - 🔧 Fix #1: Server URL prefix (http://|https://) auto-set on init - 🔧 Fix #2: Battery optimization dialog on Auto-Sync enable - 🔧 Fix #3: Markdown initial export on feature activation Implementation Details: - SettingsViewModel with Kotlin Flows state management - SettingsEvent system for Activity-level actions (dialogs, intents) - Reusable Compose components (SettingsCard, Switch, RadioGroup, etc.) - Progress dialog for markdown initial export - Edge-to-edge display with system bar handling - Navigation Compose for screen transitions with back button Breaking Changes: - Old SettingsActivity.kt (1147 lines) no longer used (Can be removed in future as legacy code)
This commit is contained in:
@@ -11,6 +11,11 @@ activity = "1.8.0"
|
||||
constraintlayout = "2.1.4"
|
||||
ktlint = "12.1.0"
|
||||
detekt = "1.23.4"
|
||||
# Jetpack Compose v1.5.0
|
||||
composeBom = "2024.02.00"
|
||||
navigationCompose = "2.7.6"
|
||||
lifecycleRuntimeCompose = "2.7.0"
|
||||
activityCompose = "1.8.2"
|
||||
|
||||
[libraries]
|
||||
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
|
||||
@@ -21,10 +26,22 @@ androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version
|
||||
material = { group = "com.google.android.material", name = "material", version.ref = "material" }
|
||||
androidx-activity = { group = "androidx.activity", name = "activity", version.ref = "activity" }
|
||||
androidx-constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "constraintlayout" }
|
||||
# Jetpack Compose v1.5.0
|
||||
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" }
|
||||
androidx-compose-ui = { group = "androidx.compose.ui", name = "ui" }
|
||||
androidx-compose-ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics" }
|
||||
androidx-compose-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" }
|
||||
androidx-compose-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" }
|
||||
androidx-compose-material3 = { group = "androidx.compose.material3", name = "material3" }
|
||||
androidx-compose-material-icons = { group = "androidx.compose.material", name = "material-icons-extended" }
|
||||
androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activityCompose" }
|
||||
androidx-navigation-compose = { group = "androidx.navigation", name = "navigation-compose", version.ref = "navigationCompose" }
|
||||
androidx-lifecycle-runtime-compose = { group = "androidx.lifecycle", name = "lifecycle-runtime-compose", version.ref = "lifecycleRuntimeCompose" }
|
||||
|
||||
[plugins]
|
||||
android-application = { id = "com.android.application", version.ref = "agp" }
|
||||
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
|
||||
kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
|
||||
ktlint = { id = "org.jlleitschuh.gradle.ktlint", version.ref = "ktlint" }
|
||||
detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user