From 49fd12ac34d07ade9a8949c83159a7ddc563498c Mon Sep 17 00:00:00 2001 From: M57 <41645758+Hy4ri@users.noreply.github.com> Date: Sat, 20 Jun 2026 23:54:43 +0300 Subject: [PATCH] fix(#115): send enabled flag on config save and propagate configuration errors (#186) --- .../m57/hermescontrol/ui/channels/ChannelsScreen.kt | 8 +++++++- .../hermescontrol/ui/channels/ChannelsViewModel.kt | 11 +++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/m57/hermescontrol/ui/channels/ChannelsScreen.kt b/app/src/main/java/com/m57/hermescontrol/ui/channels/ChannelsScreen.kt index 5d14f06d..d3df7f06 100644 --- a/app/src/main/java/com/m57/hermescontrol/ui/channels/ChannelsScreen.kt +++ b/app/src/main/java/com/m57/hermescontrol/ui/channels/ChannelsScreen.kt @@ -158,7 +158,13 @@ fun ChannelsScreen( Button( onClick = { - viewModel.configurePlatform(platform.id, inputValues.toMap()) + viewModel.configurePlatform( + platform.id, + MessagingPlatformUpdate( + enabled = platform.enabled, + env = inputValues.toMap(), + ), + ) showConfigureForm = false }, modifier = Modifier.align(Alignment.End), diff --git a/app/src/main/java/com/m57/hermescontrol/ui/channels/ChannelsViewModel.kt b/app/src/main/java/com/m57/hermescontrol/ui/channels/ChannelsViewModel.kt index 0dd68eed..18bb9938 100644 --- a/app/src/main/java/com/m57/hermescontrol/ui/channels/ChannelsViewModel.kt +++ b/app/src/main/java/com/m57/hermescontrol/ui/channels/ChannelsViewModel.kt @@ -54,6 +54,7 @@ class ChannelsViewModel : ViewModel() { platformId: String, update: MessagingPlatformUpdate, ) { + _uiState.update { it.copy(isLoading = true, errorMessage = null) } viewModelScope.launch { val result = withContext(Dispatchers.IO) { @@ -61,12 +62,18 @@ class ChannelsViewModel : ViewModel() { } when (result) { is NetworkResult.Success -> { - _uiState.update { it.copy(toastMessage = "$platformId configured successfully") } + _uiState.update { it.copy(isLoading = false, toastMessage = "$platformId configured successfully") } loadPlatforms() } is NetworkResult.Failure -> { - _uiState.update { it.copy(toastMessage = "Failed to configure platform: ${result.error.message}") } + _uiState.update { + it.copy( + isLoading = false, + errorMessage = "Failed to configure platform: ${result.error.message}", + toastMessage = "Failed to configure platform: ${result.error.message}", + ) + } } } }