refactor: prepend "Ptv" to ptv api structures
This commit is contained in:
parent
ea08db364e
commit
6a55c86e38
6 changed files with 30 additions and 30 deletions
|
|
@ -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<Route?>(null) }
|
||||
var route by remember { mutableStateOf<PtvRoute?>(null) }
|
||||
val polylines = remember { mutableStateListOf<Polyline>() }
|
||||
|
||||
LaunchedEffect(route) {
|
||||
|
|
|
|||
|
|
@ -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),
|
||||
|
|
|
|||
|
|
@ -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<Route>()) }
|
||||
var routes by remember { mutableStateOf(listOf<PtvRoute>()) }
|
||||
Box(modifier = Modifier.fillMaxSize()) {
|
||||
LaunchedEffect(Unit) {
|
||||
val localRoutes = ptvService.routes()
|
||||
|
|
|
|||
|
|
@ -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<moe.lava.banksia.api.ptv.structures.Route>)
|
||||
data class Routes(val routes: List<moe.lava.banksia.api.ptv.structures.PtvRoute>)
|
||||
}
|
||||
|
||||
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<Route> {
|
||||
suspend fun routes(): List<PtvRoute> {
|
||||
val response: Responses.Routes = client.get("routes").body()
|
||||
return response.routes
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<Geopath>,
|
||||
@SerialName("geopath") val geopath: List<PtvGeopath>,
|
||||
) {
|
||||
fun gtfsSubType(): GtfsSubType? {
|
||||
GtfsSubType.entries.forEach {
|
||||
|
|
@ -8,23 +8,23 @@ import kotlinx.serialization.descriptors.SerialDescriptor
|
|||
import kotlinx.serialization.encoding.Decoder
|
||||
import kotlinx.serialization.encoding.Encoder
|
||||
|
||||
private object RouteTypeSerializer : KSerializer<RouteType> {
|
||||
private object PtvRouteTypeSerialiser : KSerializer<PtvRouteType> {
|
||||
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,
|
||||
Loading…
Add table
Add a link
Reference in a new issue