diff --git a/profile_bps/src/main/java/no/nordicsemi/android/bps/view/BPSScreen.kt b/profile_bps/src/main/java/no/nordicsemi/android/bps/view/BPSScreen.kt index 5f21341b..4239dad2 100644 --- a/profile_bps/src/main/java/no/nordicsemi/android/bps/view/BPSScreen.kt +++ b/profile_bps/src/main/java/no/nordicsemi/android/bps/view/BPSScreen.kt @@ -70,16 +70,14 @@ fun BPSScreen() { .padding(16.dp) .verticalScroll(rememberScrollState()) ) { - if (state.deviceName == null) { - DeviceConnectingView() - } else { - when (state.result.connectionState) { - null, - GattConnectionState.STATE_CONNECTING -> DeviceConnectingView { NavigateUpButton(navigateUp) } - GattConnectionState.STATE_DISCONNECTED, - GattConnectionState.STATE_DISCONNECTING -> DeviceDisconnectedView(Reason.UNKNOWN) { NavigateUpButton(navigateUp) } - GattConnectionState.STATE_CONNECTED -> BPSContentView(state.result) { viewModel.onEvent(it) } + when (state.result.connectionState) { + null, + GattConnectionState.STATE_CONNECTING -> DeviceConnectingView { NavigateUpButton(navigateUp) } + GattConnectionState.STATE_DISCONNECTED, + GattConnectionState.STATE_DISCONNECTING -> DeviceDisconnectedView(Reason.UNKNOWN) { + NavigateUpButton(navigateUp) } + GattConnectionState.STATE_CONNECTED -> BPSContentView(state.result) { viewModel.onEvent(it) } } } } diff --git a/profile_cgms/src/main/java/no/nordicsemi/android/cgms/view/CGMScreen.kt b/profile_cgms/src/main/java/no/nordicsemi/android/cgms/view/CGMScreen.kt index 590e908b..6c042100 100644 --- a/profile_cgms/src/main/java/no/nordicsemi/android/cgms/view/CGMScreen.kt +++ b/profile_cgms/src/main/java/no/nordicsemi/android/cgms/view/CGMScreen.kt @@ -71,16 +71,14 @@ fun CGMScreen() { .padding(16.dp) .verticalScroll(rememberScrollState()) ) { - if (state.deviceName == null) { - DeviceConnectingView() - } else { - when (state.connectionState) { - null, - GattConnectionState.STATE_CONNECTING -> DeviceConnectingView { NavigateUpButton(navigateUp) } - GattConnectionState.STATE_DISCONNECTED, - GattConnectionState.STATE_DISCONNECTING -> DeviceDisconnectedView(Reason.UNKNOWN) { NavigateUpButton(navigateUp) } - GattConnectionState.STATE_CONNECTED -> CGMContentView(state) { viewModel.onEvent(it) } + when (state.connectionState) { + null, + GattConnectionState.STATE_CONNECTING -> DeviceConnectingView { NavigateUpButton(navigateUp) } + GattConnectionState.STATE_DISCONNECTED, + GattConnectionState.STATE_DISCONNECTING -> DeviceDisconnectedView(Reason.UNKNOWN) { + NavigateUpButton(navigateUp) } + GattConnectionState.STATE_CONNECTED -> CGMContentView(state) { viewModel.onEvent(it) } } } } diff --git a/profile_csc/src/main/java/no/nordicsemi/android/csc/view/CSCScreen.kt b/profile_csc/src/main/java/no/nordicsemi/android/csc/view/CSCScreen.kt index 692ba72d..2c3bcbbc 100644 --- a/profile_csc/src/main/java/no/nordicsemi/android/csc/view/CSCScreen.kt +++ b/profile_csc/src/main/java/no/nordicsemi/android/csc/view/CSCScreen.kt @@ -71,16 +71,14 @@ fun CSCScreen() { .padding(16.dp) .verticalScroll(rememberScrollState()) ) { - if (state.deviceName == null) { - DeviceConnectingView() - } else { - when (state.connectionState) { - null, - GattConnectionState.STATE_CONNECTING -> DeviceConnectingView { NavigateUpButton(navigateUp) } - GattConnectionState.STATE_DISCONNECTED, - GattConnectionState.STATE_DISCONNECTING -> DeviceDisconnectedView(Reason.UNKNOWN) { NavigateUpButton(navigateUp) } - GattConnectionState.STATE_CONNECTED -> CSCContentView(state) { viewModel.onEvent(it) } + when (state.connectionState) { + null, + GattConnectionState.STATE_CONNECTING -> DeviceConnectingView { NavigateUpButton(navigateUp) } + GattConnectionState.STATE_DISCONNECTED, + GattConnectionState.STATE_DISCONNECTING -> DeviceDisconnectedView(Reason.UNKNOWN) { + NavigateUpButton(navigateUp) } + GattConnectionState.STATE_CONNECTED -> CSCContentView(state) { viewModel.onEvent(it) } } } } diff --git a/profile_gls/src/main/java/no/nordicsemi/android/gls/main/view/GLSScreen.kt b/profile_gls/src/main/java/no/nordicsemi/android/gls/main/view/GLSScreen.kt index 7637ad12..25c091cb 100644 --- a/profile_gls/src/main/java/no/nordicsemi/android/gls/main/view/GLSScreen.kt +++ b/profile_gls/src/main/java/no/nordicsemi/android/gls/main/view/GLSScreen.kt @@ -70,16 +70,14 @@ fun GLSScreen() { .padding(16.dp) .verticalScroll(rememberScrollState()) ) { - if (state.deviceName == null) { - DeviceConnectingView() - } else { - when (state.glsServiceData.connectionState) { - null, - GattConnectionState.STATE_CONNECTING -> DeviceConnectingView { NavigateUpButton(navigateUp) } - GattConnectionState.STATE_DISCONNECTED, - GattConnectionState.STATE_DISCONNECTING -> DeviceDisconnectedView(Reason.UNKNOWN) { NavigateUpButton(navigateUp) } - GattConnectionState.STATE_CONNECTED -> GLSContentView(state.glsServiceData) { viewModel.onEvent(it) } + when (state.glsServiceData.connectionState) { + null, + GattConnectionState.STATE_CONNECTING -> DeviceConnectingView { NavigateUpButton(navigateUp) } + GattConnectionState.STATE_DISCONNECTED, + GattConnectionState.STATE_DISCONNECTING -> DeviceDisconnectedView(Reason.UNKNOWN) { + NavigateUpButton(navigateUp) } + GattConnectionState.STATE_CONNECTED -> GLSContentView(state.glsServiceData) { viewModel.onEvent(it) } } } } 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 0eda054c..3a35766a 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 @@ -34,6 +34,7 @@ package no.nordicsemi.android.gls.main.viewmodel import android.annotation.SuppressLint import android.content.Context import android.os.ParcelUuid +import android.util.Log import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import dagger.hilt.android.lifecycle.HiltViewModel @@ -163,7 +164,6 @@ internal class GLSViewModel @Inject constructor( client.connectionState .filterNotNull() .onEach { _state.value = _state.value.copyWithNewConnectionState(it) } - .onEach { stopIfDisconnected(it) } .onEach { logAnalytics(it) } .launchIn(viewModelScope) @@ -209,12 +209,6 @@ internal class GLSViewModel @Inject constructor( _state.value = _state.value.copy(deviceName = device.name) //prevents UI from appearing before BLE connection is set up } - private fun stopIfDisconnected(connectionState: GattConnectionState) { - if (connectionState == GattConnectionState.STATE_DISCONNECTED) { - navigationManager.navigateUp() - } - } - private fun onAccessControlPointDataReceived(data: RecordAccessControlPointData) = viewModelScope.launch { when (data) { is NumberOfRecordsData -> onNumberOfRecordsReceived(data.numberOfRecords) diff --git a/profile_hrs/src/main/java/no/nordicsemi/android/hrs/view/HRSScreen.kt b/profile_hrs/src/main/java/no/nordicsemi/android/hrs/view/HRSScreen.kt index 3a6b508e..f3669480 100644 --- a/profile_hrs/src/main/java/no/nordicsemi/android/hrs/view/HRSScreen.kt +++ b/profile_hrs/src/main/java/no/nordicsemi/android/hrs/view/HRSScreen.kt @@ -71,16 +71,14 @@ fun HRSScreen() { .padding(16.dp) .verticalScroll(rememberScrollState()) ) { - if (state.deviceName == null) { - DeviceConnectingView() - } else { - when (state.connectionState) { - null, - GattConnectionState.STATE_CONNECTING -> DeviceConnectingView { NavigateUpButton(navigateUp) } - GattConnectionState.STATE_DISCONNECTED, - GattConnectionState.STATE_DISCONNECTING -> DeviceDisconnectedView(Reason.UNKNOWN) { NavigateUpButton(navigateUp) } - GattConnectionState.STATE_CONNECTED -> HRSContentView(state) { viewModel.onEvent(it) } + when (state.connectionState) { + null, + GattConnectionState.STATE_CONNECTING -> DeviceConnectingView { NavigateUpButton(navigateUp) } + GattConnectionState.STATE_DISCONNECTED, + GattConnectionState.STATE_DISCONNECTING -> DeviceDisconnectedView(Reason.UNKNOWN) { + NavigateUpButton(navigateUp) } + GattConnectionState.STATE_CONNECTED -> HRSContentView(state) { viewModel.onEvent(it) } } } } diff --git a/profile_hts/src/main/java/no/nordicsemi/android/hts/view/HTSScreen.kt b/profile_hts/src/main/java/no/nordicsemi/android/hts/view/HTSScreen.kt index 1669179b..2d396cd9 100644 --- a/profile_hts/src/main/java/no/nordicsemi/android/hts/view/HTSScreen.kt +++ b/profile_hts/src/main/java/no/nordicsemi/android/hts/view/HTSScreen.kt @@ -71,16 +71,14 @@ fun HTSScreen() { .padding(16.dp) .verticalScroll(rememberScrollState()) ) { - if (state.deviceName == null) { - DeviceConnectingView() - } else { - when (state.connectionState) { - null, - GattConnectionState.STATE_CONNECTING -> DeviceConnectingView { NavigateUpButton(navigateUp) } - GattConnectionState.STATE_DISCONNECTED, - GattConnectionState.STATE_DISCONNECTING -> DeviceDisconnectedView(Reason.UNKNOWN) { NavigateUpButton(navigateUp) } - GattConnectionState.STATE_CONNECTED -> HTSContentView(state) { viewModel.onEvent(it) } + when (state.connectionState) { + null, + GattConnectionState.STATE_CONNECTING -> DeviceConnectingView { NavigateUpButton(navigateUp) } + GattConnectionState.STATE_DISCONNECTED, + GattConnectionState.STATE_DISCONNECTING -> DeviceDisconnectedView(Reason.UNKNOWN) { + NavigateUpButton(navigateUp) } + GattConnectionState.STATE_CONNECTED -> HTSContentView(state) { viewModel.onEvent(it) } } } } diff --git a/profile_prx/src/main/java/no/nordicsemi/android/prx/view/PRXScreen.kt b/profile_prx/src/main/java/no/nordicsemi/android/prx/view/PRXScreen.kt index e8716a52..bf08e6c1 100644 --- a/profile_prx/src/main/java/no/nordicsemi/android/prx/view/PRXScreen.kt +++ b/profile_prx/src/main/java/no/nordicsemi/android/prx/view/PRXScreen.kt @@ -71,16 +71,14 @@ fun PRXScreen() { .padding(16.dp) .verticalScroll(rememberScrollState()) ) { - if (state.deviceName == null) { - DeviceConnectingView() - } else { - when (state.connectionState) { - null, - GattConnectionState.STATE_CONNECTING -> DeviceConnectingView { NavigateUpButton(navigateUp) } - GattConnectionState.STATE_DISCONNECTED, - GattConnectionState.STATE_DISCONNECTING -> DeviceDisconnectedView(getReason(state.isLinkLossDisconnected)) { NavigateUpButton(navigateUp) } - GattConnectionState.STATE_CONNECTED -> ContentView(state) { viewModel.onEvent(it) } + when (state.connectionState) { + null, + GattConnectionState.STATE_CONNECTING -> DeviceConnectingView { NavigateUpButton(navigateUp) } + GattConnectionState.STATE_DISCONNECTED, + GattConnectionState.STATE_DISCONNECTING -> DeviceDisconnectedView(getReason(state.isLinkLossDisconnected)) { + NavigateUpButton(navigateUp) } + GattConnectionState.STATE_CONNECTED -> ContentView(state) { viewModel.onEvent(it) } } } } diff --git a/profile_rscs/src/main/java/no/nordicsemi/android/rscs/view/RSCSScreen.kt b/profile_rscs/src/main/java/no/nordicsemi/android/rscs/view/RSCSScreen.kt index 168233c1..643bd3cc 100644 --- a/profile_rscs/src/main/java/no/nordicsemi/android/rscs/view/RSCSScreen.kt +++ b/profile_rscs/src/main/java/no/nordicsemi/android/rscs/view/RSCSScreen.kt @@ -71,16 +71,14 @@ fun RSCSScreen() { .padding(16.dp) .verticalScroll(rememberScrollState()) ) { - if (state.deviceName == null) { - DeviceConnectingView() - } else { - when (state.connectionState) { - null, - GattConnectionState.STATE_CONNECTING -> DeviceConnectingView { NavigateUpButton(navigateUp) } - GattConnectionState.STATE_DISCONNECTED, - GattConnectionState.STATE_DISCONNECTING -> DeviceDisconnectedView(Reason.UNKNOWN) { NavigateUpButton(navigateUp) } - GattConnectionState.STATE_CONNECTED -> RSCSContentView(state) { viewModel.onEvent(it) } + when (state.connectionState) { + null, + GattConnectionState.STATE_CONNECTING -> DeviceConnectingView { NavigateUpButton(navigateUp) } + GattConnectionState.STATE_DISCONNECTED, + GattConnectionState.STATE_DISCONNECTING -> DeviceDisconnectedView(Reason.UNKNOWN) { + NavigateUpButton(navigateUp) } + GattConnectionState.STATE_CONNECTED -> RSCSContentView(state) { viewModel.onEvent(it) } } } } diff --git a/profile_uart/src/main/java/no/nordicsemi/android/uart/data/UARTServiceData.kt b/profile_uart/src/main/java/no/nordicsemi/android/uart/data/UARTServiceData.kt index 162b1307..ea24e58c 100644 --- a/profile_uart/src/main/java/no/nordicsemi/android/uart/data/UARTServiceData.kt +++ b/profile_uart/src/main/java/no/nordicsemi/android/uart/data/UARTServiceData.kt @@ -35,7 +35,7 @@ import no.nordicsemi.android.kotlin.ble.core.data.GattConnectionState internal data class UARTServiceData( val messages: List = emptyList(), - val connectionState: GattConnectionState = GattConnectionState.STATE_DISCONNECTED, + val connectionState: GattConnectionState? = null, val batteryLevel: Int? = null, val deviceName: String? = null ) { diff --git a/profile_uart/src/main/java/no/nordicsemi/android/uart/view/UARTScreen.kt b/profile_uart/src/main/java/no/nordicsemi/android/uart/view/UARTScreen.kt index b7583647..9623917b 100644 --- a/profile_uart/src/main/java/no/nordicsemi/android/uart/view/UARTScreen.kt +++ b/profile_uart/src/main/java/no/nordicsemi/android/uart/view/UARTScreen.kt @@ -75,15 +75,14 @@ fun UARTScreen() { Column( modifier = Modifier.padding(it) ) { - if (state.uartManagerState.deviceName == null) { - PaddingBox { DeviceConnectingView() } - } else { - when (state.uartManagerState.connectionState) { - GattConnectionState.STATE_CONNECTING -> PaddingBox { DeviceConnectingView { NavigateUpButton(navigateUp) } } - GattConnectionState.STATE_DISCONNECTED, - GattConnectionState.STATE_DISCONNECTING -> PaddingBox { DeviceDisconnectedView(Reason.UNKNOWN) { NavigateUpButton(navigateUp) } } - GattConnectionState.STATE_CONNECTED -> SuccessScreen() + when (state.uartManagerState.connectionState) { + null, + GattConnectionState.STATE_CONNECTING -> PaddingBox { DeviceConnectingView { NavigateUpButton(navigateUp) } } + GattConnectionState.STATE_DISCONNECTED, + GattConnectionState.STATE_DISCONNECTING -> PaddingBox { + DeviceDisconnectedView(Reason.UNKNOWN) { NavigateUpButton(navigateUp) } } + GattConnectionState.STATE_CONNECTED -> SuccessScreen() } } } @@ -112,12 +111,14 @@ private fun AppBar(state: UARTViewState, navigateUp: () -> Unit, viewModel: UART private fun SuccessScreen() { val input = stringResource(id = R.string.uart_input) val macros = stringResource(id = R.string.uart_macros) - val viewEntity = remember { PagerViewEntity( - listOf( - PagerViewItem(input) { KeyboardView() }, - PagerViewItem(macros) { MacroView() } + val viewEntity = remember { + PagerViewEntity( + listOf( + PagerViewItem(input) { KeyboardView() }, + PagerViewItem(macros) { MacroView() } + ) ) - ) } + } PagerView( viewEntity = viewEntity, modifier = Modifier.fillMaxSize(),