feat(android): Navidrome-Adresse als Vorgabe, Login vorbelegt (1.3)

Ergaenzt Backend und Scrobble um die Navidrome-Adresse: alle drei kommen als
buildConfigField aus dem Build und greifen, wenn im Geraetespeicher nichts steht.
Der Anmeldebildschirm ist damit vorbelegt — beim ersten Start bleiben nur noch
Benutzer und Passwort. Die Felder in den Einstellungen bleiben sichtbar und
ueberschreibbar, ein Umzug ist also ohne neues APK zu korrigieren.

Zugangsdaten bleiben aussen vor. Das Publish-Skript reicht die Werte aus
scripts/.env.release durch, damit kuenftige Builds sie nicht verlieren.
Am erzeugten BuildConfig geprueft, alle vier Werte stehen darin.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
marcandClaude Opus 5 committed 2026-09-06 20:37:13 +02:00
1 parent 334aa51a09
commit dfae34c706
5 files changed
+27 -7

No files matched your search

@@ -59,7 +59,9 @@ class PrefsStore(private val context: Context) {
val credentials: Flow<Credentials> = context.dataStore.data.map { prefs ->
Credentials(
serverUrl = prefs[KEY_SERVER] ?: "",
// Adresse vorbelegt, Zugangsdaten bewusst nicht — die gehoeren pro Person.
serverUrl = prefs[KEY_SERVER]?.ifBlank { null }
?: com.novasonic.app.BuildConfig.DEFAULT_ND_URL,
username = prefs[KEY_USERNAME] ?: "",
password = prefs[KEY_PASSWORD] ?: "",
)
@@ -67,7 +69,8 @@ class PrefsStore(private val context: Context) {
val appSettings: Flow<AppSettings> = context.dataStore.data.map { prefs ->
AppSettings(
serverUrl = prefs[KEY_SERVER] ?: "",
serverUrl = prefs[KEY_SERVER]?.ifBlank { null }
?: com.novasonic.app.BuildConfig.DEFAULT_ND_URL,
username = prefs[KEY_USERNAME] ?: "",
password = prefs[KEY_PASSWORD] ?: "",
lastFmKey = prefs[KEY_LASTFM_KEY] ?: "",
@@ -24,7 +24,8 @@ fun LoginScreen(onLoggedIn: () -> Unit) {
val vm: LoginViewModel = viewModel()
val state by vm.state.collectAsStateWithLifecycle()
var serverUrl by remember { mutableStateOf("") }
// Serveradresse vorbelegen, falls im Build hinterlegt — dann bleiben nur Benutzer und Passwort.
var serverUrl by remember { mutableStateOf(com.novasonic.app.BuildConfig.DEFAULT_ND_URL) }
var username by remember { mutableStateOf("") }
var password by remember { mutableStateOf("") }
var showPw by remember { mutableStateOf(false) }