diff --git a/app/src/main/kotlin/org/db3/airmq/features/dashboard/DashboardScreen.kt b/app/src/main/kotlin/org/db3/airmq/features/dashboard/DashboardScreen.kt index 5d49bef..6d7cb6c 100644 --- a/app/src/main/kotlin/org/db3/airmq/features/dashboard/DashboardScreen.kt +++ b/app/src/main/kotlin/org/db3/airmq/features/dashboard/DashboardScreen.kt @@ -1,23 +1,19 @@ package org.db3.airmq.features.dashboard import androidx.compose.foundation.background +import androidx.compose.foundation.border import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.fillMaxHeight 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.layout.width -import androidx.compose.foundation.Image import androidx.compose.foundation.layout.statusBarsPadding import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.verticalScroll -import androidx.compose.ui.layout.ContentScale -import androidx.compose.ui.res.painterResource +import androidx.compose.ui.draw.clip import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect @@ -39,6 +35,8 @@ import org.db3.airmq.features.common.chart.AirMQChart import org.db3.airmq.features.common.metric.MetricGaugePager import org.db3.airmq.features.common.metric.SensorType import org.db3.airmq.ui.theme.AirMQTheme +import org.db3.airmq.ui.theme.DashboardCityChipGradientEnd +import org.db3.airmq.ui.theme.DashboardCityChipGradientStart import org.db3.airmq.ui.theme.LegacyNavGradientEnd import org.db3.airmq.ui.theme.LegacyNavGradientStart @@ -128,55 +126,32 @@ private fun CitySelector( modifier: Modifier = Modifier, onClick: () -> Unit = {} ) { + val chipHeight = 44.dp + val chipShape = RoundedCornerShape(chipHeight / 2) + val chipBrush = Brush.horizontalGradient( + colors = listOf(DashboardCityChipGradientStart, DashboardCityChipGradientEnd) + ) + val borderWidth = 2.dp Box( - modifier = modifier - .fillMaxWidth() - .height(44.dp) - .padding(horizontal = 16.dp) - .clickable(onClick = onClick), + modifier = modifier.fillMaxWidth(), contentAlignment = Alignment.Center ) { - Row( + Box( modifier = Modifier - .height(44.dp) - .fillMaxWidth(), - verticalAlignment = Alignment.CenterVertically + .height(chipHeight) + .border(width = borderWidth, brush = chipBrush, shape = chipShape) + .clip(chipShape) + .clickable(onClick = onClick), + contentAlignment = Alignment.Center ) { - Image( - painter = painterResource(R.drawable.city_left), - contentDescription = null, - modifier = Modifier - .width(22.dp) - .fillMaxHeight() - ) - Box( - modifier = Modifier - .weight(1f) - .height(44.dp) - .padding(horizontal = 4.dp), - contentAlignment = Alignment.Center - ) { - Image( - painter = painterResource(R.drawable.city_middle), - contentDescription = null, - modifier = Modifier.fillMaxSize(), - contentScale = ContentScale.FillBounds - ) - Text( - text = city, - color = Color.White, - fontSize = 22.sp, - fontWeight = FontWeight.Medium, - maxLines = 1, - overflow = TextOverflow.Ellipsis - ) - } - Image( - painter = painterResource(R.drawable.city_right), - contentDescription = null, - modifier = Modifier - .width(22.dp) - .fillMaxHeight() + Text( + text = city, + color = Color.White, + fontSize = 22.sp, + fontWeight = FontWeight.Medium, + maxLines = 1, + overflow = TextOverflow.Ellipsis, + modifier = Modifier.padding(horizontal = 14.dp) ) } } diff --git a/app/src/main/kotlin/org/db3/airmq/ui/theme/Color.kt b/app/src/main/kotlin/org/db3/airmq/ui/theme/Color.kt index aa64181..3320945 100644 --- a/app/src/main/kotlin/org/db3/airmq/ui/theme/Color.kt +++ b/app/src/main/kotlin/org/db3/airmq/ui/theme/Color.kt @@ -21,6 +21,10 @@ val LegacyNavContainer = Color(0xFF295989) val LegacyNavGradientStart = Color(0xFF005BAB) val LegacyNavGradientEnd = Color(0xFF4997D1) +/** Dashboard city selector pill (legacy vectors city_left / city_right / city_middle) */ +val DashboardCityChipGradientStart = Color(0xFF3EDEA5) +val DashboardCityChipGradientEnd = Color(0xFF33B6EE) + val LegacyButtonContained = Color(0xFF135CA5) val LegacyButtonContainedDisabledOverlay = Color(0x1F000000) val LegacyButtonPressedOverlayDark = Color(0x33000000) diff --git a/app/src/main/res/drawable/city_left.xml b/app/src/main/res/drawable/city_left.xml deleted file mode 100644 index 70975e7..0000000 --- a/app/src/main/res/drawable/city_left.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - diff --git a/app/src/main/res/drawable/city_middle.xml b/app/src/main/res/drawable/city_middle.xml deleted file mode 100644 index 042a82d..0000000 --- a/app/src/main/res/drawable/city_middle.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/city_right.xml b/app/src/main/res/drawable/city_right.xml deleted file mode 100644 index 993aeeb..0000000 --- a/app/src/main/res/drawable/city_right.xml +++ /dev/null @@ -1,9 +0,0 @@ - - -