Added minor tweaks to Dialogs and layouts

develop
Arty Bishop 2023-08-13 16:06:57 +01:00
rodzic aa8a30d07f
commit f001cdb2a9
8 zmienionych plików z 151 dodań i 89 usunięć

Wyświetl plik

@ -21,60 +21,102 @@ import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.material3.ElevatedCard import androidx.compose.material3.ElevatedCard
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.Slider
import androidx.compose.material3.SliderDefaults
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.mutableDoubleStateOf
import androidx.compose.runtime.mutableIntStateOf import androidx.compose.runtime.mutableIntStateOf
import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.Dialog
import com.rtbishop.look4sat.R
import com.rtbishop.look4sat.presentation.CardButton import com.rtbishop.look4sat.presentation.CardButton
import com.rtbishop.look4sat.presentation.MainTheme import com.rtbishop.look4sat.presentation.MainTheme
@Preview(showBackground = true) @Preview(showBackground = true)
@Composable @Composable
private fun FilterDialogPreview() { private fun FilterDialogPreview() {
MainTheme { FilterDialog(8, 16.0, {}) { _, _ -> } } MainTheme { FilterDialog(24, 16.0, {}) { _, _ -> } }
} }
@Composable @Composable
fun FilterDialog(hours: Int, elevation: Double, toggle: () -> Unit, save: (Int, Double) -> Unit) { fun FilterDialog(hours: Int, elevation: Double, dismiss: () -> Unit, save: (Int, Double) -> Unit) {
val hoursValue = rememberSaveable { mutableIntStateOf(hours) } val hoursValue = rememberSaveable { mutableIntStateOf(hours) }
val elevValue = rememberSaveable { mutableDoubleStateOf(elevation) } val elevationValue = rememberSaveable { mutableIntStateOf(elevation.toInt()) }
Dialog(onDismissRequest = { toggle() }) { val maxWidthModifier = Modifier.fillMaxWidth(1f)
Dialog(onDismissRequest = { dismiss() }) {
ElevatedCard { ElevatedCard {
Column(horizontalAlignment = Alignment.CenterHorizontally, modifier = Modifier.fillMaxWidth(1f)) { Column(
Text(text = "Filter passes", color = MaterialTheme.colorScheme.primary) horizontalAlignment = Alignment.CenterHorizontally,
Text(text = "Show passes that occur within X hours") verticalArrangement = Arrangement.spacedBy(6.dp),
OutlinedTextField(value = hoursValue.intValue.toString(), onValueChange = { newValue -> modifier = maxWidthModifier.padding(12.dp)
val hoursAhead = try { ) {
newValue.toInt() Text(text = "Filter passes", fontSize = 20.sp, color = MaterialTheme.colorScheme.primary)
} catch (exception: Exception) { Row(horizontalArrangement = Arrangement.spacedBy(4.dp), verticalAlignment = Alignment.Bottom) {
12 Text(text = "Show passes within", fontSize = 18.sp, modifier = Modifier.weight(1f))
Icon(
painter = painterResource(id = R.drawable.ic_time),
contentDescription = null,
tint = MaterialTheme.colorScheme.primary,
modifier = Modifier
.size(20.dp)
.padding(bottom = 4.dp)
)
Text(
text = "${hoursValue.intValue}h",
fontSize = 20.sp,
fontWeight = FontWeight.Medium,
color = MaterialTheme.colorScheme.primary
)
} }
hoursValue.intValue = hoursAhead Slider(
}) value = hoursValue.intValue.toFloat(),
Text(text = "Show passes with max elevation above") onValueChange = { hoursValue.intValue = it.toInt() },
OutlinedTextField(value = elevValue.doubleValue.toString(), onValueChange = { newValue -> valueRange = 1f..168f,
val maxElevation = try { colors = SliderDefaults.colors(inactiveTrackColor = MaterialTheme.colorScheme.onSurfaceVariant)
newValue.toDouble() )
} catch (exception: Exception) { Row(horizontalArrangement = Arrangement.spacedBy(4.dp), verticalAlignment = Alignment.Bottom) {
16.0 Text(text = "Show passes above", fontSize = 18.sp, modifier = Modifier.weight(1f))
Icon(
painter = painterResource(id = R.drawable.ic_elevation),
contentDescription = null,
tint = MaterialTheme.colorScheme.primary,
modifier = Modifier
.size(20.dp)
.padding(bottom = 4.dp)
)
Text(
text = "${elevationValue.intValue}°",
fontSize = 20.sp,
fontWeight = FontWeight.Medium,
color = MaterialTheme.colorScheme.primary
)
} }
elevValue.doubleValue = maxElevation Slider(
}) value = elevationValue.intValue.toFloat(),
onValueChange = { elevationValue.intValue = it.toInt() },
valueRange = 0f..90f,
colors = SliderDefaults.colors(inactiveTrackColor = MaterialTheme.colorScheme.onSurfaceVariant)
)
Row(horizontalArrangement = Arrangement.SpaceBetween, modifier = Modifier.fillMaxWidth()) { Row(horizontalArrangement = Arrangement.SpaceBetween, modifier = Modifier.fillMaxWidth()) {
CardButton(onClick = { toggle() }, text = "Cancel") CardButton(onClick = { dismiss() }, text = stringResource(id = R.string.btn_cancel))
CardButton( CardButton(
onClick = { onClick = {
save(hoursValue.intValue, elevValue.doubleValue) save(hoursValue.intValue, elevationValue.intValue.toDouble())
toggle() dismiss()
}, text = "Accept" }, text = stringResource(id = R.string.btn_accept)
) )
} }
} }

Wyświetl plik

@ -4,6 +4,7 @@ import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.ElevatedCard import androidx.compose.material3.ElevatedCard
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.OutlinedTextField
@ -15,6 +16,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.Dialog
import com.rtbishop.look4sat.R import com.rtbishop.look4sat.R
import com.rtbishop.look4sat.presentation.CardButton import com.rtbishop.look4sat.presentation.CardButton
@ -27,20 +29,25 @@ private fun LocatorDialogPreview() {
} }
@Composable @Composable
fun LocatorDialog(qthLocator: String, hide: () -> Unit, save: (String) -> Unit) { fun LocatorDialog(qthLocator: String, dismiss: () -> Unit, save: (String) -> Unit) {
val locator = rememberSaveable { mutableStateOf(qthLocator) } val locator = rememberSaveable { mutableStateOf(qthLocator) }
Dialog(onDismissRequest = { hide() }) { val maxWidthModifier = Modifier.fillMaxWidth(1f)
Dialog(onDismissRequest = { dismiss() }) {
ElevatedCard { ElevatedCard {
Column(horizontalAlignment = Alignment.CenterHorizontally, modifier = Modifier.fillMaxWidth(1f)) { Column(
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.spacedBy(12.dp),
modifier = maxWidthModifier.padding(12.dp)
) {
Text(text = stringResource(id = R.string.locator_title), color = MaterialTheme.colorScheme.primary) Text(text = stringResource(id = R.string.locator_title), color = MaterialTheme.colorScheme.primary)
Text(text = stringResource(id = R.string.locator_text)) Text(text = stringResource(id = R.string.locator_text))
OutlinedTextField(value = locator.value, onValueChange = { locator.value = it }) OutlinedTextField(value = locator.value, onValueChange = { locator.value = it })
Row(horizontalArrangement = Arrangement.SpaceBetween, modifier = Modifier.fillMaxWidth()) { Row(horizontalArrangement = Arrangement.SpaceBetween, modifier = Modifier.fillMaxWidth()) {
CardButton(onClick = { hide() }, text = stringResource(id = R.string.btn_cancel)) CardButton(onClick = { dismiss() }, text = stringResource(id = R.string.btn_cancel))
CardButton( CardButton(
onClick = { onClick = {
save(locator.value) save(locator.value)
hide() dismiss()
}, text = stringResource(id = R.string.btn_accept) }, text = stringResource(id = R.string.btn_accept)
) )
} }

Wyświetl plik

@ -5,11 +5,10 @@ import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.grid.GridCells import androidx.compose.foundation.lazy.grid.GridCells
import androidx.compose.foundation.lazy.grid.LazyVerticalGrid import androidx.compose.foundation.lazy.grid.LazyVerticalGrid
import androidx.compose.foundation.lazy.grid.items import androidx.compose.foundation.lazy.grid.itemsIndexed
import androidx.compose.material3.Checkbox import androidx.compose.material3.Checkbox
import androidx.compose.material3.ElevatedCard import androidx.compose.material3.ElevatedCard
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
@ -25,54 +24,49 @@ import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.Dialog
import com.rtbishop.look4sat.presentation.MainTheme import com.rtbishop.look4sat.presentation.MainTheme
private val allModes = listOf( @Preview(showBackground = true)
@Composable
private fun ModesDialogPreview() {
val allModes = listOf(
"AFSK", "AFSK S-Net", "AFSK SALSAT", "AHRPT", "AM", "APT", "BPSK", "BPSK PMT-A3", "AFSK", "AFSK S-Net", "AFSK SALSAT", "AHRPT", "AM", "APT", "BPSK", "BPSK PMT-A3",
"CERTO", "CW", "DQPSK", "DSTAR", "DUV", "FFSK", "FM", "FMN", "FSK", "FSK AX.100 Mode 5", "CERTO", "CW", "DQPSK", "DSTAR", "DUV", "FFSK", "FM", "FMN", "FSK", "FSK AX.100 Mode 5",
"FSK AX.100 Mode 6", "FSK AX.25 G3RUH", "GFSK", "GFSK Rktr", "GMSK", "HRPT", "LoRa", "FSK AX.100 Mode 6", "FSK AX.25 G3RUH", "GFSK", "GFSK Rktr", "GMSK", "HRPT", "LoRa",
"LRPT", "LSB", "MFSK", "MSK", "MSK AX.100 Mode 5", "MSK AX.100 Mode 6", "OFDM", "OQPSK", "LRPT", "LSB", "MFSK", "MSK", "MSK AX.100 Mode 5", "MSK AX.100 Mode 6", "OFDM", "OQPSK",
"PSK", "PSK31", "PSK63", "QPSK", "QPSK31", "QPSK63", "SSTV", "USB", "WSJT" "PSK", "PSK31", "PSK63", "QPSK", "QPSK31", "QPSK63", "SSTV", "USB", "WSJT"
) )
@Preview(showBackground = true)
@Composable
private fun ModesDialogPreview() {
MainTheme { ModesDialog(allModes, listOf("AFSK", "AFSK S-Net"), {}) {} } MainTheme { ModesDialog(allModes, listOf("AFSK", "AFSK S-Net"), {}) {} }
} }
@Composable @Composable
fun ModesDialog(list: List<String>, selected: List<String>, toggle: () -> Unit, click: (String) -> Unit) { fun ModesDialog(items: List<String>, selected: List<String>, dismiss: () -> Unit, select: (String) -> Unit) {
Dialog(onDismissRequest = { toggle() }) { Dialog(onDismissRequest = { dismiss() }) {
ElevatedCard(modifier = Modifier.fillMaxHeight(0.9f)) { ElevatedCard(modifier = Modifier.fillMaxHeight(0.75f)) {
LazyVerticalGrid( LazyVerticalGrid(
columns = GridCells.Fixed(1), columns = GridCells.Adaptive(160.dp),
modifier = Modifier.background(MaterialTheme.colorScheme.background), modifier = Modifier.background(MaterialTheme.colorScheme.background),
horizontalArrangement = Arrangement.spacedBy(1.dp), horizontalArrangement = Arrangement.spacedBy(1.dp),
verticalArrangement = Arrangement.spacedBy(1.dp) verticalArrangement = Arrangement.spacedBy(1.dp)
) { ) {
items(list) { mode -> itemsIndexed(items) { index, item ->
Surface { Surface {
Row(verticalAlignment = Alignment.CenterVertically, Row(verticalAlignment = Alignment.CenterVertically,
modifier = Modifier modifier = Modifier
.background(MaterialTheme.colorScheme.surface) .background(MaterialTheme.colorScheme.surface)
.fillMaxWidth() .clickable { select(item) }) {
.clickable {
click(mode)
toggle()
}) {
Text( Text(
text = mode, text = "$index).",
modifier = Modifier modifier = Modifier.padding(start = 12.dp, end = 6.dp),
.padding(start = 8.dp, end = 6.dp)
.weight(1f),
fontWeight = FontWeight.Normal, fontWeight = FontWeight.Normal,
color = MaterialTheme.colorScheme.secondary
)
Text(
text = item,
modifier = Modifier.weight(1f),
fontWeight = FontWeight.Medium,
maxLines = 1, maxLines = 1,
overflow = TextOverflow.Ellipsis overflow = TextOverflow.Ellipsis
) )
Checkbox( Checkbox(checked = selected.contains(item), onCheckedChange = { select(item) })
checked = selected.contains(mode),
onCheckedChange = null,
modifier = Modifier.padding(6.dp)
)
} }
} }
} }

Wyświetl plik

@ -4,6 +4,7 @@ import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.ElevatedCard import androidx.compose.material3.ElevatedCard
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.OutlinedTextField
@ -15,6 +16,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.Dialog
import com.rtbishop.look4sat.R import com.rtbishop.look4sat.R
import com.rtbishop.look4sat.presentation.CardButton import com.rtbishop.look4sat.presentation.CardButton
@ -27,12 +29,17 @@ private fun PositionDialogPreview() {
} }
@Composable @Composable
fun PositionDialog(lat: Double, lon: Double, hide: () -> Unit, save: (Double, Double) -> Unit) { fun PositionDialog(lat: Double, lon: Double, dismiss: () -> Unit, save: (Double, Double) -> Unit) {
val latValue = rememberSaveable { mutableStateOf(lat.toString()) } val latValue = rememberSaveable { mutableStateOf(lat.toString()) }
val lonValue = rememberSaveable { mutableStateOf(lon.toString()) } val lonValue = rememberSaveable { mutableStateOf(lon.toString()) }
Dialog(onDismissRequest = { hide() }) { val maxWidthModifier = Modifier.fillMaxWidth(1f)
Dialog(onDismissRequest = { dismiss() }) {
ElevatedCard { ElevatedCard {
Column(horizontalAlignment = Alignment.CenterHorizontally, modifier = Modifier.fillMaxWidth(1f)) { Column(
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.spacedBy(12.dp),
modifier = maxWidthModifier.padding(12.dp)
) {
Text( Text(
text = stringResource(id = R.string.position_title), color = MaterialTheme.colorScheme.primary text = stringResource(id = R.string.position_title), color = MaterialTheme.colorScheme.primary
) )
@ -41,9 +48,9 @@ fun PositionDialog(lat: Double, lon: Double, hide: () -> Unit, save: (Double, Do
Text(text = stringResource(id = R.string.position_lon_text)) Text(text = stringResource(id = R.string.position_lon_text))
OutlinedTextField(value = lonValue.value, onValueChange = { lonValue.value = it }) OutlinedTextField(value = lonValue.value, onValueChange = { lonValue.value = it })
Row(horizontalArrangement = Arrangement.SpaceBetween, modifier = Modifier.fillMaxWidth()) { Row(horizontalArrangement = Arrangement.SpaceBetween, modifier = Modifier.fillMaxWidth()) {
CardButton(onClick = { hide() }, text = stringResource(id = R.string.btn_cancel)) CardButton(onClick = { dismiss() }, text = stringResource(id = R.string.btn_cancel))
CardButton( CardButton(
onClick = { saveValues(latValue.value, lonValue.value, hide, save) }, onClick = { saveValues(latValue.value, lonValue.value, dismiss, save) },
text = stringResource(id = R.string.btn_accept) text = stringResource(id = R.string.btn_accept)
) )
} }
@ -52,11 +59,11 @@ fun PositionDialog(lat: Double, lon: Double, hide: () -> Unit, save: (Double, Do
} }
} }
private fun saveValues(lat: String, lon: String, hide: () -> Unit, save: (Double, Double) -> Unit) { private fun saveValues(latValue: String, lonValue: String, dismiss: () -> Unit, save: (Double, Double) -> Unit) {
val latValue = lat.toDoubleOrNull() ?: 0.0 val latitude = latValue.toDoubleOrNull() ?: 0.0
val lonValue = lon.toDoubleOrNull() ?: 0.0 val longitude = lonValue.toDoubleOrNull() ?: 0.0
val newLat = if (latValue > 90) 90.0 else if (latValue < -90) -90.0 else latValue val newLatitude = if (latitude > 90) 90.0 else if (latitude < -90) -90.0 else latitude
val newLon = if (lonValue > 180) 180.0 else if (lonValue < -180) -180.0 else lonValue val newLongitude = if (longitude > 180) 180.0 else if (longitude < -180) -180.0 else longitude
save(newLat, newLon) save(newLatitude, newLongitude)
hide() dismiss()
} }

Wyświetl plik

@ -6,8 +6,9 @@ import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.grid.GridCells
import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.foundation.lazy.grid.LazyVerticalGrid
import androidx.compose.foundation.lazy.grid.itemsIndexed
import androidx.compose.material3.ElevatedCard import androidx.compose.material3.ElevatedCard
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.RadioButton import androidx.compose.material3.RadioButton
@ -31,23 +32,25 @@ private fun TypeDialogPreview() {
} }
@Composable @Composable
fun TypesDialog(list: List<String>, selected: String, toggle: () -> Unit, click: (String) -> Unit) { fun TypesDialog(items: List<String>, selected: String, dismiss: () -> Unit, select: (String) -> Unit) {
val clickAction = { type: String -> val clickAction = { type: String ->
click(type) select(type)
toggle() dismiss()
} }
Dialog(onDismissRequest = { toggle() }) { Dialog(onDismissRequest = { dismiss() }) {
ElevatedCard(modifier = Modifier.fillMaxHeight(0.75f)) { ElevatedCard(modifier = Modifier.fillMaxHeight(0.75f)) {
LazyColumn( LazyVerticalGrid(
columns = GridCells.Adaptive(160.dp),
modifier = Modifier.background(MaterialTheme.colorScheme.background), modifier = Modifier.background(MaterialTheme.colorScheme.background),
horizontalArrangement = Arrangement.spacedBy(1.dp),
verticalArrangement = Arrangement.spacedBy(1.dp) verticalArrangement = Arrangement.spacedBy(1.dp)
) { ) {
itemsIndexed(list) { index, type -> itemsIndexed(items) { index, item ->
Surface { Surface {
Row(verticalAlignment = Alignment.CenterVertically, Row(verticalAlignment = Alignment.CenterVertically,
modifier = Modifier modifier = Modifier
.background(MaterialTheme.colorScheme.surface) .background(MaterialTheme.colorScheme.surface)
.clickable { clickAction(type) }) { .clickable { clickAction(item) }) {
Text( Text(
text = "$index).", text = "$index).",
modifier = Modifier.padding(start = 12.dp, end = 6.dp), modifier = Modifier.padding(start = 12.dp, end = 6.dp),
@ -55,13 +58,13 @@ fun TypesDialog(list: List<String>, selected: String, toggle: () -> Unit, click:
color = MaterialTheme.colorScheme.secondary color = MaterialTheme.colorScheme.secondary
) )
Text( Text(
text = type, text = item,
modifier = Modifier.weight(1f), modifier = Modifier.weight(1f),
fontWeight = FontWeight.Medium, fontWeight = FontWeight.Medium,
maxLines = 1, maxLines = 1,
overflow = TextOverflow.Ellipsis overflow = TextOverflow.Ellipsis
) )
RadioButton(selected = type == selected, onClick = { clickAction(type) }) RadioButton(selected = item == selected, onClick = { clickAction(item) })
} }
} }
} }

Wyświetl plik

@ -50,7 +50,7 @@ fun EntriesScreen(uiState: EntriesUiState, navToPasses: () -> Unit) {
val showDialog = rememberSaveable { mutableStateOf(false) } val showDialog = rememberSaveable { mutableStateOf(false) }
val toggleDialog = { showDialog.value = showDialog.value.not() } val toggleDialog = { showDialog.value = showDialog.value.not() }
if (showDialog.value) { if (showDialog.value) {
TypesDialog(list = uiState.typesList, selected = uiState.currentType, toggleDialog) { TypesDialog(items = uiState.typesList, selected = uiState.currentType, toggleDialog) {
uiState.takeAction(EntriesUiAction.SelectType(it)) uiState.takeAction(EntriesUiAction.SelectType(it))
} }
} }

Wyświetl plik

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M12,2C6.5,2 2,6.5 2,12s4.5,10 10,10s10,-4.5 10,-10S17.5,2 12,2zM16.2,16.2L11,13V7h1.5v5.2l4.5,2.7L16.2,16.2z" />
</vector>

Wyświetl plik

@ -50,7 +50,7 @@
<string name="filter_elev_text">Show passes with max elevation above</string> <string name="filter_elev_text">Show passes with max elevation above</string>
<string name="locator_title">QTH locator settings</string> <string name="locator_title">QTH locator settings</string>
<string name="locator_text">Set station\'s position using your locator</string> <string name="locator_text">Set station\'s position using locator</string>
<string name="locator_hint">QTH</string> <string name="locator_hint">QTH</string>
<string name="modes_title">Select modulation type</string> <string name="modes_title">Select modulation type</string>