feat(android): Backend- und Scrobble-Adresse als Vorgabe aus dem Build
Beide Adressen stehen ohnehin in der docker-compose.yml — sie zusaetzlich auf jedem Geraet einzutippen ist Arbeit ohne Nutzen. Sie kommen jetzt als buildConfigField aus -PnovasonicBackend= / -PnovasonicScrobble= und greifen, wenn im Geraetespeicher nichts steht. Die Felder in den Einstellungen bleiben sichtbar und ueberschreibbar: zieht ein Dienst um oder aendert sich ein Port, laesst sich das am Geraet korrigieren, statt ein APK bauen, hochladen und installieren zu muessen. Ohne gesetzte Eigenschaften verhaelt sich die App exakt wie bisher. Zugangsdaten bleiben bewusst aussen vor — die gehoeren pro Person, nicht in ein APK, das im Release liegt. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
83570b22b5
commit
334aa51a09
3 files changed
+18
-2
No files matched your search
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
Reference in new issue
Block a user