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'])