diff --git a/app/src/main/java/no/nordicsemi/android/nrftoolbox/MainActivity.kt b/app/src/main/java/no/nordicsemi/android/nrftoolbox/MainActivity.kt index e5a8682b..2f0118ee 100644 --- a/app/src/main/java/no/nordicsemi/android/nrftoolbox/MainActivity.kt +++ b/app/src/main/java/no/nordicsemi/android/nrftoolbox/MainActivity.kt @@ -33,8 +33,12 @@ package no.nordicsemi.android.nrftoolbox import android.os.Bundle import androidx.activity.compose.setContent +import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Scaffold import androidx.compose.material3.Surface import androidx.compose.ui.Modifier import dagger.hilt.android.AndroidEntryPoint diff --git a/app/src/main/java/no/nordicsemi/android/nrftoolbox/view/HomeView.kt b/app/src/main/java/no/nordicsemi/android/nrftoolbox/view/HomeView.kt index dd7f4a33..709ace76 100644 --- a/app/src/main/java/no/nordicsemi/android/nrftoolbox/view/HomeView.kt +++ b/app/src/main/java/no/nordicsemi/android/nrftoolbox/view/HomeView.kt @@ -34,7 +34,9 @@ package no.nordicsemi.android.nrftoolbox.view import androidx.compose.foundation.layout.* import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll +import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Scaffold import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState @@ -66,16 +68,20 @@ private const val DFU_LINK = "https://play.google.com/store/apps/details?id=no.n private const val LOGGER_PACKAGE_NAME = "no.nordicsemi.android.log" +@OptIn(ExperimentalMaterial3Api::class) @Composable fun HomeScreen() { val viewModel: HomeViewModel = hiltViewModel() val state = viewModel.state.collectAsState().value - Column { - TitleAppBar(stringResource(id = R.string.app_name)) - + Scaffold( + topBar = { + TitleAppBar(stringResource(id = R.string.app_name)) + } + ) { Column( modifier = Modifier + .padding(it) .fillMaxSize() .verticalScroll(rememberScrollState()) ) { @@ -116,42 +122,72 @@ fun HomeScreen() { Spacer(modifier = Modifier.height(16.dp)) - FeatureButton(R.drawable.ic_csc, R.string.csc_module, R.string.csc_module_full, state.isCSCModuleRunning) { + FeatureButton( + R.drawable.ic_csc, + R.string.csc_module, + R.string.csc_module_full, + state.isCSCModuleRunning + ) { viewModel.openProfile(CSCDestinationId) viewModel.logEvent(ProfileOpenEvent(Profile.CSC)) } Spacer(modifier = Modifier.height(16.dp)) - FeatureButton(R.drawable.ic_hrs, R.string.hrs_module, R.string.hrs_module_full, state.isHRSModuleRunning) { + FeatureButton( + R.drawable.ic_hrs, + R.string.hrs_module, + R.string.hrs_module_full, + state.isHRSModuleRunning + ) { viewModel.openProfile(HRSDestinationId) viewModel.logEvent(ProfileOpenEvent(Profile.HRS)) } Spacer(modifier = Modifier.height(16.dp)) - FeatureButton(R.drawable.ic_hts, R.string.hts_module, R.string.hts_module_full, state.isHTSModuleRunning) { + FeatureButton( + R.drawable.ic_hts, + R.string.hts_module, + R.string.hts_module_full, + state.isHTSModuleRunning + ) { viewModel.openProfile(HTSDestinationId) viewModel.logEvent(ProfileOpenEvent(Profile.HTS)) } Spacer(modifier = Modifier.height(16.dp)) - FeatureButton(R.drawable.ic_rscs, R.string.rscs_module, R.string.rscs_module_full, state.isRSCSModuleRunning) { + FeatureButton( + R.drawable.ic_rscs, + R.string.rscs_module, + R.string.rscs_module_full, + state.isRSCSModuleRunning + ) { viewModel.openProfile(RSCSDestinationId) viewModel.logEvent(ProfileOpenEvent(Profile.RSCS)) } Spacer(modifier = Modifier.height(16.dp)) - FeatureButton(R.drawable.ic_cgm, R.string.cgm_module, R.string.cgm_module_full, state.isCGMModuleRunning) { + FeatureButton( + R.drawable.ic_cgm, + R.string.cgm_module, + R.string.cgm_module_full, + state.isCGMModuleRunning + ) { viewModel.openProfile(CGMSDestinationId) viewModel.logEvent(ProfileOpenEvent(Profile.CGMS)) } Spacer(modifier = Modifier.height(16.dp)) - FeatureButton(R.drawable.ic_prx, R.string.prx_module, R.string.prx_module_full, state.isPRXModuleRunning) { + FeatureButton( + R.drawable.ic_prx, + R.string.prx_module, + R.string.prx_module_full, + state.isPRXModuleRunning + ) { viewModel.openProfile(PRXDestinationId) viewModel.logEvent(ProfileOpenEvent(Profile.PRX)) } @@ -166,7 +202,12 @@ fun HomeScreen() { Spacer(modifier = Modifier.height(16.dp)) - FeatureButton(R.drawable.ic_uart, R.string.uart_module, R.string.uart_module_full, state.isUARTModuleRunning) { + FeatureButton( + R.drawable.ic_uart, + R.string.uart_module, + R.string.uart_module_full, + state.isUARTModuleRunning + ) { viewModel.openProfile(UARTDestinationId) viewModel.logEvent(ProfileOpenEvent(Profile.UART)) } @@ -197,7 +238,13 @@ fun HomeScreen() { R.string.logger_module_info } ?: R.string.dfu_module_install - FeatureButton(R.drawable.ic_logger, R.string.logger_module, R.string.logger_module_full, null, loggerDescription) { + FeatureButton( + R.drawable.ic_logger, + R.string.logger_module, + R.string.logger_module_full, + null, + loggerDescription + ) { viewModel.openLogger() viewModel.logEvent(ProfileOpenEvent(Link.LOGGER)) } diff --git a/lib_ui/src/main/java/no/nordicsemi/android/ui/view/BatteryLevelView.kt b/lib_ui/src/main/java/no/nordicsemi/android/ui/view/BatteryLevelView.kt index e1a8dc76..935095f5 100644 --- a/lib_ui/src/main/java/no/nordicsemi/android/ui/view/BatteryLevelView.kt +++ b/lib_ui/src/main/java/no/nordicsemi/android/ui/view/BatteryLevelView.kt @@ -31,14 +31,13 @@ package no.nordicsemi.android.ui.view -import androidx.compose.material3.OutlinedCard import androidx.compose.runtime.Composable import androidx.compose.ui.res.stringResource import no.nordicsemi.android.ui.R @Composable fun BatteryLevelView(batteryLevel: Int) { - OutlinedCard { + ScreenSection { KeyValueField( stringResource(id = R.string.field_battery), "$batteryLevel%" diff --git a/lib_ui/src/main/java/no/nordicsemi/android/ui/view/ScreenSection.kt b/lib_ui/src/main/java/no/nordicsemi/android/ui/view/ScreenSection.kt new file mode 100644 index 00000000..6dc8cb9a --- /dev/null +++ b/lib_ui/src/main/java/no/nordicsemi/android/ui/view/ScreenSection.kt @@ -0,0 +1,17 @@ +package no.nordicsemi.android.ui.view + +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.OutlinedCard +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp + +@Composable +fun ScreenSection(content: @Composable () -> Unit) { + OutlinedCard { + Box(modifier = Modifier.padding(16.dp)) { + content() + } + } +} 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 21020d64..6e84bf96 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 @@ -72,8 +72,8 @@ fun BPSScreen() { NoDeviceState -> DeviceConnectingView() is WorkingState -> when (state.result) { is IdleResult, - is ConnectingResult -> DeviceConnectingView { viewModel.onEvent(DisconnectEvent) } - is ConnectedResult -> DeviceConnectingView { viewModel.onEvent(DisconnectEvent) } + is ConnectingResult -> DeviceConnectingView { NavigateUpButton(navigateUp) } + is ConnectedResult -> DeviceConnectingView { NavigateUpButton(navigateUp) } is DisconnectedResult -> DeviceDisconnectedView(Reason.USER) { NavigateUpButton(navigateUp) } is LinkLossResult -> DeviceDisconnectedView(Reason.LINK_LOSS) { NavigateUpButton(navigateUp) } is MissingServiceResult -> DeviceDisconnectedView(Reason.MISSING_SERVICE) { NavigateUpButton(navigateUp) } diff --git a/profile_bps/src/main/java/no/nordicsemi/android/bps/view/BPSSensorsReadingView.kt b/profile_bps/src/main/java/no/nordicsemi/android/bps/view/BPSSensorsReadingView.kt index 939ba192..e8789407 100644 --- a/profile_bps/src/main/java/no/nordicsemi/android/bps/view/BPSSensorsReadingView.kt +++ b/profile_bps/src/main/java/no/nordicsemi/android/bps/view/BPSSensorsReadingView.kt @@ -34,7 +34,6 @@ package no.nordicsemi.android.bps.view import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.height -import androidx.compose.material3.OutlinedCard import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource @@ -44,11 +43,12 @@ import no.nordicsemi.android.bps.R import no.nordicsemi.android.bps.data.BPSData import no.nordicsemi.android.ui.view.BatteryLevelView import no.nordicsemi.android.ui.view.KeyValueField +import no.nordicsemi.android.ui.view.ScreenSection import no.nordicsemi.android.ui.view.SectionTitle @Composable internal fun BPSSensorsReadingView(state: BPSData) { - OutlinedCard { + ScreenSection { Column { SectionTitle(resId = R.drawable.ic_records, title = stringResource(id = R.string.bps_records)) Spacer(modifier = Modifier.height(16.dp)) diff --git a/profile_cgms/src/main/java/no/nordicsemi/android/cgms/view/CGMContentView.kt b/profile_cgms/src/main/java/no/nordicsemi/android/cgms/view/CGMContentView.kt index f484d241..472e1ac3 100644 --- a/profile_cgms/src/main/java/no/nordicsemi/android/cgms/view/CGMContentView.kt +++ b/profile_cgms/src/main/java/no/nordicsemi/android/cgms/view/CGMContentView.kt @@ -31,14 +31,21 @@ package no.nordicsemi.android.cgms.view -import androidx.compose.foundation.layout.* +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Search import androidx.compose.material.icons.filled.Settings import androidx.compose.material3.Button import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.OutlinedCard import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment @@ -51,6 +58,7 @@ import no.nordicsemi.android.cgms.data.CGMRecord import no.nordicsemi.android.cgms.data.CGMServiceCommand import no.nordicsemi.android.cgms.data.RequestStatus import no.nordicsemi.android.ui.view.BatteryLevelView +import no.nordicsemi.android.ui.view.ScreenSection import no.nordicsemi.android.ui.view.SectionTitle @Composable @@ -87,7 +95,7 @@ internal fun CGMContentView(state: CGMData, onEvent: (CGMViewEvent) -> Unit) { @Composable private fun SettingsView(state: CGMData, onEvent: (CGMViewEvent) -> Unit) { - OutlinedCard { + ScreenSection { SectionTitle(icon = Icons.Default.Settings, title = "Request items") Spacer(modifier = Modifier.height(16.dp)) @@ -115,7 +123,7 @@ private fun SettingsView(state: CGMData, onEvent: (CGMViewEvent) -> Unit) { @Composable private fun RecordsView(state: CGMData) { - OutlinedCard { + ScreenSection { if (state.records.isEmpty()) { RecordsViewWithoutData() } else { 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 aebd9d1e..25c408e0 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 @@ -72,8 +72,8 @@ fun CGMScreen() { NoDeviceState -> DeviceConnectingView() is WorkingState -> when (state.result) { is IdleResult, - is ConnectingResult -> DeviceConnectingView { viewModel.onEvent(DisconnectEvent) } - is ConnectedResult -> DeviceConnectingView { viewModel.onEvent(DisconnectEvent) } + is ConnectingResult -> DeviceConnectingView { NavigateUpButton(navigateUp) } + is ConnectedResult -> DeviceConnectingView { NavigateUpButton(navigateUp) } is DisconnectedResult -> DeviceDisconnectedView(Reason.USER) { NavigateUpButton(navigateUp) } is LinkLossResult -> DeviceDisconnectedView(Reason.LINK_LOSS) { NavigateUpButton(navigateUp) } is MissingServiceResult -> DeviceDisconnectedView(Reason.MISSING_SERVICE) { NavigateUpButton(navigateUp) } diff --git a/profile_csc/src/main/java/no/nordicsemi/android/csc/view/CSCContentView.kt b/profile_csc/src/main/java/no/nordicsemi/android/csc/view/CSCContentView.kt index 9640e83e..ed2fe990 100644 --- a/profile_csc/src/main/java/no/nordicsemi/android/csc/view/CSCContentView.kt +++ b/profile_csc/src/main/java/no/nordicsemi/android/csc/view/CSCContentView.kt @@ -53,6 +53,7 @@ import no.nordicsemi.android.common.theme.view.RadioButtonGroup import no.nordicsemi.android.csc.R import no.nordicsemi.android.csc.data.CSCData import no.nordicsemi.android.csc.data.WheelSize +import no.nordicsemi.android.ui.view.ScreenSection import no.nordicsemi.android.ui.view.SectionTitle import no.nordicsemi.android.ui.view.dialog.FlowCanceled import no.nordicsemi.android.ui.view.dialog.ItemSelectedResult @@ -104,7 +105,7 @@ private fun SettingsSection( onEvent: (CSCViewEvent) -> Unit, onWheelButtonClick: () -> Unit, ) { - OutlinedCard { + ScreenSection { Column( horizontalAlignment = Alignment.CenterHorizontally ) { 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 7cec7bee..be06cd5d 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 @@ -72,8 +72,8 @@ fun CSCScreen() { NoDeviceState -> DeviceConnectingView() is WorkingState -> when (state.cscManagerState.result) { is IdleResult, - is ConnectingResult -> DeviceConnectingView { viewModel.onEvent(OnDisconnectButtonClick) } - is ConnectedResult -> DeviceConnectingView { viewModel.onEvent(OnDisconnectButtonClick) } + is ConnectingResult -> DeviceConnectingView { NavigateUpButton(navigateUp) } + is ConnectedResult -> DeviceConnectingView { NavigateUpButton(navigateUp) } is DisconnectedResult -> DeviceDisconnectedView(Reason.USER) { NavigateUpButton(navigateUp) } is LinkLossResult -> DeviceDisconnectedView(Reason.LINK_LOSS) { NavigateUpButton(navigateUp) } is MissingServiceResult -> DeviceDisconnectedView(Reason.MISSING_SERVICE) { NavigateUpButton(navigateUp) } diff --git a/profile_csc/src/main/java/no/nordicsemi/android/csc/view/SensorsReadingView.kt b/profile_csc/src/main/java/no/nordicsemi/android/csc/view/SensorsReadingView.kt index 78c90f35..8975b0b4 100644 --- a/profile_csc/src/main/java/no/nordicsemi/android/csc/view/SensorsReadingView.kt +++ b/profile_csc/src/main/java/no/nordicsemi/android/csc/view/SensorsReadingView.kt @@ -44,11 +44,12 @@ import no.nordicsemi.android.csc.R import no.nordicsemi.android.csc.data.CSCData import no.nordicsemi.android.ui.view.BatteryLevelView import no.nordicsemi.android.ui.view.KeyValueField +import no.nordicsemi.android.ui.view.ScreenSection import no.nordicsemi.android.ui.view.SectionTitle @Composable internal fun SensorsReadingView(state: CSCData, speedUnit: SpeedUnit) { - OutlinedCard { + ScreenSection { SectionTitle(resId = R.drawable.ic_records, title = "Records") Spacer(modifier = Modifier.height(16.dp)) diff --git a/profile_gls/src/main/java/no/nordicsemi/android/gls/details/view/GLSDetailsContentView.kt b/profile_gls/src/main/java/no/nordicsemi/android/gls/details/view/GLSDetailsContentView.kt index 01e3ca04..fccc7909 100644 --- a/profile_gls/src/main/java/no/nordicsemi/android/gls/details/view/GLSDetailsContentView.kt +++ b/profile_gls/src/main/java/no/nordicsemi/android/gls/details/view/GLSDetailsContentView.kt @@ -31,12 +31,17 @@ package no.nordicsemi.android.gls.details.view -import androidx.compose.foundation.layout.* +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.material3.Divider import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.OutlinedCard import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment @@ -46,12 +51,13 @@ import androidx.compose.ui.unit.dp import no.nordicsemi.android.gls.R import no.nordicsemi.android.gls.data.GLSRecord import no.nordicsemi.android.gls.main.view.toDisplayString +import no.nordicsemi.android.ui.view.ScreenSection @Composable internal fun GLSDetailsContentView(record: GLSRecord) { Column(modifier = Modifier.verticalScroll(rememberScrollState())) { Column(modifier = Modifier.padding(16.dp)) { - OutlinedCard { + ScreenSection { Field( stringResource(id = R.string.gls_details_sequence_number), record.sequenceNumber.toString() diff --git a/profile_gls/src/main/java/no/nordicsemi/android/gls/main/view/GLSContentView.kt b/profile_gls/src/main/java/no/nordicsemi/android/gls/main/view/GLSContentView.kt index 64bf4fda..08c2cac8 100644 --- a/profile_gls/src/main/java/no/nordicsemi/android/gls/main/view/GLSContentView.kt +++ b/profile_gls/src/main/java/no/nordicsemi/android/gls/main/view/GLSContentView.kt @@ -56,6 +56,7 @@ import no.nordicsemi.android.gls.data.RequestStatus import no.nordicsemi.android.gls.data.WorkingMode import no.nordicsemi.android.gls.main.viewmodel.GLSViewModel import no.nordicsemi.android.ui.view.BatteryLevelView +import no.nordicsemi.android.ui.view.ScreenSection import no.nordicsemi.android.ui.view.SectionTitle @Composable @@ -94,7 +95,7 @@ internal fun GLSContentView(state: GLSData, onEvent: (GLSScreenViewEvent) -> Uni @Composable private fun SettingsView(state: GLSData, onEvent: (GLSScreenViewEvent) -> Unit) { - OutlinedCard { + ScreenSection { SectionTitle(icon = Icons.Default.Settings, title = "Request items") Spacer(modifier = Modifier.height(16.dp)) @@ -118,7 +119,7 @@ private fun SettingsView(state: GLSData, onEvent: (GLSScreenViewEvent) -> Unit) @Composable private fun RecordsView(state: GLSData) { - OutlinedCard { + ScreenSection { if (state.records.isEmpty()) { RecordsViewWithoutData() } else { 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 a9a3f9e7..27406978 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 @@ -63,7 +63,9 @@ fun GLSScreen() { val state = viewModel.state.collectAsState().value Column { - val navigateUp = { viewModel.onEvent(DisconnectEvent) } + val navigateUp = { + viewModel.onEvent(DisconnectEvent) + } AppBar(state, navigateUp, viewModel) @@ -72,8 +74,8 @@ fun GLSScreen() { NoDeviceState -> DeviceConnectingView() is WorkingState -> when (state.result) { is IdleResult, - is ConnectingResult -> DeviceConnectingView { viewModel.onEvent(DisconnectEvent) } - is ConnectedResult -> DeviceConnectingView { viewModel.onEvent(DisconnectEvent) } + is ConnectingResult -> DeviceConnectingView { NavigateUpButton(navigateUp) } + is ConnectedResult -> DeviceConnectingView { NavigateUpButton(navigateUp) } is DisconnectedResult -> DeviceDisconnectedView(Reason.USER) { NavigateUpButton(navigateUp) } is LinkLossResult -> DeviceDisconnectedView(Reason.LINK_LOSS) { NavigateUpButton(navigateUp) } is MissingServiceResult -> DeviceDisconnectedView(Reason.MISSING_SERVICE) { NavigateUpButton(navigateUp) } diff --git a/profile_hrs/src/main/java/no/nordicsemi/android/hrs/view/HRSContentView.kt b/profile_hrs/src/main/java/no/nordicsemi/android/hrs/view/HRSContentView.kt index 6948aa10..5e79bea8 100644 --- a/profile_hrs/src/main/java/no/nordicsemi/android/hrs/view/HRSContentView.kt +++ b/profile_hrs/src/main/java/no/nordicsemi/android/hrs/view/HRSContentView.kt @@ -50,6 +50,7 @@ import androidx.compose.ui.unit.dp import no.nordicsemi.android.hrs.R import no.nordicsemi.android.hrs.data.HRSData import no.nordicsemi.android.ui.view.BatteryLevelView +import no.nordicsemi.android.ui.view.ScreenSection import no.nordicsemi.android.ui.view.SectionTitle @Composable @@ -59,7 +60,7 @@ internal fun HRSContentView(state: HRSData, zoomIn: Boolean, onEvent: (HRSScreen modifier = Modifier.padding(16.dp) ) { - OutlinedCard { + ScreenSection { SectionTitle( resId = R.drawable.ic_chart_line, title = stringResource(id = R.string.hrs_section_data), 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 328a2d41..1477d1de 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 @@ -72,8 +72,8 @@ fun HRSScreen() { NoDeviceState -> DeviceConnectingView() is WorkingState -> when (state.result) { is IdleResult, - is ConnectingResult -> DeviceConnectingView { viewModel.onEvent(DisconnectEvent) } - is ConnectedResult -> DeviceConnectingView { viewModel.onEvent(DisconnectEvent) } + is ConnectingResult -> DeviceConnectingView { NavigateUpButton(navigateUp) } + is ConnectedResult -> DeviceConnectingView { NavigateUpButton(navigateUp) } is DisconnectedResult -> DeviceDisconnectedView(Reason.USER) { NavigateUpButton(navigateUp) } is LinkLossResult -> DeviceDisconnectedView(Reason.LINK_LOSS) { NavigateUpButton(navigateUp) } is MissingServiceResult -> DeviceDisconnectedView(Reason.MISSING_SERVICE) { NavigateUpButton(navigateUp) } diff --git a/profile_hts/src/main/java/no/nordicsemi/android/hts/view/HTSContentView.kt b/profile_hts/src/main/java/no/nordicsemi/android/hts/view/HTSContentView.kt index e4fa1e94..1f24e742 100644 --- a/profile_hts/src/main/java/no/nordicsemi/android/hts/view/HTSContentView.kt +++ b/profile_hts/src/main/java/no/nordicsemi/android/hts/view/HTSContentView.kt @@ -46,6 +46,7 @@ import no.nordicsemi.android.hts.R import no.nordicsemi.android.hts.data.HTSData import no.nordicsemi.android.ui.view.BatteryLevelView import no.nordicsemi.android.ui.view.KeyValueField +import no.nordicsemi.android.ui.view.ScreenSection import no.nordicsemi.android.ui.view.SectionTitle @Composable @@ -56,7 +57,7 @@ internal fun HTSContentView(state: HTSData, temperatureUnit: TemperatureUnit, on .padding(16.dp), horizontalAlignment = Alignment.CenterHorizontally ) { - OutlinedCard { + ScreenSection { SectionTitle(resId = R.drawable.ic_thermometer, title = "Settings") Spacer(modifier = Modifier.height(16.dp)) @@ -68,7 +69,7 @@ internal fun HTSContentView(state: HTSData, temperatureUnit: TemperatureUnit, on Spacer(modifier = Modifier.height(16.dp)) - OutlinedCard { + ScreenSection { SectionTitle(resId = R.drawable.ic_records, title = stringResource(id = R.string.hts_records_section)) Spacer(modifier = Modifier.height(16.dp)) 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 ae7ac65d..fa813d44 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 @@ -72,8 +72,8 @@ fun HTSScreen() { NoDeviceState -> DeviceConnectingView() is WorkingState -> when (state.htsManagerState.result) { is IdleResult, - is ConnectingResult -> DeviceConnectingView { viewModel.onEvent(DisconnectEvent) } - is ConnectedResult -> DeviceConnectingView { viewModel.onEvent(DisconnectEvent) } + is ConnectingResult -> DeviceConnectingView { NavigateUpButton(navigateUp) } + is ConnectedResult -> DeviceConnectingView { NavigateUpButton(navigateUp) } is DisconnectedResult -> DeviceDisconnectedView(Reason.USER) { NavigateUpButton(navigateUp) } is LinkLossResult -> DeviceDisconnectedView(Reason.LINK_LOSS) { NavigateUpButton(navigateUp) } is MissingServiceResult -> DeviceDisconnectedView(Reason.MISSING_SERVICE) { NavigateUpButton(navigateUp) } diff --git a/profile_prx/src/main/java/no/nordicsemi/android/prx/view/PRXContentView.kt b/profile_prx/src/main/java/no/nordicsemi/android/prx/view/PRXContentView.kt index 6b99dbd2..43aa7e13 100644 --- a/profile_prx/src/main/java/no/nordicsemi/android/prx/view/PRXContentView.kt +++ b/profile_prx/src/main/java/no/nordicsemi/android/prx/view/PRXContentView.kt @@ -49,6 +49,7 @@ import no.nordicsemi.android.prx.R import no.nordicsemi.android.prx.data.PRXData import no.nordicsemi.android.ui.view.BatteryLevelView import no.nordicsemi.android.ui.view.KeyValueField +import no.nordicsemi.android.ui.view.ScreenSection import no.nordicsemi.android.ui.view.SectionTitle @Composable @@ -81,7 +82,7 @@ internal fun ContentView(state: PRXData, onEvent: (PRXScreenViewEvent) -> Unit) @Composable private fun SettingsSection(state: PRXData, onEvent: (PRXScreenViewEvent) -> Unit) { - OutlinedCard { + ScreenSection { SectionTitle(icon = Icons.Default.Settings, title = stringResource(R.string.prx_settings)) Spacer(modifier = Modifier.height(16.dp)) @@ -114,7 +115,7 @@ private fun TurnAlarmOffButton(onEvent: (PRXScreenViewEvent) -> Unit) { @Composable private fun RecordsSection(state: PRXData) { - OutlinedCard { + ScreenSection { SectionTitle(resId = R.drawable.ic_records, title = stringResource(id = R.string.prx_records)) Spacer(modifier = Modifier.height(16.dp)) diff --git a/profile_prx/src/main/java/no/nordicsemi/android/prx/view/PRXLinkLossView.kt b/profile_prx/src/main/java/no/nordicsemi/android/prx/view/PRXLinkLossView.kt index 2545ed20..0e01ed36 100644 --- a/profile_prx/src/main/java/no/nordicsemi/android/prx/view/PRXLinkLossView.kt +++ b/profile_prx/src/main/java/no/nordicsemi/android/prx/view/PRXLinkLossView.kt @@ -48,6 +48,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import no.nordicsemi.android.prx.R +import no.nordicsemi.android.ui.view.ScreenSection @Composable fun DeviceOutOfRangeView(navigateUp: () -> Unit) { @@ -57,7 +58,7 @@ fun DeviceOutOfRangeView(navigateUp: () -> Unit) { .padding(16.dp), horizontalAlignment = Alignment.CenterHorizontally ) { - OutlinedCard { + ScreenSection { Icon( imageVector = Icons.Default.HighlightOff, contentDescription = null, 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 5a41267b..7ff0a1a3 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 @@ -73,8 +73,8 @@ fun PRXScreen() { NoDeviceState -> DeviceConnectingView() is WorkingState -> when (state.result) { is IdleResult, - is ConnectingResult -> DeviceConnectingView { viewModel.onEvent(DisconnectEvent) } - is ConnectedResult -> DeviceConnectingView { viewModel.onEvent(DisconnectEvent) } + is ConnectingResult -> DeviceConnectingView { NavigateUpButton(navigateUp) } + is ConnectedResult -> DeviceConnectingView { NavigateUpButton(navigateUp) } is DisconnectedResult -> DeviceDisconnectedView(Reason.USER) { NavigateUpButton(navigateUp) } is LinkLossResult -> DeviceDisconnectedView(Reason.LINK_LOSS) { NavigateUpButton(navigateUp) } is MissingServiceResult -> DeviceDisconnectedView(Reason.MISSING_SERVICE) { NavigateUpButton(navigateUp) } 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 c9681d4a..42e23235 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 @@ -72,8 +72,8 @@ fun RSCSScreen() { NoDeviceState -> DeviceConnectingView() is WorkingState -> when (state.result) { is IdleResult, - is ConnectingResult -> DeviceConnectingView { viewModel.onEvent(DisconnectEvent) } - is ConnectedResult -> DeviceConnectingView { viewModel.onEvent(DisconnectEvent) } + is ConnectingResult -> DeviceConnectingView { NavigateUpButton(navigateUp) } + is ConnectedResult -> DeviceConnectingView { NavigateUpButton(navigateUp) } is DisconnectedResult -> DeviceDisconnectedView(Reason.USER) { NavigateUpButton(navigateUp) } is LinkLossResult -> DeviceDisconnectedView(Reason.LINK_LOSS) { NavigateUpButton(navigateUp) } is MissingServiceResult -> DeviceDisconnectedView(Reason.MISSING_SERVICE) { NavigateUpButton(navigateUp) } diff --git a/profile_uart/src/main/java/no/nordicsemi/android/uart/view/InputSection.kt b/profile_uart/src/main/java/no/nordicsemi/android/uart/view/InputSection.kt index 7080ef97..eee8bf65 100644 --- a/profile_uart/src/main/java/no/nordicsemi/android/uart/view/InputSection.kt +++ b/profile_uart/src/main/java/no/nordicsemi/android/uart/view/InputSection.kt @@ -51,6 +51,7 @@ import no.nordicsemi.android.common.theme.view.RadioGroupViewEntity import no.nordicsemi.android.ui.view.SectionTitle import no.nordicsemi.android.uart.R import no.nordicsemi.android.uart.data.MacroEol +import no.nordicsemi.android.ui.view.ScreenSection import no.nordicsemi.android.utils.EMPTY @OptIn(ExperimentalMaterial3Api::class) @@ -105,7 +106,7 @@ internal fun EditInputSection(onEvent: (UARTViewEvent) -> Unit) { } val viewEntity = RadioGroupViewEntity(items) - OutlinedCard { + ScreenSection { Column( horizontalAlignment = Alignment.CenterHorizontally ) { diff --git a/profile_uart/src/main/java/no/nordicsemi/android/uart/view/MacroSection.kt b/profile_uart/src/main/java/no/nordicsemi/android/uart/view/MacroSection.kt index 5bd0a8cb..f2298112 100644 --- a/profile_uart/src/main/java/no/nordicsemi/android/uart/view/MacroSection.kt +++ b/profile_uart/src/main/java/no/nordicsemi/android/uart/view/MacroSection.kt @@ -48,6 +48,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import no.nordicsemi.android.ui.view.SectionTitle import no.nordicsemi.android.uart.R +import no.nordicsemi.android.ui.view.ScreenSection @Composable internal fun MacroSection(viewState: UARTViewState, onEvent: (UARTViewEvent) -> Unit) { @@ -73,7 +74,7 @@ internal fun MacroSection(viewState: UARTViewState, onEvent: (UARTViewEvent) -> .verticalScroll(rememberScrollState()) .padding(16.dp) ) { - OutlinedCard { + ScreenSection { Column( horizontalAlignment = Alignment.CenterHorizontally ) { 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 df1da97c..05242a62 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 @@ -76,8 +76,8 @@ fun UARTScreen() { NoDeviceState -> DeviceConnectingView() is WorkingState -> when (state.uartManagerState.result) { is IdleResult, - is ConnectingResult -> DeviceConnectingView { viewModel.onEvent(DisconnectEvent) } - is ConnectedResult -> DeviceConnectingView { viewModel.onEvent(DisconnectEvent) } + is ConnectingResult -> DeviceConnectingView { NavigateUpButton(navigateUp) } + is ConnectedResult -> DeviceConnectingView { NavigateUpButton(navigateUp) } is DisconnectedResult -> DeviceDisconnectedView(Reason.USER) { NavigateUpButton(navigateUp) } is LinkLossResult -> DeviceDisconnectedView(Reason.LINK_LOSS) { NavigateUpButton(navigateUp) } is MissingServiceResult -> DeviceDisconnectedView(Reason.MISSING_SERVICE) { NavigateUpButton(navigateUp) } diff --git a/settings.gradle.kts b/settings.gradle.kts index 35280628..55e8ae43 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -74,9 +74,9 @@ include(":lib_service") include(":lib_ui") include(":lib_utils") -//if (file('../Android-Common-Libraries').exists()) { -// includeBuild('../Android-Common-Libraries') -//} +if (file("../Android-Common-Libraries").exists()) { + includeBuild("../Android-Common-Libraries") +} // //if (file('../Android-BLE-Library').exists()) { // includeBuild('../Android-BLE-Library')