diff --git a/profile_cgms/src/main/java/no/nordicsemi/android/cgms/data/CGMServiceData.kt b/profile_cgms/src/main/java/no/nordicsemi/android/cgms/data/CGMServiceData.kt index 3cf495f6..2307c447 100644 --- a/profile_cgms/src/main/java/no/nordicsemi/android/cgms/data/CGMServiceData.kt +++ b/profile_cgms/src/main/java/no/nordicsemi/android/cgms/data/CGMServiceData.kt @@ -8,7 +8,8 @@ internal data class CGMServiceData( val records: List = emptyList(), val batteryLevel: Int? = null, val connectionState: GattConnectionStateWithStatus? = null, - val requestStatus: RequestStatus = RequestStatus.IDLE + val requestStatus: RequestStatus = RequestStatus.IDLE, + val deviceName: String? = null ) data class CGMRecordWithSequenceNumber( diff --git a/profile_cgms/src/main/java/no/nordicsemi/android/cgms/repository/CGMRepository.kt b/profile_cgms/src/main/java/no/nordicsemi/android/cgms/repository/CGMRepository.kt index 14715bef..44a3e917 100644 --- a/profile_cgms/src/main/java/no/nordicsemi/android/cgms/repository/CGMRepository.kt +++ b/profile_cgms/src/main/java/no/nordicsemi/android/cgms/repository/CGMRepository.kt @@ -91,6 +91,7 @@ class CGMRepository @Inject constructor( private fun shouldClean() = !isOnScreen && !isServiceRunning fun launch(device: ServerDevice) { + _data.value = _data.value.copy(deviceName = device.name) serviceManager.startService(CGMService::class.java, device) } 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 994b42e8..121759ae 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 @@ -55,14 +55,13 @@ import no.nordicsemi.android.ui.view.ProfileAppBar fun CGMScreen() { val viewModel: CGMViewModel = hiltViewModel() val state = viewModel.state.collectAsState().value - val deviceName = viewModel.deviceName.collectAsState().value val navigateUp = { viewModel.onEvent(NavigateUp) } Scaffold( topBar = { ProfileAppBar( - deviceName = deviceName, + deviceName = state.deviceName, connectionState = state.connectionState, title = R.string.cgms_title, navigateUp = navigateUp, diff --git a/profile_cgms/src/main/java/no/nordicsemi/android/cgms/viewmodel/CGMViewModel.kt b/profile_cgms/src/main/java/no/nordicsemi/android/cgms/viewmodel/CGMViewModel.kt index b5a93b59..a06eb650 100644 --- a/profile_cgms/src/main/java/no/nordicsemi/android/cgms/viewmodel/CGMViewModel.kt +++ b/profile_cgms/src/main/java/no/nordicsemi/android/cgms/viewmodel/CGMViewModel.kt @@ -35,8 +35,6 @@ import android.os.ParcelUuid import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import dagger.hilt.android.lifecycle.HiltViewModel -import kotlinx.coroutines.flow.MutableStateFlow -import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.firstOrNull import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach @@ -68,9 +66,6 @@ internal class CGMViewModel @Inject constructor( val state = repository.data - private val _deviceName = MutableStateFlow(null) - val deviceName = _deviceName.asStateFlow() - init { repository.setOnScreen(true) @@ -112,7 +107,6 @@ internal class CGMViewModel @Inject constructor( } private fun onDeviceSelected(device: ServerDevice) { - _deviceName.value = device.name repository.launch(device) } diff --git a/profile_csc/src/main/java/no/nordicsemi/android/csc/repository/CSCRepository.kt b/profile_csc/src/main/java/no/nordicsemi/android/csc/repository/CSCRepository.kt index 6091ab0e..1aa79672 100644 --- a/profile_csc/src/main/java/no/nordicsemi/android/csc/repository/CSCRepository.kt +++ b/profile_csc/src/main/java/no/nordicsemi/android/csc/repository/CSCRepository.kt @@ -73,6 +73,7 @@ class CSCRepository @Inject constructor( val isRunning = data.map { it.connectionState?.state == GattConnectionState.STATE_CONNECTED } fun launch(device: ServerDevice) { + _data.value = _data.value.copy(deviceName = device.name) serviceManager.startService(CSCService::class.java, device) } diff --git a/profile_hrs/src/main/java/no/nordicsemi/android/hrs/data/HRSServiceData.kt b/profile_hrs/src/main/java/no/nordicsemi/android/hrs/data/HRSServiceData.kt index 5cbde590..59043ad6 100644 --- a/profile_hrs/src/main/java/no/nordicsemi/android/hrs/data/HRSServiceData.kt +++ b/profile_hrs/src/main/java/no/nordicsemi/android/hrs/data/HRSServiceData.kt @@ -39,7 +39,8 @@ internal data class HRSServiceData( val bodySensorLocation: Int? = null, val batteryLevel: Int? = null, val connectionState: GattConnectionStateWithStatus? = null, - val zoomIn: Boolean = false + val zoomIn: Boolean = false, + val deviceName: String? = null ) { val heartRates = data.map { it.heartRate } } diff --git a/profile_hrs/src/main/java/no/nordicsemi/android/hrs/service/HRSRepository.kt b/profile_hrs/src/main/java/no/nordicsemi/android/hrs/service/HRSRepository.kt index 172de950..e2df0947 100644 --- a/profile_hrs/src/main/java/no/nordicsemi/android/hrs/service/HRSRepository.kt +++ b/profile_hrs/src/main/java/no/nordicsemi/android/hrs/service/HRSRepository.kt @@ -87,6 +87,7 @@ class HRSRepository @Inject constructor( private fun shouldClean() = !isOnScreen && !isServiceRunning fun launch(device: ServerDevice) { + _data.value = _data.value.copy(deviceName = device.name) serviceManager.startService(HRSService::class.java, device) } 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 12ae54b4..2416e1ae 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 @@ -55,14 +55,13 @@ import no.nordicsemi.android.ui.view.ProfileAppBar fun HRSScreen() { val viewModel: HRSViewModel = hiltViewModel() val state = viewModel.state.collectAsState().value - val deviceName = viewModel.deviceName.collectAsState().value val navigateUp = { viewModel.onEvent(NavigateUpEvent) } Scaffold( topBar = { ProfileAppBar( - deviceName = deviceName, + deviceName = state.deviceName, connectionState = state.connectionState, title = R.string.hrs_title, navigateUp = navigateUp, diff --git a/profile_hrs/src/main/java/no/nordicsemi/android/hrs/viewmodel/HRSViewModel.kt b/profile_hrs/src/main/java/no/nordicsemi/android/hrs/viewmodel/HRSViewModel.kt index 9ddfcffa..8f836513 100644 --- a/profile_hrs/src/main/java/no/nordicsemi/android/hrs/viewmodel/HRSViewModel.kt +++ b/profile_hrs/src/main/java/no/nordicsemi/android/hrs/viewmodel/HRSViewModel.kt @@ -35,8 +35,6 @@ import android.os.ParcelUuid import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import dagger.hilt.android.lifecycle.HiltViewModel -import kotlinx.coroutines.flow.MutableStateFlow -import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.firstOrNull import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach @@ -67,9 +65,6 @@ internal class HRSViewModel @Inject constructor( val state = repository.data - private val _deviceName = MutableStateFlow(null) - val deviceName = _deviceName.asStateFlow() - init { repository.setOnScreen(true) @@ -102,7 +97,6 @@ internal class HRSViewModel @Inject constructor( } private fun onDeviceSelected(device: ServerDevice) { - _deviceName.value = device.name repository.launch(device) } diff --git a/profile_hts/src/main/java/no/nordicsemi/android/hts/data/HTSServiceData.kt b/profile_hts/src/main/java/no/nordicsemi/android/hts/data/HTSServiceData.kt index 870f452e..e16453b7 100644 --- a/profile_hts/src/main/java/no/nordicsemi/android/hts/data/HTSServiceData.kt +++ b/profile_hts/src/main/java/no/nordicsemi/android/hts/data/HTSServiceData.kt @@ -39,5 +39,6 @@ internal data class HTSServiceData( val data: HTSData = HTSData(), val batteryLevel: Int? = null, val connectionState: GattConnectionStateWithStatus? = null, - val temperatureUnit: TemperatureUnit = TemperatureUnit.CELSIUS + val temperatureUnit: TemperatureUnit = TemperatureUnit.CELSIUS, + val deviceName: String? = null ) diff --git a/profile_hts/src/main/java/no/nordicsemi/android/hts/repository/HTSRepository.kt b/profile_hts/src/main/java/no/nordicsemi/android/hts/repository/HTSRepository.kt index 93925047..73b336f0 100644 --- a/profile_hts/src/main/java/no/nordicsemi/android/hts/repository/HTSRepository.kt +++ b/profile_hts/src/main/java/no/nordicsemi/android/hts/repository/HTSRepository.kt @@ -88,6 +88,7 @@ class HTSRepository @Inject constructor( private fun shouldClean() = !isOnScreen && !isServiceRunning fun launch(device: ServerDevice) { + _data.value = _data.value.copy(deviceName = device.name) serviceManager.startService(HTSService::class.java, device) } 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 1360a79c..1c259915 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 @@ -31,7 +31,6 @@ package no.nordicsemi.android.hts.view -import android.util.Log import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.padding import androidx.compose.foundation.rememberScrollState @@ -56,14 +55,13 @@ import no.nordicsemi.android.ui.view.ProfileAppBar fun HTSScreen() { val viewModel: HTSViewModel = hiltViewModel() val state = viewModel.state.collectAsState().value - val deviceName = viewModel.deviceName.collectAsState().value val navigateUp = { viewModel.onEvent(NavigateUp) } Scaffold( topBar = { ProfileAppBar( - deviceName = deviceName, + deviceName = state.deviceName, connectionState = state.connectionState, title = R.string.hts_title, navigateUp = navigateUp, diff --git a/profile_hts/src/main/java/no/nordicsemi/android/hts/viewmodel/HTSViewModel.kt b/profile_hts/src/main/java/no/nordicsemi/android/hts/viewmodel/HTSViewModel.kt index 64d4abb1..c7d64d71 100644 --- a/profile_hts/src/main/java/no/nordicsemi/android/hts/viewmodel/HTSViewModel.kt +++ b/profile_hts/src/main/java/no/nordicsemi/android/hts/viewmodel/HTSViewModel.kt @@ -35,8 +35,6 @@ import android.os.ParcelUuid import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import dagger.hilt.android.lifecycle.HiltViewModel -import kotlinx.coroutines.flow.MutableStateFlow -import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.firstOrNull import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach @@ -67,9 +65,6 @@ internal class HTSViewModel @Inject constructor( val state = repository.data - private val _deviceName = MutableStateFlow(null) - val deviceName = _deviceName.asStateFlow() - init { repository.setOnScreen(true) @@ -102,7 +97,6 @@ internal class HTSViewModel @Inject constructor( } private fun onDeviceSelected(device: ServerDevice) { - _deviceName.value = device.name repository.launch(device) } diff --git a/profile_prx/src/main/java/no/nordicsemi/android/prx/data/PRXServiceData.kt b/profile_prx/src/main/java/no/nordicsemi/android/prx/data/PRXServiceData.kt index 16edefff..5d20f4b2 100644 --- a/profile_prx/src/main/java/no/nordicsemi/android/prx/data/PRXServiceData.kt +++ b/profile_prx/src/main/java/no/nordicsemi/android/prx/data/PRXServiceData.kt @@ -10,7 +10,8 @@ data class PRXServiceData( val batteryLevel: Int? = null, val connectionState: GattConnectionStateWithStatus? = null, val connectionStatus: BleGattConnectionStatus? = null, - val isRemoteAlarm: Boolean = false + val isRemoteAlarm: Boolean = false, + val deviceName: String? = null ) { val isLinkLossDisconnected = connectionStatus?.isLinkLoss ?: false diff --git a/profile_prx/src/main/java/no/nordicsemi/android/prx/repository/PRXRepository.kt b/profile_prx/src/main/java/no/nordicsemi/android/prx/repository/PRXRepository.kt index d0eab65b..748f8c57 100644 --- a/profile_prx/src/main/java/no/nordicsemi/android/prx/repository/PRXRepository.kt +++ b/profile_prx/src/main/java/no/nordicsemi/android/prx/repository/PRXRepository.kt @@ -89,6 +89,7 @@ class PRXRepository @Inject internal constructor( fun launch(device: ServerDevice) { + _data.value = _data.value.copy(deviceName = device.name) serviceManager.startService(PRXService::class.java, device) } 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 68fc6579..aaa1faa7 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 @@ -55,14 +55,13 @@ import no.nordicsemi.android.ui.view.ProfileAppBar fun PRXScreen() { val viewModel: PRXViewModel = hiltViewModel() val state = viewModel.state.collectAsState().value - val deviceName = viewModel.deviceName.collectAsState().value val navigateUp = { viewModel.onEvent(NavigateUpEvent) } Scaffold( topBar = { ProfileAppBar( - deviceName = deviceName, + deviceName = state.deviceName, connectionState = state.connectionState, title = R.string.prx_title, navigateUp = navigateUp, diff --git a/profile_prx/src/main/java/no/nordicsemi/android/prx/viewmodel/PRXViewModel.kt b/profile_prx/src/main/java/no/nordicsemi/android/prx/viewmodel/PRXViewModel.kt index 85fdf104..3d88ffb3 100644 --- a/profile_prx/src/main/java/no/nordicsemi/android/prx/viewmodel/PRXViewModel.kt +++ b/profile_prx/src/main/java/no/nordicsemi/android/prx/viewmodel/PRXViewModel.kt @@ -35,8 +35,6 @@ import android.os.ParcelUuid import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import dagger.hilt.android.lifecycle.HiltViewModel -import kotlinx.coroutines.flow.MutableStateFlow -import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.firstOrNull import kotlinx.coroutines.flow.launchIn @@ -73,9 +71,6 @@ internal class PRXViewModel @Inject constructor( val state = repository.data - private val _deviceName = MutableStateFlow(null) - val deviceName = _deviceName.asStateFlow() - init { repository.setOnScreen(true) diff --git a/profile_rscs/src/main/java/no/nordicsemi/android/rscs/data/RSCSServiceData.kt b/profile_rscs/src/main/java/no/nordicsemi/android/rscs/data/RSCSServiceData.kt index 4d422e49..5ac52c91 100644 --- a/profile_rscs/src/main/java/no/nordicsemi/android/rscs/data/RSCSServiceData.kt +++ b/profile_rscs/src/main/java/no/nordicsemi/android/rscs/data/RSCSServiceData.kt @@ -40,7 +40,8 @@ import no.nordicsemi.android.rscs.R internal data class RSCSServiceData( val data: RSCSData = RSCSData(), val batteryLevel: Int? = null, - val connectionState: GattConnectionStateWithStatus? = null + val connectionState: GattConnectionStateWithStatus? = null, + val deviceName: String? = null ) { @Composable fun displayActivity(): String { diff --git a/profile_rscs/src/main/java/no/nordicsemi/android/rscs/repository/RSCSRepository.kt b/profile_rscs/src/main/java/no/nordicsemi/android/rscs/repository/RSCSRepository.kt index 6f6fdbc2..ada36280 100644 --- a/profile_rscs/src/main/java/no/nordicsemi/android/rscs/repository/RSCSRepository.kt +++ b/profile_rscs/src/main/java/no/nordicsemi/android/rscs/repository/RSCSRepository.kt @@ -87,6 +87,7 @@ class RSCSRepository @Inject constructor( private fun shouldClean() = !isOnScreen && !isServiceRunning fun launch(device: ServerDevice) { + _data.value = _data.value.copy(deviceName = device.name) serviceManager.startService(RSCSService::class.java, device) } 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 e0c73433..4a5bb612 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 @@ -55,14 +55,13 @@ import no.nordicsemi.android.ui.view.ProfileAppBar fun RSCSScreen() { val viewModel: RSCSViewModel = hiltViewModel() val state = viewModel.state.collectAsState().value - val deviceName = viewModel.deviceName.collectAsState().value val navigateUp = { viewModel.onEvent(NavigateUpEvent) } Scaffold( topBar = { ProfileAppBar( - deviceName = deviceName, + deviceName = state.deviceName, connectionState = state.connectionState, title = R.string.rscs_title, navigateUp = navigateUp, diff --git a/profile_rscs/src/main/java/no/nordicsemi/android/rscs/viewmodel/RSCSViewModel.kt b/profile_rscs/src/main/java/no/nordicsemi/android/rscs/viewmodel/RSCSViewModel.kt index 46b6e379..88cb6543 100644 --- a/profile_rscs/src/main/java/no/nordicsemi/android/rscs/viewmodel/RSCSViewModel.kt +++ b/profile_rscs/src/main/java/no/nordicsemi/android/rscs/viewmodel/RSCSViewModel.kt @@ -35,8 +35,6 @@ import android.os.ParcelUuid import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import dagger.hilt.android.lifecycle.HiltViewModel -import kotlinx.coroutines.flow.MutableStateFlow -import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.firstOrNull import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach @@ -66,10 +64,6 @@ internal class RSCSViewModel @Inject constructor( val state = repository.data - private val _deviceName = MutableStateFlow(null) - val deviceName = _deviceName.asStateFlow() - - init { viewModelScope.launch { if (repository.isRunning.firstOrNull() == false) { @@ -100,7 +94,6 @@ internal class RSCSViewModel @Inject constructor( } private fun onDeviceSelected(device: ServerDevice) { - _deviceName.value = device.name repository.launch(device) } 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 33f120c3..3896801f 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 @@ -36,7 +36,8 @@ import no.nordicsemi.android.kotlin.ble.core.data.GattConnectionStateWithStatus internal data class UARTServiceData( val messages: List = emptyList(), val connectionState: GattConnectionStateWithStatus? = null, - val batteryLevel: Int? = null + val batteryLevel: Int? = null, + val deviceName: String? = null ) { val displayMessages = messages diff --git a/profile_uart/src/main/java/no/nordicsemi/android/uart/repository/UARTRepository.kt b/profile_uart/src/main/java/no/nordicsemi/android/uart/repository/UARTRepository.kt index 979d9603..fda3ef5c 100644 --- a/profile_uart/src/main/java/no/nordicsemi/android/uart/repository/UARTRepository.kt +++ b/profile_uart/src/main/java/no/nordicsemi/android/uart/repository/UARTRepository.kt @@ -95,6 +95,7 @@ class UARTRepository @Inject internal constructor( private fun shouldClean() = !isOnScreen && !isServiceRunning fun launch(device: ServerDevice) { + _data.value = _data.value.copy(deviceName = device.name) serviceManager.startService(UARTService::class.java, device) } 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 33fb4c2a..7f426b20 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 @@ -68,7 +68,7 @@ fun UARTScreen() { Scaffold( topBar = { ProfileAppBar( - deviceName = state.deviceName, + deviceName = state.uartManagerState.deviceName, connectionState = state.uartManagerState.connectionState, title = R.string.uart_title, navigateUp = navigateUp, diff --git a/profile_uart/src/main/java/no/nordicsemi/android/uart/view/UARTState.kt b/profile_uart/src/main/java/no/nordicsemi/android/uart/view/UARTState.kt index 7e7f7631..b3f1cc70 100644 --- a/profile_uart/src/main/java/no/nordicsemi/android/uart/view/UARTState.kt +++ b/profile_uart/src/main/java/no/nordicsemi/android/uart/view/UARTState.kt @@ -41,8 +41,7 @@ internal data class UARTViewState( val isConfigurationEdited: Boolean = false, val configurations: List = emptyList(), val uartManagerState: UARTServiceData = UARTServiceData(), - val isInputVisible: Boolean = true, - val deviceName: String? = null + val isInputVisible: Boolean = true ) { val showEditDialog: Boolean = editedPosition != null diff --git a/profile_uart/src/main/java/no/nordicsemi/android/uart/viewmodel/UARTViewModel.kt b/profile_uart/src/main/java/no/nordicsemi/android/uart/viewmodel/UARTViewModel.kt index c29a1a74..17cd4cff 100644 --- a/profile_uart/src/main/java/no/nordicsemi/android/uart/viewmodel/UARTViewModel.kt +++ b/profile_uart/src/main/java/no/nordicsemi/android/uart/viewmodel/UARTViewModel.kt @@ -134,7 +134,6 @@ internal class UARTViewModel @Inject constructor( } private fun onDeviceSelected(device: ServerDevice) { - _state.value = _state.value.copy(deviceName = device.name) repository.launch(device) }