diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index 3d3657e..150d765 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -32,6 +32,15 @@ android { // zusaetzliche Einstellung in der App waere also nur eine weitere Adresse zum Pflegen — // und eine, die vom Manifest abweichen koennte, ohne dass es jemand merkt. buildConfigField("String", "SHARE_HOST", "\"$host1\"") + + // Vorgabe-Adressen fuer Backend und Scrobble-Dienst. Sie stehen ohnehin in der + // docker-compose.yml — sie zusaetzlich auf jedem Geraet einzutippen ist Arbeit ohne Nutzen. + // Leer gelassen verhaelt sich die App wie bisher (Felder sichtbar, nichts vorbelegt). + // Zugangsdaten bleiben bewusst aussen vor: die gehoeren pro Person, nicht ins APK. + val backendUrl = (project.findProperty("novasonicBackend") as String?) ?: "" + val scrobbleUrl = (project.findProperty("novasonicScrobble") as String?) ?: "" + buildConfigField("String", "DEFAULT_BACKEND_URL", "\"$backendUrl\"") + buildConfigField("String", "DEFAULT_SCROBBLE_URL", "\"$scrobbleUrl\"") } buildFeatures { diff --git a/android/app/src/main/kotlin/com/novasonic/app/data/PrefsStore.kt b/android/app/src/main/kotlin/com/novasonic/app/data/PrefsStore.kt index 76da7c3..49d94ba 100644 --- a/android/app/src/main/kotlin/com/novasonic/app/data/PrefsStore.kt +++ b/android/app/src/main/kotlin/com/novasonic/app/data/PrefsStore.kt @@ -71,8 +71,12 @@ class PrefsStore(private val context: Context) { username = prefs[KEY_USERNAME] ?: "", password = prefs[KEY_PASSWORD] ?: "", lastFmKey = prefs[KEY_LASTFM_KEY] ?: "", - backendUrl = prefs[KEY_BACKEND_URL] ?: "", - scrobbleUrl = prefs[KEY_SCROBBLE_URL] ?: "", + backendUrl = prefs[KEY_BACKEND_URL]?.ifBlank { null } + ?: com.novasonic.app.BuildConfig.DEFAULT_BACKEND_URL, + // Leerer Speicherwert => eingebaute Vorgabe. So muss auf einem frischen Geraet nichts + // eingetippt werden, ein eigener Eintrag hat aber weiterhin Vorrang. + scrobbleUrl = prefs[KEY_SCROBBLE_URL]?.ifBlank { null } + ?: com.novasonic.app.BuildConfig.DEFAULT_SCROBBLE_URL, scrobbleMode = prefs[KEY_SCROBBLE_MODE] ?: "30s", showPlayCount = prefs[KEY_SHOW_COUNT] ?: false, theme = prefs[KEY_THEME] ?: "dark-ocean", diff --git a/android/app/src/main/kotlin/com/novasonic/app/ui/screen/SettingsScreen.kt b/android/app/src/main/kotlin/com/novasonic/app/ui/screen/SettingsScreen.kt index 98f7893..4828d13 100644 --- a/android/app/src/main/kotlin/com/novasonic/app/ui/screen/SettingsScreen.kt +++ b/android/app/src/main/kotlin/com/novasonic/app/ui/screen/SettingsScreen.kt @@ -194,6 +194,9 @@ fun SettingsScreen(onOpenStats: () -> Unit = {}, onOpenCompare: () -> Unit = {}) label = "Last.fm API Key", hint = "Kostenlos unter last.fm/api/account/create", ) + // Vorbelegt aus BuildConfig (siehe build.gradle.kts): auf einem frischen Geraet muss nichts + // eingetippt werden. Das Feld bleibt trotzdem bedienbar — zieht der Dienst um, laesst sich + // das hier korrigieren, ohne ein neues APK zu bauen. NsTextField( value = state.backendUrl, onValueChange = vm::onBackendUrl, label = "NovaSonic Backend URL",