Toolbox changes.

This commit is contained in:
Sylwester Zieliński
2022-01-26 12:29:21 +01:00
parent e3010c80e8
commit d3fca87c45
19 changed files with 138 additions and 121 deletions

View File

@@ -4,12 +4,7 @@ import androidx.annotation.DrawableRes
import androidx.annotation.StringRes
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
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.foundation.layout.*
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
@@ -37,14 +32,18 @@ fun FeatureButton(
Column(
modifier = Modifier
.fillMaxWidth()
.height(150.dp)
.padding(16.dp),
horizontalAlignment = Alignment.CenterHorizontally
.height(160.dp),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
Text(
text = stringResource(id = nameCode),
style = MaterialTheme.typography.labelMedium
)
Box( modifier = Modifier.weight(1f)) {
Text(
text = stringResource(id = nameCode),
style = MaterialTheme.typography.labelMedium,
modifier = Modifier.fillMaxWidth().align(Alignment.BottomCenter),
textAlign = TextAlign.Center
)
}
Spacer(modifier = Modifier.height(8.dp))
@@ -62,11 +61,14 @@ fun FeatureButton(
Spacer(modifier = Modifier.height(8.dp))
Text(
text = stringResource(id = name),
style = MaterialTheme.typography.bodyMedium,
textAlign = TextAlign.Center
)
Box( modifier = Modifier.weight(1f)) {
Text(
text = stringResource(id = name),
style = MaterialTheme.typography.bodyMedium,
modifier = Modifier.fillMaxWidth().align(Alignment.TopCenter),
textAlign = TextAlign.Center
)
}
}
}
}

View File

@@ -1,21 +1,14 @@
package no.nordicsemi.android.nrftoolbox
import android.app.Activity
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
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.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalUriHandler
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
@@ -109,8 +102,9 @@ fun HomeScreen() {
Spacer(modifier = Modifier.height(16.dp))
val uriHandler = LocalUriHandler.current
FeatureButton(R.drawable.ic_dfu, R.string.dfu_module, R.string.dfu_module_full) {
uriHandler.openUri("https://github.com/NordicSemiconductor/Android-nRF-Toolbox")
}
Spacer(modifier = Modifier.height(16.dp))

View File

@@ -11,7 +11,7 @@ buildscript {
mavenCentral()
}
dependencies {
classpath "com.android.tools.build:gradle:7.0.4"
classpath 'com.android.tools.build:gradle:7.1.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "io.spring.gradle:dependency-management-plugin:1.0.11.RELEASE"
classpath "com.google.dagger:hilt-android-gradle-plugin:2.40.4"

View File

@@ -1,8 +1,11 @@
package no.nordicsemi.android.bps.view
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.runtime.Composable
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.bps.R
@@ -21,9 +24,11 @@ fun BPSScreen() {
viewModel.onEvent(DisconnectEvent)
}
when (state) {
is DisplayDataState -> BPSContentView(state.data) { viewModel.onEvent(it) }
LoadingState -> DeviceConnectingView()
}.exhaustive
Column(modifier = Modifier.verticalScroll(rememberScrollState())) {
when (state) {
is DisplayDataState -> BPSContentView(state.data) { viewModel.onEvent(it) }
LoadingState -> DeviceConnectingView()
}.exhaustive
}
}
}

View File

@@ -1,16 +1,6 @@
package no.nordicsemi.android.cgms.view
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.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.foundation.layout.*
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Search
import androidx.compose.material.icons.filled.Settings
@@ -37,8 +27,7 @@ internal fun CGMContentView(state: CGMData, onEvent: (CGMViewEvent) -> Unit) {
Column(
modifier = Modifier
.fillMaxSize()
.padding(16.dp)
.verticalScroll(rememberScrollState()),
.padding(16.dp),
horizontalAlignment = Alignment.CenterHorizontally
) {
SettingsView(state, onEvent)

View File

@@ -1,8 +1,11 @@
package no.nordicsemi.android.cgms.view
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.runtime.Composable
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.cgms.R
@@ -21,9 +24,11 @@ fun CGMScreen() {
viewModel.onEvent(DisconnectEvent)
}
when (state) {
is DisplayDataState -> CGMContentView(state.data) { viewModel.onEvent(it) }
LoadingState -> DeviceConnectingView()
}.exhaustive
Column(modifier = Modifier.verticalScroll(rememberScrollState())) {
when (state) {
is DisplayDataState -> CGMContentView(state.data) { viewModel.onEvent(it) }
LoadingState -> DeviceConnectingView()
}.exhaustive
}
}
}

View File

