From c7b2cae6a3a15f5ff3f93fa531364614e9b3ddd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sylwester=20Zieli=C5=84ski?= Date: Fri, 6 May 2022 14:36:56 +0200 Subject: [PATCH] Modify UART screen --- .../android/nrftoolbox/MainActivity.kt | 2 - .../android/theme/view/TopAppBar.kt | 18 ++-- lib_theme/src/main/res/values/strings.xml | 1 + .../nordicsemi/android/bps/view/BPSScreen.kt | 2 +- .../nordicsemi/android/cgms/view/CGMScreen.kt | 2 +- .../nordicsemi/android/csc/view/CSCScreen.kt | 2 +- .../android/gls/main/view/GLSScreen.kt | 2 +- .../nordicsemi/android/hrs/view/HRSScreen.kt | 2 +- .../nordicsemi/android/hts/view/HTSScreen.kt | 2 +- .../nordicsemi/android/prx/view/PRXScreen.kt | 2 +- .../android/rscs/view/RSCSScreen.kt | 2 +- profile_uart/build.gradle | 2 +- .../android/uart/view/InputSection.kt | 41 +++---- .../android/uart/view/MacroSection.kt | 100 +++++++++--------- .../android/uart/view/SettingsScreen.kt | 9 -- .../android/uart/view/UARTContentView.kt | 19 +--- .../android/uart/view/UARTMacroView.kt | 2 +- .../android/uart/view/UARTScreen.kt | 36 ++++--- profile_uart/src/main/res/values/strings.xml | 3 + settings.gradle | 4 +- 20 files changed, 119 insertions(+), 134 deletions(-) delete mode 100644 profile_uart/src/main/java/no/nordicsemi/android/uart/view/SettingsScreen.kt 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 cbf1de78..26481f49 100644 --- a/app/src/main/java/no/nordicsemi/android/nrftoolbox/MainActivity.kt +++ b/app/src/main/java/no/nordicsemi/android/nrftoolbox/MainActivity.kt @@ -2,7 +2,6 @@ package no.nordicsemi.android.nrftoolbox import android.os.Bundle import androidx.activity.compose.setContent -import androidx.activity.viewModels import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface @@ -13,7 +12,6 @@ import no.nordicsemi.android.material.you.NordicActivity import no.nordicsemi.android.material.you.NordicTheme import no.nordicsemi.android.navigation.NavigationView import no.nordicsemi.android.nrftoolbox.repository.ActivitySignals -import no.nordicsemi.android.nrftoolbox.viewmodel.HomeViewModel import no.nordicsemi.ui.scanner.ScannerDestinations import javax.inject.Inject diff --git a/lib_theme/src/main/java/no/nordicsemi/android/theme/view/TopAppBar.kt b/lib_theme/src/main/java/no/nordicsemi/android/theme/view/TopAppBar.kt index 99c1b426..da58b3db 100644 --- a/lib_theme/src/main/java/no/nordicsemi/android/theme/view/TopAppBar.kt +++ b/lib_theme/src/main/java/no/nordicsemi/android/theme/view/TopAppBar.kt @@ -4,16 +4,9 @@ import androidx.compose.foundation.layout.size import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.ArrowBack import androidx.compose.material.icons.filled.Close -import androidx.compose.material3.Icon -import androidx.compose.material3.IconButton -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.SmallTopAppBar -import androidx.compose.material3.Text -import androidx.compose.material3.TopAppBarDefaults +import androidx.compose.material3.* import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.res.colorResource import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource @@ -80,7 +73,7 @@ fun BackIconAppBar(text: String, onClick: () -> Unit) { IconButton(onClick = { onClick() }) { Icon( painterResource(id = R.drawable.ic_logger), - contentDescription = stringResource(id = R.string.back_screen), + contentDescription = stringResource(id = R.string.open_logger), tint = MaterialTheme.colorScheme.onPrimary, modifier = Modifier.size(24.dp) ) @@ -90,7 +83,7 @@ fun BackIconAppBar(text: String, onClick: () -> Unit) { } @Composable -fun LoggerIconAppBar(text: String, onClick: () -> Unit, onLoggerClick: () -> Unit) { +fun LoggerIconAppBar(text: String, onClick: () -> Unit, onDisconnectClick: () -> Unit, onLoggerClick: () -> Unit) { SmallTopAppBar( title = { Text(text) }, colors = TopAppBarDefaults.smallTopAppBarColors( @@ -110,10 +103,13 @@ fun LoggerIconAppBar(text: String, onClick: () -> Unit, onLoggerClick: () -> Uni } }, actions = { + Button(onClick = { onDisconnectClick() }) { + Text(stringResource(id = R.string.disconnect)) + } IconButton(onClick = { onLoggerClick() }) { Icon( painterResource(id = R.drawable.ic_logger), - contentDescription = stringResource(id = R.string.back_screen), + contentDescription = stringResource(id = R.string.open_logger), tint = MaterialTheme.colorScheme.onPrimary, modifier = Modifier.size(24.dp) ) diff --git a/lib_theme/src/main/res/values/strings.xml b/lib_theme/src/main/res/values/strings.xml index 76cb2c68..a56176df 100644 --- a/lib_theme/src/main/res/values/strings.xml +++ b/lib_theme/src/main/res/values/strings.xml @@ -9,6 +9,7 @@ Close the application. Close the current screen. + Open logger application. Disconnect Battery 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 f7e01c80..81c0fbf0 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 @@ -28,7 +28,7 @@ fun BPSScreen() { LoggerIconAppBar(stringResource(id = R.string.bps_title), { viewModel.onEvent(DisconnectEvent) - }) { + }, { viewModel.onEvent(DisconnectEvent) }) { viewModel.onEvent(OpenLoggerEvent) } 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 c997ce3f..ac2bd00c 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 @@ -26,7 +26,7 @@ fun CGMScreen() { Column { val navigateUp = { viewModel.onEvent(NavigateUp) } - LoggerIconAppBar(stringResource(id = R.string.cgms_title), navigateUp) { + LoggerIconAppBar(stringResource(id = R.string.cgms_title), navigateUp, { viewModel.onEvent(DisconnectEvent)}) { viewModel.onEvent(OpenLoggerEvent) } 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 043fc6e2..045ba619 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 @@ -26,7 +26,7 @@ fun CSCScreen() { Column { val navigateUp = { viewModel.onEvent(NavigateUp) } - LoggerIconAppBar(stringResource(id = R.string.csc_title), navigateUp) { + LoggerIconAppBar(stringResource(id = R.string.csc_title), navigateUp, { viewModel.onEvent(OnDisconnectButtonClick) }) { viewModel.onEvent(OpenLogger) } 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 7b14b62b..342d672e 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 @@ -28,7 +28,7 @@ fun GLSScreen() { LoggerIconAppBar(stringResource(id = R.string.gls_title), { viewModel.onEvent(DisconnectEvent) - }) { + }, { viewModel.onEvent(DisconnectEvent) }) { viewModel.onEvent(OpenLoggerEvent) } 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 e6b4c883..f2960a89 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 @@ -26,7 +26,7 @@ fun HRSScreen() { Column { val navigateUp = { viewModel.onEvent(NavigateUpEvent) } - LoggerIconAppBar(stringResource(id = R.string.hrs_title), navigateUp) { + LoggerIconAppBar(stringResource(id = R.string.hrs_title), navigateUp, { viewModel.onEvent(DisconnectEvent) }) { viewModel.onEvent(OpenLoggerEvent) } 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 ad936c8a..c5075b8a 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 @@ -26,7 +26,7 @@ fun HTSScreen() { Column { val navigateUp = { viewModel.onEvent(NavigateUp) } - LoggerIconAppBar(stringResource(id = R.string.hts_title), navigateUp) { + LoggerIconAppBar(stringResource(id = R.string.hts_title), navigateUp, { viewModel.onEvent(DisconnectEvent) }) { viewModel.onEvent(OpenLoggerEvent) } 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 c6a85fb6..28c81e5a 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 @@ -27,7 +27,7 @@ fun PRXScreen() { Column(horizontalAlignment = Alignment.CenterHorizontally) { val navigateUp = { viewModel.onEvent(NavigateUpEvent) } - LoggerIconAppBar(stringResource(id = R.string.prx_title), navigateUp) { + LoggerIconAppBar(stringResource(id = R.string.prx_title), navigateUp, { viewModel.onEvent(DisconnectEvent) }) { viewModel.onEvent(OpenLoggerEvent) } 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 1b8e23d3..add69d15 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 @@ -26,7 +26,7 @@ fun RSCSScreen() { Column { val navigateUp = { viewModel.onEvent(NavigateUpEvent) } - LoggerIconAppBar(stringResource(id = R.string.rscs_title), navigateUp) { + LoggerIconAppBar(stringResource(id = R.string.rscs_title), navigateUp, { viewModel.onEvent(DisconnectEvent) }) { viewModel.onEvent(OpenLoggerEvent) } diff --git a/profile_uart/build.gradle b/profile_uart/build.gradle index 99b1f0dc..cc25b94c 100644 --- a/profile_uart/build.gradle +++ b/profile_uart/build.gradle @@ -4,7 +4,7 @@ apply plugin: 'com.google.protobuf' protobuf { protoc { - artifact = 'com.google.protobuf:protoc:3.14.0:osx-x86_64' + artifact = 'com.google.protobuf:protoc:3.14.0' } // Generates the java Protobuf-lite code for the Protobufs in this project. See 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 d96928be..8053207b 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 @@ -1,8 +1,6 @@ package no.nordicsemi.android.uart.view import androidx.compose.foundation.layout.* -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.ArrowBack import androidx.compose.material3.* import androidx.compose.runtime.Composable import androidx.compose.runtime.mutableStateOf @@ -24,6 +22,28 @@ internal fun InputSection(onEvent: (UARTViewEvent) -> Unit) { val hint = stringResource(id = R.string.uart_input_hint) val checkedItem = rememberSaveable { mutableStateOf(MacroEol.values()[0]) } + Row(verticalAlignment = Alignment.CenterVertically) { + Box(modifier = Modifier.weight(1f)) { + TextField(text = text.value, hint = hint) { + text.value = it + } + } + + Spacer(modifier = Modifier.size(16.dp)) + + Button( + onClick = { onEvent(OnRunInput(text.value, checkedItem.value)) }, + modifier = Modifier.padding(top = 6.dp) + ) { + Text(text = stringResource(id = R.string.uart_send)) + } + } +} + +@Composable +internal fun EditInputSection(onEvent: (UARTViewEvent) -> Unit) { + val checkedItem = rememberSaveable { mutableStateOf(MacroEol.values()[0]) } + val items = MacroEol.values().map { RadioButtonItem(it.toDisplayString(), it == checkedItem.value) } @@ -59,23 +79,6 @@ internal fun InputSection(onEvent: (UARTViewEvent) -> Unit) { } Spacer(modifier = Modifier.size(16.dp)) - - Row(verticalAlignment = Alignment.CenterVertically) { - Box(modifier = Modifier.weight(1f)) { - TextField(text = text.value, hint = hint) { - text.value = it - } - } - - Spacer(modifier = Modifier.size(16.dp)) - - Button( - onClick = { onEvent(OnRunInput(text.value, checkedItem.value)) }, - modifier = Modifier.padding(top = 6.dp) - ) { - Text(text = stringResource(id = R.string.uart_send)) - } - } } } } 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 15b10475..4e059de5 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 @@ -31,66 +31,70 @@ internal fun MacroSection(viewState: UARTViewState, onEvent: (UARTViewEvent) -> DeleteConfigurationDialog(onEvent) { showDeleteDialog.value = false } } - ScreenSection { - Column( - horizontalAlignment = Alignment.CenterHorizontally - ) { - SectionTitle( - resId = R.drawable.ic_macro, - title = stringResource(R.string.uart_macros), - menu = { - IconButton(onClick = { onEvent(MacroInputSwitchClick) }) { + if (viewState.showEditDialog) { + UARTAddMacroDialog(viewState.selectedMacro) { onEvent(it) } + } + + Column( + horizontalAlignment = Alignment.CenterHorizontally, + modifier = Modifier.padding(16.dp).fillMaxSize() + ) { + ScreenSection { + Column( + horizontalAlignment = Alignment.CenterHorizontally + ) { + SectionTitle( + resId = R.drawable.ic_macro, + title = stringResource(R.string.uart_macros), + ) + + Spacer(modifier = Modifier.height(16.dp)) + + Row { + Box(modifier = Modifier.weight(1f)) { + UARTConfigurationPicker(viewState, onEvent) + } + + IconButton(onClick = { showAddDialog.value = true }) { Icon( - painterResource(id = R.drawable.ic_input), - contentDescription = stringResource(id = R.string.uart_input_macro), + Icons.Default.Add, + stringResource(id = R.string.uart_configuration_add) ) } - } - ) - Spacer(modifier = Modifier.height(16.dp)) + viewState.selectedConfiguration?.let { - Row { - Box(modifier = Modifier.weight(1f)) { - UARTConfigurationPicker(viewState, onEvent) - } + if (!viewState.isConfigurationEdited) { + IconButton(onClick = { onEvent(OnEditConfiguration) }) { + Icon( + Icons.Default.Edit, + stringResource(id = R.string.uart_configuration_edit) + ) + } + } else { + IconButton(onClick = { onEvent(OnEditConfiguration) }) { + Icon( + painterResource(id = R.drawable.ic_pencil_off), + stringResource(id = R.string.uart_configuration_edit) + ) + } + } - IconButton(onClick = { showAddDialog.value = true }) { - Icon(Icons.Default.Add, stringResource(id = R.string.uart_configuration_add)) + IconButton(onClick = { showDeleteDialog.value = true }) { + Icon( + Icons.Default.Delete, + stringResource(id = R.string.uart_configuration_delete) + ) + } + } } viewState.selectedConfiguration?.let { + Spacer(modifier = Modifier.height(16.dp)) - if (!viewState.isConfigurationEdited) { - IconButton(onClick = { onEvent(OnEditConfiguration) }) { - Icon( - Icons.Default.Edit, - stringResource(id = R.string.uart_configuration_edit) - ) - } - } else { - IconButton(onClick = { onEvent(OnEditConfiguration) }) { - Icon( - painterResource(id = R.drawable.ic_pencil_off), - stringResource(id = R.string.uart_configuration_edit) - ) - } - } - - IconButton(onClick = { showDeleteDialog.value = true }) { - Icon( - Icons.Default.Delete, - stringResource(id = R.string.uart_configuration_delete) - ) - } + UARTMacroView(it, viewState.isConfigurationEdited, onEvent) } } - - viewState.selectedConfiguration?.let { - Spacer(modifier = Modifier.height(16.dp)) - - UARTMacroView(it, viewState.isConfigurationEdited, onEvent) - } } } } diff --git a/profile_uart/src/main/java/no/nordicsemi/android/uart/view/SettingsScreen.kt b/profile_uart/src/main/java/no/nordicsemi/android/uart/view/SettingsScreen.kt deleted file mode 100644 index 6aa828f2..00000000 --- a/profile_uart/src/main/java/no/nordicsemi/android/uart/view/SettingsScreen.kt +++ /dev/null @@ -1,9 +0,0 @@ -package no.nordicsemi.android.uart.view - -import androidx.compose.runtime.Composable - -@Composable -fun SettingsScreen() { - - -} \ No newline at end of file diff --git a/profile_uart/src/main/java/no/nordicsemi/android/uart/view/UARTContentView.kt b/profile_uart/src/main/java/no/nordicsemi/android/uart/view/UARTContentView.kt index 20b641f2..041aaff0 100644 --- a/profile_uart/src/main/java/no/nordicsemi/android/uart/view/UARTContentView.kt +++ b/profile_uart/src/main/java/no/nordicsemi/android/uart/view/UARTContentView.kt @@ -1,23 +1,16 @@ package no.nordicsemi.android.uart.view import androidx.compose.foundation.layout.* -import androidx.compose.material3.Button -import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import no.nordicsemi.android.material.you.ScreenSection -import no.nordicsemi.android.uart.R import no.nordicsemi.android.uart.data.UARTData @Composable internal fun UARTContentView( state: UARTData, - viewState: UARTViewState, onEvent: (UARTViewEvent) -> Unit ) { Column( @@ -33,18 +26,8 @@ internal fun UARTContentView( Spacer(modifier = Modifier.size(16.dp)) - if (viewState.isInputVisible) { - InputSection(onEvent = onEvent) - } else { - MacroSection(viewState, onEvent) - } + InputSection(onEvent = onEvent) Spacer(modifier = Modifier.size(16.dp)) - - Button( - onClick = { onEvent(DisconnectEvent) } - ) { - Text(text = stringResource(id = R.string.disconnect)) - } } } diff --git a/profile_uart/src/main/java/no/nordicsemi/android/uart/view/UARTMacroView.kt b/profile_uart/src/main/java/no/nordicsemi/android/uart/view/UARTMacroView.kt index 44cd24cf..2757d59b 100644 --- a/profile_uart/src/main/java/no/nordicsemi/android/uart/view/UARTMacroView.kt +++ b/profile_uart/src/main/java/no/nordicsemi/android/uart/view/UARTMacroView.kt @@ -19,7 +19,7 @@ import no.nordicsemi.android.uart.data.UARTConfiguration import no.nordicsemi.android.uart.data.UARTMacro private val divider = 4.dp -private val buttonSize = 80.dp +private val buttonSize = 80.dp //Minimum touch area @Composable internal fun UARTMacroView( 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 9daeb29a..c9e63bf2 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 @@ -8,9 +8,13 @@ import androidx.compose.runtime.collectAsState import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.hilt.navigation.compose.hiltViewModel +import no.nordicsemi.android.material.you.PagerView +import no.nordicsemi.android.material.you.PagerViewEntity +import no.nordicsemi.android.material.you.PagerViewItem import no.nordicsemi.android.service.* import no.nordicsemi.android.theme.view.LoggerIconAppBar import no.nordicsemi.android.uart.R +import no.nordicsemi.android.uart.data.UARTData import no.nordicsemi.android.uart.viewmodel.UARTViewModel import no.nordicsemi.android.utils.exhaustive import no.nordicsemi.ui.scanner.ui.DeviceConnectingView @@ -23,14 +27,10 @@ fun UARTScreen() { val viewModel: UARTViewModel = hiltViewModel() val state = viewModel.state.collectAsState().value - if (state.showEditDialog) { - UARTAddMacroDialog(state.selectedMacro) { viewModel.onEvent(it) } - } - Column { val navigateUp = { viewModel.onEvent(NavigateUp) } - LoggerIconAppBar(stringResource(id = R.string.uart_title), navigateUp) { + LoggerIconAppBar(stringResource(id = R.string.uart_title), navigateUp, { viewModel.onEvent(DisconnectEvent) }) { viewModel.onEvent(OpenLogger) } @@ -44,16 +44,7 @@ fun UARTScreen() { is LinkLossResult -> Scroll { DeviceDisconnectedView(Reason.LINK_LOSS, navigateUp) } is MissingServiceResult -> Scroll { DeviceDisconnectedView(Reason.MISSING_SERVICE, navigateUp) } is UnknownErrorResult -> Scroll { DeviceDisconnectedView(Reason.UNKNOWN, navigateUp) } - is SuccessResult -> { -// val i1 = PagerViewEntity( -// listOf( -// PagerViewItem("aaa") { Text("aa") }, -// PagerViewItem("bbb") { Text("bb") } -// ) -// ) -// PagerView(i1) - UARTContentView(state.uartManagerState.result.data, state) { viewModel.onEvent(it) } - } + is SuccessResult -> SuccessScreen(state.uartManagerState.result.data, state, viewModel) } TutorialState -> TutorialScreen(viewModel) }.exhaustive @@ -61,6 +52,21 @@ fun UARTScreen() { } } +@Composable +private fun SuccessScreen(data: UARTData, state: UARTViewState, viewModel: UARTViewModel) { + val viewEntity = PagerViewEntity( + listOf( + PagerViewItem(stringResource(id = R.string.uart_input)) { + UARTContentView(data) { viewModel.onEvent(it) } + }, + PagerViewItem(stringResource(id = R.string.uart_macros)) { + MacroSection(state) { viewModel.onEvent(it) } + } + ) + ) + PagerView(viewEntity) +} + @Composable fun Scroll(content: @Composable () -> Unit) { Column(modifier = Modifier.verticalScroll(rememberScrollState())) { diff --git a/profile_uart/src/main/res/values/strings.xml b/profile_uart/src/main/res/values/strings.xml index 68c7bf34..c20c1fdf 100644 --- a/profile_uart/src/main/res/values/strings.xml +++ b/profile_uart/src/main/res/values/strings.xml @@ -58,4 +58,7 @@ Click to constantly scroll view to the latest available log. --> %s <-- %s + + Settings + Go to settings screen. diff --git a/settings.gradle b/settings.gradle index b5488f81..7f780275 100644 --- a/settings.gradle +++ b/settings.gradle @@ -37,9 +37,9 @@ dependencyResolutionManagement { library('datastore-protobuf', 'com.google.protobuf:protobuf-javalite:3.18.0') bundle('datastore', ['datastore-core', 'datastore-prefs', 'datastore-protobuf']) - version('compose', '1.1.0') + version('compose', '1.2.0-alpha07') library('compose-ui', 'androidx.compose.ui', 'ui').versionRef('compose') - library('compose-material', 'androidx.compose.material3:material3:1.0.0-alpha10') + library('compose-material', 'androidx.compose.material3:material3:1.0.0-alpha09') library('compose-tooling-preview', 'androidx.compose.ui', 'ui-tooling-preview').versionRef('compose') library('compose-navigation', 'androidx.navigation:navigation-compose:2.4.1') bundle('compose', ['compose-ui', 'compose-material', 'compose-tooling-preview', 'compose-navigation'])