From 6a55c86e38cfe4ab490facab5afbb62565c60e68 Mon Sep 17 00:00:00 2001 From: LavaDesu Date: Tue, 29 Apr 2025 20:40:45 +1000 Subject: [PATCH] refactor: prepend "Ptv" to ptv api structures --- .../commonMain/kotlin/moe/lava/banksia/App.kt | 4 ++-- .../banksia/api/ptv/structures/RouteType.kt | 18 +++++++++--------- .../kotlin/moe/lava/banksia/ui/Searcher.kt | 6 +++--- .../moe/lava/banksia/api/ptv/PtvService.kt | 10 +++++----- .../ptv/structures/{Route.kt => PtvRoute.kt} | 8 ++++---- .../{RouteType.kt => PtvRouteType.kt} | 14 +++++++------- 6 files changed, 30 insertions(+), 30 deletions(-) rename shared/src/commonMain/kotlin/moe/lava/banksia/api/ptv/structures/{Route.kt => PtvRoute.kt} (88%) rename shared/src/commonMain/kotlin/moe/lava/banksia/api/ptv/structures/{RouteType.kt => PtvRouteType.kt} (64%) diff --git a/composeApp/src/commonMain/kotlin/moe/lava/banksia/App.kt b/composeApp/src/commonMain/kotlin/moe/lava/banksia/App.kt index 0c31c32..3004f54 100644 --- a/composeApp/src/commonMain/kotlin/moe/lava/banksia/App.kt +++ b/composeApp/src/commonMain/kotlin/moe/lava/banksia/App.kt @@ -36,7 +36,7 @@ import dev.icerock.moko.geo.compose.rememberLocationTrackerFactory import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.launch import moe.lava.banksia.api.ptv.PtvService -import moe.lava.banksia.api.ptv.structures.Route +import moe.lava.banksia.api.ptv.structures.PtvRoute import moe.lava.banksia.api.ptv.structures.getProperties import moe.lava.banksia.native.BanksiaTheme import moe.lava.banksia.native.maps.Maps @@ -113,7 +113,7 @@ fun App() { } } - var route by remember { mutableStateOf(null) } + var route by remember { mutableStateOf(null) } val polylines = remember { mutableStateListOf() } LaunchedEffect(route) { diff --git a/composeApp/src/commonMain/kotlin/moe/lava/banksia/api/ptv/structures/RouteType.kt b/composeApp/src/commonMain/kotlin/moe/lava/banksia/api/ptv/structures/RouteType.kt index 2490e30..147054d 100644 --- a/composeApp/src/commonMain/kotlin/moe/lava/banksia/api/ptv/structures/RouteType.kt +++ b/composeApp/src/commonMain/kotlin/moe/lava/banksia/api/ptv/structures/RouteType.kt @@ -25,25 +25,25 @@ data class RouteTypeProperties( val background: DrawableResource, val icon: DrawableResource, ) -fun RouteType.getProperties(): RouteTypeProperties { +fun PtvRouteType.getProperties(): RouteTypeProperties { val colour = when (this) { - RouteType.TRAIN -> Color(0xFF0072CE) - RouteType.TRAM -> Color(0xFF78BE20) - RouteType.BUS, RouteType.NIGHT_BUS -> Color(0xFFFF8200) - RouteType.VLINE -> Color(0xFF8F1A95) + PtvRouteType.TRAIN -> Color(0xFF0072CE) + PtvRouteType.TRAM -> Color(0xFF78BE20) + PtvRouteType.BUS, PtvRouteType.NIGHT_BUS -> Color(0xFFFF8200) + PtvRouteType.VLINE -> Color(0xFF8F1A95) } val (drawable, background, icon) = when (this) { - RouteType.TRAM -> Triple( + PtvRouteType.TRAM -> Triple( Res.drawable.tram, Res.drawable.tram_background, Res.drawable.tram_icon) - RouteType.TRAIN, RouteType.VLINE -> Triple( + PtvRouteType.TRAIN, PtvRouteType.VLINE -> Triple( Res.drawable.train, Res.drawable.train_background, Res.drawable.train_icon) - RouteType.BUS, RouteType.NIGHT_BUS -> Triple( + PtvRouteType.BUS, PtvRouteType.NIGHT_BUS -> Triple( Res.drawable.bus, Res.drawable.bus_background, Res.drawable.bus_icon) } return RouteTypeProperties(colour, drawable, background, icon) } @Composable -fun RouteType.ComposableIcon() { +fun PtvRouteType.ComposableIcon() { val properties = this.getProperties() Image( painter = painterResource(properties.icon), diff --git a/composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/Searcher.kt b/composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/Searcher.kt index 2cc82f6..2e88300 100644 --- a/composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/Searcher.kt +++ b/composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/Searcher.kt @@ -30,7 +30,7 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp import moe.lava.banksia.api.ptv.PtvService import moe.lava.banksia.api.ptv.structures.ComposableIcon -import moe.lava.banksia.api.ptv.structures.Route +import moe.lava.banksia.api.ptv.structures.PtvRoute @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -40,7 +40,7 @@ fun Searcher( onExpandedChange: (Boolean) -> Unit, text: String, onTextChange: (String) -> Unit, - onRouteChange: (Route) -> Unit, + onRouteChange: (PtvRoute) -> Unit, ) { val animatedPadding by animateDpAsState( if (expanded) { @@ -50,7 +50,7 @@ fun Searcher( }, label = "padding" ) - var routes by remember { mutableStateOf(listOf()) } + var routes by remember { mutableStateOf(listOf()) } Box(modifier = Modifier.fillMaxSize()) { LaunchedEffect(Unit) { val localRoutes = ptvService.routes() diff --git a/shared/src/commonMain/kotlin/moe/lava/banksia/api/ptv/PtvService.kt b/shared/src/commonMain/kotlin/moe/lava/banksia/api/ptv/PtvService.kt index 652b0ba..d5dce74 100644 --- a/shared/src/commonMain/kotlin/moe/lava/banksia/api/ptv/PtvService.kt +++ b/shared/src/commonMain/kotlin/moe/lava/banksia/api/ptv/PtvService.kt @@ -13,15 +13,15 @@ import io.ktor.serialization.kotlinx.json.json import kotlinx.serialization.Serializable import kotlinx.serialization.json.Json import moe.lava.banksia.Constants -import moe.lava.banksia.api.ptv.structures.Route +import moe.lava.banksia.api.ptv.structures.PtvRoute import moe.lava.banksia.log import okio.ByteString.Companion.encodeUtf8 object Responses { @Serializable - data class Route(val route: moe.lava.banksia.api.ptv.structures.Route) + data class Route(val route: moe.lava.banksia.api.ptv.structures.PtvRoute) @Serializable - data class Routes(val routes: List) + data class Routes(val routes: List) } class PtvService { @@ -47,7 +47,7 @@ class PtvService { } } - suspend fun route(id: Int, includeGeopath: Boolean = false): Route { + suspend fun route(id: Int, includeGeopath: Boolean = false): PtvRoute { val response: Responses.Route = client.get("routes") { url { appendPathSegments(id.toString()) @@ -57,7 +57,7 @@ class PtvService { return response.route } - suspend fun routes(): List { + suspend fun routes(): List { val response: Responses.Routes = client.get("routes").body() return response.routes } diff --git a/shared/src/commonMain/kotlin/moe/lava/banksia/api/ptv/structures/Route.kt b/shared/src/commonMain/kotlin/moe/lava/banksia/api/ptv/structures/PtvRoute.kt similarity index 88% rename from shared/src/commonMain/kotlin/moe/lava/banksia/api/ptv/structures/Route.kt rename to shared/src/commonMain/kotlin/moe/lava/banksia/api/ptv/structures/PtvRoute.kt index 8cfe330..19bfdd0 100644 --- a/shared/src/commonMain/kotlin/moe/lava/banksia/api/ptv/structures/Route.kt +++ b/shared/src/commonMain/kotlin/moe/lava/banksia/api/ptv/structures/PtvRoute.kt @@ -16,7 +16,7 @@ enum class GtfsSubType(val value: Int) { } @Serializable -data class Geopath( +data class PtvGeopath( @SerialName("direction_id") val directionId: Int, @SerialName("valid_from") val validFrom: String, @SerialName("valid_to") val validTo: String, @@ -24,13 +24,13 @@ data class Geopath( ) @Serializable -data class Route( - @SerialName("route_type") val routeType: RouteType, +data class PtvRoute( + @SerialName("route_type") val routeType: PtvRouteType, @SerialName("route_id") val routeId: Int, @SerialName("route_number") val routeNumber: String, @SerialName("route_name") val routeName: String, @SerialName("route_gtfs_id") val routeGtfsId: String, - @SerialName("geopath") val geopath: List, + @SerialName("geopath") val geopath: List, ) { fun gtfsSubType(): GtfsSubType? { GtfsSubType.entries.forEach { diff --git a/shared/src/commonMain/kotlin/moe/lava/banksia/api/ptv/structures/RouteType.kt b/shared/src/commonMain/kotlin/moe/lava/banksia/api/ptv/structures/PtvRouteType.kt similarity index 64% rename from shared/src/commonMain/kotlin/moe/lava/banksia/api/ptv/structures/RouteType.kt rename to shared/src/commonMain/kotlin/moe/lava/banksia/api/ptv/structures/PtvRouteType.kt index 3f5cb9f..4cfc65a 100644 --- a/shared/src/commonMain/kotlin/moe/lava/banksia/api/ptv/structures/RouteType.kt +++ b/shared/src/commonMain/kotlin/moe/lava/banksia/api/ptv/structures/PtvRouteType.kt @@ -8,23 +8,23 @@ import kotlinx.serialization.descriptors.SerialDescriptor import kotlinx.serialization.encoding.Decoder import kotlinx.serialization.encoding.Encoder -private object RouteTypeSerializer : KSerializer { +private object PtvRouteTypeSerialiser : KSerializer { override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor( - RouteType::class.qualifiedName!!, + PtvRouteType::class.qualifiedName!!, PrimitiveKind.INT) - override fun serialize(encoder: Encoder, value: RouteType) { + override fun serialize(encoder: Encoder, value: PtvRouteType) { encoder.encodeInt(value.ordinal) } - override fun deserialize(decoder: Decoder): RouteType { + override fun deserialize(decoder: Decoder): PtvRouteType { val index = decoder.decodeInt() - return RouteType.entries[index] + return PtvRouteType.entries[index] } } -@Serializable(with = RouteTypeSerializer::class) -enum class RouteType { +@Serializable(with = PtvRouteTypeSerialiser::class) +enum class PtvRouteType { TRAIN, TRAM, BUS,