@@ -4,8 +4,6 @@ import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Settings
import androidx.compose.material3.Button
@@ -41,42 +39,46 @@ internal fun CSCContentView(state: CSCData, onEvent: (CSCViewEvent) -> Unit) {
when (it) {
FlowCanceled -> showDialog.value = false
is ItemSelectedResult -> {
onEvent(OnWheelSizeSelected(WheelSize(wheelValues[it.index].toInt(), wheelEntries[it.index])))
onEvent(OnWheelSizeSelected(WheelSize(wheelValues[it.index].toInt(),
wheelEntries[it.index])))
showDialog.value = false
}
}.exhaustive
}
}
Column(modifier = Modifier.verticalScroll(rememberScrollState())) {
Column(
horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier.padding(16.dp)
Column(
horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier.padding(16.dp)
) {
SettingsSection(state, onEvent) { showDialog.value = true }
Spacer(modifier = Modifier.height(16.dp))
SensorsReadingView(state = state)
Spacer(modifier = Modifier.height(16.dp))
Button(
onClick = { onEvent(OnDisconnectButtonClick) }
) {
SettingsSection(state, onEvent) { showDialog.value = true }
Spacer(modifier = Modifier.height(16.dp))
SensorsReadingView(state = state)
Spacer(modifier = Modifier.height(16.dp))
Button(
onClick = { onEvent(OnDisconnectButtonClick) }
) {
Text(text = stringResource(id = R.string.disconnect))
}
Text(text = stringResource(id = R.string.disconnect))
}
}
}
@Composable
private fun SettingsSection(state: CSCData, onEvent: (CSCViewEvent) -> Unit, onWheelButtonClick: () -> Unit) {
private fun SettingsSection(
state: CSCData,
onEvent: (CSCViewEvent) -> Unit,
onWheelButtonClick: () -> Unit,
) {
ScreenSection {
Column(
horizontalAlignment = Alignment.CenterHorizontally
) {
SectionTitle(icon = Icons.Default.Settings, title = stringResource(R.string.csc_settings))
SectionTitle(icon = Icons.Default.Settings,
title = stringResource(R.string.csc_settings))
Spacer(modifier = Modifier.height(16.dp))

View File

@@ -1,8 +1,11 @@
package no.nordicsemi.android.csc.view
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.runtime.Composable
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.csc.R
@@ -21,9 +24,11 @@ fun CSCScreen() {
viewModel.onEvent(OnDisconnectButtonClick)
}
when (state) {
is DisplayDataState -> CSCContentView(state.data) { viewModel.onEvent(it) }
LoadingState -> DeviceConnectingView()
}.exhaustive
Column(modifier = Modifier.verticalScroll(rememberScrollState())) {
when (state) {
is DisplayDataState -> CSCContentView(state.data) { viewModel.onEvent(it) }
LoadingState -> DeviceConnectingView()
}.exhaustive
}
}
}

View File

@@ -2,8 +2,6 @@ package no.nordicsemi.android.gls.main.view
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Search
import androidx.compose.material.icons.filled.Settings
@@ -32,8 +30,7 @@ internal fun GLSContentView(state: GLSData, onEvent: (GLSScreenViewEvent) -> Uni
Column(
modifier = Modifier
.fillMaxSize()
.padding(horizontal = 16.dp)
.verticalScroll(rememberScrollState()),
.padding(horizontal = 16.dp),
horizontalAlignment = Alignment.CenterHorizontally
) {
Spacer(modifier = Modifier.height(16.dp))

View File

@@ -1,8 +1,11 @@
package no.nordicsemi.android.gls.main.view
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.runtime.Composable
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.gls.R
@@ -21,9 +24,11 @@ fun GLSScreen() {
viewModel.onEvent(DisconnectEvent)
}
when (state) {
is DisplayDataState -> GLSContentView(state.data) { viewModel.onEvent(it) }
LoadingState -> DeviceConnectingView()
}.exhaustive
Column(modifier = Modifier.verticalScroll(rememberScrollState())) {
when (state) {
is DisplayDataState -> GLSContentView(state.data) { viewModel.onEvent(it) }
LoadingState -> DeviceConnectingView()
}.exhaustive
}
}
}

View File

@@ -22,10 +22,8 @@ import no.nordicsemi.android.theme.view.SectionTitle
internal fun HRSContentView(state: HRSData, onEvent: (HRSScreenViewEvent) -> Unit) {
Column(
horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier.padding(horizontal = 16.dp)
modifier = Modifier.padding(16.dp)
) {
Spacer(modifier = Modifier.height(16.dp))
ScreenSection {
SectionTitle(resId = R.drawable.ic_chart_line, title = "Data")

View File

@@ -1,8 +1,11 @@
package no.nordicsemi.android.hrs.view
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.runtime.Composable
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.hrs.R
@@ -21,9 +24,11 @@ fun HRSScreen() {
viewModel.onEvent(DisconnectEvent)
}
when (state) {
is DisplayDataState -> HRSContentView(state.data) { viewModel.onEvent(it) }
LoadingState -> DeviceConnectingView()
}.exhaustive
Column(modifier = Modifier.verticalScroll(rememberScrollState())) {
when (state) {
is DisplayDataState -> HRSContentView(state.data) { viewModel.onEvent(it) }
LoadingState -> DeviceConnectingView()
}.exhaustive
}
}
}

View File

@@ -1,10 +1,6 @@
package no.nordicsemi.android.hts.view
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.*
import androidx.compose.material3.Button
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
@@ -26,11 +22,9 @@ internal fun HTSContentView(state: HTSData, onEvent: (HTSScreenViewEvent) -> Uni
Column(
modifier = Modifier
.fillMaxSize()
.padding(horizontal = 16.dp),
.padding(16.dp),
horizontalAlignment = Alignment.CenterHorizontally
) {
Spacer(modifier = Modifier.height(16.dp))
ScreenSection {
SectionTitle(resId = R.drawable.ic_thermometer, title = "Settings")

View File

@@ -1,8 +1,11 @@
package no.nordicsemi.android.hts.view
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.runtime.Composable
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.hts.R
@@ -21,9 +24,11 @@ fun HTSScreen() {
viewModel.onEvent(DisconnectEvent)
}
when (state) {
is DisplayDataState -> HTSContentView(state.data) { viewModel.onEvent(it) }
LoadingState -> DeviceConnectingView()
}.exhaustive
Column(modifier = Modifier.verticalScroll(rememberScrollState())) {
when (state) {
is DisplayDataState -> HTSContentView(state.data) { viewModel.onEvent(it) }
LoadingState -> DeviceConnectingView()
}.exhaustive
}
}
}

View File

@@ -1,9 +1,12 @@
package no.nordicsemi.android.prx.view
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.hilt.navigation.compose.hiltViewModel
import no.nordicsemi.android.prx.R
@@ -22,9 +25,11 @@ fun PRXScreen() {
viewModel.onEvent(DisconnectEvent)
}
when (state) {
is DisplayDataState -> ContentView(state.data) { viewModel.onEvent(it) }
LoadingState -> DeviceConnectingView()
}.exhaustive
Column(modifier = Modifier.verticalScroll(rememberScrollState())) {
when (state) {
is DisplayDataState -> ContentView(state.data) { viewModel.onEvent(it) }
LoadingState -> DeviceConnectingView()
}.exhaustive
}
}
}

View File

@@ -20,10 +20,8 @@ import no.nordicsemi.android.theme.view.BatteryLevelView
internal fun RSCSContentView(state: RSCSData, onEvent: (RSCScreenViewEvent) -> Unit) {
Column(
horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier.padding(horizontal = 16.dp)
modifier = Modifier.padding(16.dp)
) {
Spacer(modifier = Modifier.height(16.dp))
SensorsReadingView(state = state)
Spacer(modifier = Modifier.height(16.dp))

View File

@@ -1,8 +1,11 @@
package no.nordicsemi.android.rscs.view
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.runtime.Composable
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.rscs.R
@@ -21,9 +24,11 @@ fun RSCSScreen() {
viewModel.onEvent(DisconnectEvent)
}
when (state) {
is DisplayDataState -> RSCSContentView(state.data) { viewModel.onEvent(it) }
LoadingState -> DeviceConnectingView()
}.exhaustive
Column(modifier = Modifier.verticalScroll(rememberScrollState())) {
when (state) {
is DisplayDataState -> RSCSContentView(state.data) { viewModel.onEvent(it) }
LoadingState -> DeviceConnectingView()
}.exhaustive
}
}
}

View File

@@ -23,10 +23,8 @@ import no.nordicsemi.android.uart.data.UARTData
internal fun UARTContentView(state: UARTData, onEvent: (UARTViewEvent) -> Unit) {
Column(
horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier.padding(horizontal = 16.dp)
modifier = Modifier.padding(16.dp)
) {
Spacer(modifier = Modifier.height(16.dp))
InputSection(state, onEvent)
Spacer(modifier = Modifier.height(16.dp))

View File

@@ -1,8 +1,11 @@
package no.nordicsemi.android.uart.view
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.runtime.Composable
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.theme.view.BackIconAppBar
@@ -21,9 +24,11 @@ fun UARTScreen() {
viewModel.onEvent(OnDisconnectButtonClick)
}
when (state) {
is DisplayDataState -> UARTContentView(state.data) { viewModel.onEvent(it) }
LoadingState -> DeviceConnectingView()
}.exhaustive
Column(modifier = Modifier.verticalScroll(rememberScrollState())) {
when (state) {
is DisplayDataState -> UARTContentView(state.data) { viewModel.onEvent(it) }
LoadingState -> DeviceConnectingView()
}.exhaustive
}
}
}