fix: Verbindungs-Noise unterdrücken

- loadSettings() ruft connect() nur noch auf wenn ConnectionState
  NotConfigured oder Disconnected ist – verhindert den self-triggering
  Loop (pullSync → loadSettings → connect → Connecting → Connected → …)
- pullSync() erhält Parameter silent=true für den initialen Connect-Sync;
  zeigt kein 'Empfange Inventar-Update…' mehr beim bloßen Verbindungsaufbau
- Version 1.2 (3) → 1.3 (4)
This commit is contained in:
Jens Reinemann 2026-05-17 19:05:37 +02:00
parent 152f484d4f
commit aafb9ddd64
2 changed files with 11 additions and 6 deletions

View file

@ -15,8 +15,8 @@ android {
applicationId = "de.bollwerk.app"
minSdk = 26
targetSdk = 35
versionCode = 3
versionName = "1.2"
versionCode = 4
versionName = "1.3"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
buildConfigField("boolean", "FEATURE_CAMERA_ENABLED", "true")

View file

@ -92,7 +92,7 @@ internal class SettingsViewModel @Inject constructor(
showActivity(SyncActivityMessage.Error(event.message))
}
is WebSocketEvent.Connected -> {
pullSync(fullSync = false)
pullSync(fullSync = false, silent = true)
}
else -> {}
}
@ -134,7 +134,12 @@ internal class SettingsViewModel @Inject constructor(
}
if (isLoggedIn) {
webSocketClient.connect(serverUrl, accessToken)
val currentState = webSocketClient.connectionState.value
if (currentState == ConnectionState.NotConfigured
|| currentState is ConnectionState.Disconnected
) {
webSocketClient.connect(serverUrl, accessToken)
}
}
} catch (e: Exception) {
_uiState.update {
@ -427,10 +432,10 @@ internal class SettingsViewModel @Inject constructor(
}
}
fun pullSync(fullSync: Boolean = false) {
fun pullSync(fullSync: Boolean = false, silent: Boolean = false) {
viewModelScope.launch {
_uiState.update { it.copy(isSyncing = true) }
showActivity(SyncActivityMessage.ReceivingUpdate)
if (!silent) showActivity(SyncActivityMessage.ReceivingUpdate)
try {
val since = if (fullSync) null else settingsRepository.getStringOrNull(StringKey.SyncLastTimestamp)?.toLongOrNull()
val result = syncService.downloadInventory(since)