mirror of
https://github.com/aljazceru/Android-nRF-Toolbox.git
synced 2026-01-07 08:44:24 +01:00
Update gradle and compose
This commit is contained in:
@@ -2,9 +2,14 @@ package no.nordicsemi.android.csc.data
|
||||
|
||||
import no.nordicsemi.android.csc.view.CSCSettings
|
||||
import no.nordicsemi.android.csc.view.SpeedUnit
|
||||
import no.nordicsemi.android.theme.view.RadioGroupItem
|
||||
import no.nordicsemi.android.material.you.RadioButtonItem
|
||||
import no.nordicsemi.android.material.you.RadioGroupViewEntity
|
||||
import java.util.*
|
||||
|
||||
private const val DISPLAY_M_S = "m/s"
|
||||
private const val DISPLAY_KM_H = "km/h"
|
||||
private const val DISPLAY_MPH = "mph"
|
||||
|
||||
internal data class CSCData(
|
||||
val showDialog: Boolean = false,
|
||||
val scanDevices: Boolean = false,
|
||||
@@ -57,11 +62,30 @@ internal data class CSCData(
|
||||
return String.format(Locale.US, "%.1f", gearRatio)
|
||||
}
|
||||
|
||||
fun items(): List<RadioGroupItem<SpeedUnit>> {
|
||||
return listOf(
|
||||
RadioGroupItem(SpeedUnit.M_S,"m/s"),
|
||||
RadioGroupItem(SpeedUnit.KM_H, "km/h"),
|
||||
RadioGroupItem(SpeedUnit.MPH, "mph")
|
||||
fun getSpeedUnit(label: String): SpeedUnit {
|
||||
return when (label) {
|
||||
DISPLAY_KM_H -> SpeedUnit.KM_H
|
||||
DISPLAY_M_S -> SpeedUnit.M_S
|
||||
DISPLAY_MPH -> SpeedUnit.MPH
|
||||
else -> throw IllegalArgumentException("Can't create SpeedUnit from this label: $label")
|
||||
}
|
||||
}
|
||||
|
||||
fun temperatureSettingsItems(): RadioGroupViewEntity {
|
||||
return RadioGroupViewEntity(
|
||||
SpeedUnit.values().map { createRadioButtonItem(it) }
|
||||
)
|
||||
}
|
||||
|
||||
private fun createRadioButtonItem(unit: SpeedUnit): RadioButtonItem {
|
||||
return RadioButtonItem(displayTemperature(unit), unit == selectedSpeedUnit)
|
||||
}
|
||||
|
||||
private fun displayTemperature(unit: SpeedUnit): String {
|
||||
return when (unit) {
|
||||
SpeedUnit.KM_H -> DISPLAY_KM_H
|
||||
SpeedUnit.M_S -> DISPLAY_M_S
|
||||
SpeedUnit.MPH -> DISPLAY_MPH
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,9 +16,9 @@ import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import no.nordicsemi.android.csc.R
|
||||
import no.nordicsemi.android.csc.data.CSCData
|
||||
import no.nordicsemi.android.material.you.RadioButtonGroup
|
||||
import no.nordicsemi.android.theme.view.ScreenSection
|
||||
import no.nordicsemi.android.theme.view.SectionTitle
|
||||
import no.nordicsemi.android.theme.view.SelectItemRadioGroup
|
||||
|
||||
@Composable
|
||||
internal fun CSCContentView(state: CSCData, onEvent: (CSCViewEvent) -> Unit) {
|
||||
@@ -62,8 +62,8 @@ private fun SettingsSection(state: CSCData, onEvent: (CSCViewEvent) -> Unit) {
|
||||
|
||||
Spacer(modifier = Modifier.height(16.dp))
|
||||
|
||||
SelectItemRadioGroup(state.selectedSpeedUnit, state.items()) {
|
||||
onEvent(OnSelectedSpeedUnitSelected(it.unit))
|
||||
RadioButtonGroup(viewEntity = state.temperatureSettingsItems()) {
|
||||
onEvent(OnSelectedSpeedUnitSelected(state.getSpeedUnit(it.label)))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package no.nordicsemi.android.csc.view
|
||||
|
||||
internal enum class SpeedUnit {
|
||||
M_S,
|
||||
KM_H,
|
||||
MPH
|
||||
internal enum class SpeedUnit(val displayName: String) {
|
||||
M_S("m/s"),
|
||||
KM_H("km/h"),
|
||||
MPH("mph")
|
||||
}
|
||||
|
||||
@@ -1,12 +1,17 @@
|
||||
package no.nordicsemi.android.csc.view
|
||||
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.Edit
|
||||
import androidx.compose.material.icons.filled.ArrowDropDown
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.IconButton
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.OutlinedButton
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
@@ -15,21 +20,22 @@ import no.nordicsemi.android.csc.data.CSCData
|
||||
|
||||
@Composable
|
||||
internal fun WheelSizeView(state: CSCData, onEvent: (CSCViewEvent) -> Unit) {
|
||||
//TODO
|
||||
// OutlinedTextField(
|
||||
// modifier = Modifier.fillMaxWidth(),
|
||||
// value = state.wheelSizeDisplay,
|
||||
// onValueChange = { },
|
||||
// enabled = false,
|
||||
// label = { Text(text = stringResource(id = R.string.csc_field_wheel_size)) },
|
||||
// trailingIcon = { EditIcon(onEvent = onEvent) }
|
||||
// )
|
||||
}
|
||||
OutlinedButton(onClick = { onEvent(OnShowEditWheelSizeDialogButtonClick) }) {
|
||||
Row(
|
||||
modifier = Modifier.fillMaxWidth(0.5f),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.SpaceBetween
|
||||
){
|
||||
Column {
|
||||
Text(
|
||||
text = stringResource(id = R.string.csc_field_wheel_size),
|
||||
style = MaterialTheme.typography.labelSmall
|
||||
)
|
||||
Text(text = state.wheelSizeDisplay, style = MaterialTheme.typography.bodyMedium)
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun EditIcon(onEvent: (CSCViewEvent) -> Unit) {
|
||||
IconButton(onClick = { onEvent(OnShowEditWheelSizeDialogButtonClick) }) {
|
||||
Icon(Icons.Filled.Edit, "Edit wheel size.")
|
||||
Icon(Icons.Default.ArrowDropDown, contentDescription = "")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user