Skip to content

Commit

Permalink
UI: Add transportModeBackgroundColor function and adjust LegView back…
Browse files Browse the repository at this point in the history
…ground (#266)
  • Loading branch information
ksharma-xyz authored Oct 30, 2024
1 parent dfc452d commit bbb95e4
Show file tree
Hide file tree
Showing 2 changed files with 101 additions and 5 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
package xyz.ksharma.krail.trip.planner.ui.components

import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.runtime.Composable
import androidx.compose.ui.graphics.Color
import xyz.ksharma.krail.trip.planner.ui.state.TransportMode

/**
* Converts a hexadecimal color string to a Compose Color object.
Expand Down Expand Up @@ -34,3 +37,20 @@ private fun String.isValidHexColorCode(): Boolean {
val hexColorRegex = Regex("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})\$")
return hexColorRegex.matches(this)
}

/**
* Will return a color based on the transport mode and the current theme (light / dark).
*
* @throws IllegalArgumentException if the provided string is not a valid
* hexadecimal color code.
*
* @return A Compose Color object representing the provided hex color code.
*/
@Composable
internal fun transportModeBackgroundColor(transportMode: TransportMode): Color {
return if (isSystemInDarkTheme()) {
transportMode.colorCode.hexToComposeColor().copy(alpha = 0.45f)
} else {
transportMode.colorCode.hexToComposeColor().copy(alpha = 0.15f)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,7 @@ fun LegView(
modifier = modifier
.fillMaxWidth()
.background(
color = transportModeLine.transportMode.colorCode
.hexToComposeColor()
.copy(alpha = 0.1f),
color = transportModeBackgroundColor(transportMode = transportModeLine.transportMode),
shape = RoundedCornerShape(12.dp),
)
.clickable(
Expand Down Expand Up @@ -282,7 +280,7 @@ private fun PreviewLegView() {
}
}

@Preview
@PreviewLightDark
@Preview(fontScale = 2f)
@Composable
private fun PreviewLegViewTwoStops() {
Expand All @@ -291,7 +289,7 @@ private fun PreviewLegViewTwoStops() {
duration = "1h 30m",
routeText = "towards AVC via XYZ",
transportModeLine = TransportModeLine(
transportMode = TransportMode.Bus(),
transportMode = TransportMode.Train(),
lineName = "700",
),
stops = listOf(
Expand All @@ -309,6 +307,84 @@ private fun PreviewLegViewTwoStops() {
}
}

@PreviewLightDark
@Composable
private fun PreviewLegViewMetro() {
KrailTheme {
LegView(
duration = "1h 30m",
routeText = "towards AVC via XYZ",
transportModeLine = TransportModeLine(
transportMode = TransportMode.Metro(),
lineName = "M1",
),
stops = listOf(
TimeTableState.JourneyCardInfo.Stop(
time = "12:00 am",
name = "XYZ Station, Platform 1",
),
TimeTableState.JourneyCardInfo.Stop(
time = "01:00 am",
name = "DEF Station, Platform 3",
),
).toImmutableList(),
modifier = Modifier.background(KrailTheme.colors.background),
)
}
}

@PreviewLightDark
@Composable
private fun PreviewLegViewFerry() {
KrailTheme {
LegView(
duration = "1h 30m",
routeText = "towards AVC via XYZ",
transportModeLine = TransportModeLine(
transportMode = TransportMode.Ferry(),
lineName = "F2",
),
stops = listOf(
TimeTableState.JourneyCardInfo.Stop(
time = "12:00 am",
name = "XYZ Station, Platform 1",
),
TimeTableState.JourneyCardInfo.Stop(
time = "01:00 am",
name = "DEF Station, Platform 3",
),
).toImmutableList(),
modifier = Modifier.background(KrailTheme.colors.background),
)
}
}

@PreviewLightDark
@Composable
private fun PreviewLegViewLightRail() {
KrailTheme {
LegView(
duration = "1h 30m",
routeText = "towards AVC via XYZ",
transportModeLine = TransportModeLine(
transportMode = TransportMode.LightRail(),
lineName = "L1",
),
stops = listOf(
TimeTableState.JourneyCardInfo.Stop(
time = "12:00 am",
name = "XYZ Station, Platform 1",
),
TimeTableState.JourneyCardInfo.Stop(
time = "01:00 am",
name = "DEF Station, Platform 3",
),
).toImmutableList(),
modifier = Modifier.background(KrailTheme.colors.background),
)
}
}

@PreviewLightDark
@Composable
private fun PreviewStopsRow() {
Expand Down

0 comments on commit bbb95e4

Please sign in to comment.