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