Private
Public Access
1
0

[android] backend: normalize base url

This commit is contained in:
2026-04-12 11:26:38 -07:00
parent fd3660858e
commit 7056a7f836
5 changed files with 32 additions and 7 deletions

View File

@@ -24,7 +24,7 @@ data class ServerConfig(
fun loadFromSettings(context: Context): ServerConfig {
val prefs = getSharedPreferences(context)
return ServerConfig(
serverName = prefs.getString("serverName", null),
serverName = prefs.getString("serverName", null).normalizedBaseUrl(),
authentication = ServerAuthentication.loadFromEncryptedSettings(context)
)
}
@@ -37,7 +37,7 @@ data class ServerConfig(
fun saveToSettings(context: Context) {
val prefs = getSharedPreferences(context)
prefs.edit {
putString("serverName", serverName)
putString("serverName", serverName.normalizedBaseUrl())
apply()
}
@@ -45,6 +45,11 @@ data class ServerConfig(
}
}
fun String?.normalizedBaseUrl(): String? {
val value = this?.trim()?.takeIf { it.isNotEmpty() } ?: return null
return if (value.endsWith("/")) value else "$value/"
}
data class ServerAuthentication(
val username: String,
val password: String,
@@ -101,7 +106,9 @@ class ServerConfigRepository @Inject constructor(
fun applyConfig(applicator: ServerConfig.() -> Unit) {
val config = _serverConfig.value.copy()
_serverConfig.value = config.apply(applicator)
_serverConfig.value = config.apply(applicator).also {
it.serverName = it.serverName.normalizedBaseUrl()
}
_serverConfig.value.saveToSettings(context)
}
}