From 8af78bc2eb2139767497bd7ea8f23604cfa0693d Mon Sep 17 00:00:00 2001 From: andrekir Date: Sat, 19 Oct 2024 13:29:39 -0300 Subject: [PATCH] fix(config): show error when radio disconnects before receiving confirmation --- .../java/com/geeksville/mesh/model/RadioConfigViewModel.kt | 6 ++++++ .../main/java/com/geeksville/mesh/service/MeshService.kt | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/geeksville/mesh/model/RadioConfigViewModel.kt b/app/src/main/java/com/geeksville/mesh/model/RadioConfigViewModel.kt index 7ee2c4d7f..751a4f087 100644 --- a/app/src/main/java/com/geeksville/mesh/model/RadioConfigViewModel.kt +++ b/app/src/main/java/com/geeksville/mesh/model/RadioConfigViewModel.kt @@ -100,6 +100,12 @@ class RadioConfigViewModel @Inject constructor( radioConfigRepository.meshPacketFlow.onEach(::processPacketResponse) .launchIn(viewModelScope) + combine(connectionState, radioConfigState) { connState, configState -> + if (connState.isDisconnected() && configState.responseState.isWaiting()) { + setResponseStateError(app.getString(R.string.disconnected)) + } + }.launchIn(viewModelScope) + debug("RadioConfigViewModel created") } diff --git a/app/src/main/java/com/geeksville/mesh/service/MeshService.kt b/app/src/main/java/com/geeksville/mesh/service/MeshService.kt index 1e1bcd018..6ae6966ca 100644 --- a/app/src/main/java/com/geeksville/mesh/service/MeshService.kt +++ b/app/src/main/java/com/geeksville/mesh/service/MeshService.kt @@ -135,7 +135,10 @@ class MeshService : Service(), Logging { enum class ConnectionState { DISCONNECTED, CONNECTED, - DEVICE_SLEEP // device is in LS sleep state, it will reconnected to us over bluetooth once it has data + DEVICE_SLEEP, // device is in LS sleep state, it will reconnected to us over bluetooth once it has data + ; + + fun isDisconnected() = this == DISCONNECTED } private var previousSummary: String? = null