From c623e9f795f719e537f553444435aabd733d2543 Mon Sep 17 00:00:00 2001 From: Sylwester Zielinski Date: Mon, 24 Apr 2023 17:15:05 +0200 Subject: [PATCH] Fix UI when device disconnects after bonding failure --- .../nordicsemi/android/gls/main/viewmodel/GLSViewModel.kt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/profile_gls/src/main/java/no/nordicsemi/android/gls/main/viewmodel/GLSViewModel.kt b/profile_gls/src/main/java/no/nordicsemi/android/gls/main/viewmodel/GLSViewModel.kt index 22d73b3d..f2f0c39e 100644 --- a/profile_gls/src/main/java/no/nordicsemi/android/gls/main/viewmodel/GLSViewModel.kt +++ b/profile_gls/src/main/java/no/nordicsemi/android/gls/main/viewmodel/GLSViewModel.kt @@ -166,6 +166,7 @@ internal class GLSViewModel @Inject constructor( .filterNotNull() .onEach { _state.value = _state.value.copyWithNewConnectionState(it) } .onEach { logAnalytics(it) } + .onEach { unlockUiIfDisconnected(it, device) } .launchIn(viewModelScope) if (!client.isConnected) { @@ -185,6 +186,12 @@ internal class GLSViewModel @Inject constructor( } } + private fun unlockUiIfDisconnected(connectionState: GattConnectionStateWithStatus, device: ServerDevice) { + if (connectionState.state == GattConnectionState.STATE_CONNECTED) { + _state.value = _state.value.copy(deviceName = device.name) + } + } + private suspend fun configureGatt(services: BleGattServices, device: ServerDevice) { val glsService = services.findService(GLS_SERVICE_UUID)!! glucoseMeasurementCharacteristic = glsService.findCharacteristic(GM_CHARACTERISTIC)!!