refactor(ui): split into shared, maps, and main modules
This commit is contained in:
parent
aab03ced07
commit
a79c95829e
43 changed files with 539 additions and 378 deletions
|
|
@ -20,7 +20,6 @@ kotlin {
|
|||
freeCompilerArgs.add("-opt-in=kotlin.time.ExperimentalTime")
|
||||
}
|
||||
|
||||
iosX64()
|
||||
iosArm64()
|
||||
iosSimulatorArm64()
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,44 @@
|
|||
package moe.lava.banksia.client.data.stoptime
|
||||
|
||||
import moe.lava.banksia.data.ptv.PtvService
|
||||
import moe.lava.banksia.model.RouteType
|
||||
import moe.lava.banksia.model.StopTime
|
||||
|
||||
class StopTimePtvDataSource(
|
||||
private val ptvService: PtvService,
|
||||
) {
|
||||
suspend fun getForStop(type: RouteType, stopId: String): List<StopTime> {
|
||||
return listOf()
|
||||
// val res = ptvService.departures(type, stopId)
|
||||
// // Map<
|
||||
// // Pair<DirectionId, RouteId>,
|
||||
// // Pair<DirectionName, List<DepartureTimes>>
|
||||
// // >
|
||||
// val timetable = HashMap<Pair<Int, Int>, Pair<String, MutableList<String>>>()
|
||||
// res.departures.forEach { dep ->
|
||||
// val key = Pair(dep.directionId, dep.routeId)
|
||||
// val direction = ptvService.direction(dep.directionId, dep.routeId)
|
||||
// val route = res.routes[dep.routeId.toString()]
|
||||
// val prefix = route?.let { if (it.routeNumber == "") "" else "${it.routeNumber} - " } ?: ""
|
||||
// val element = timetable.getOrPut(key) { Pair(prefix + direction.directionName, mutableListOf()) }.second
|
||||
// if (element.size >= 5)
|
||||
// return@forEach
|
||||
//
|
||||
// val date = Instant.parse(dep.estimatedDepartureUtc ?: dep.scheduledDepartureUtc)
|
||||
// val min = (date - Clock.System.now()).inWholeMinutes
|
||||
// if (min <= -5)
|
||||
// return@forEach
|
||||
// if (min >= 65)
|
||||
// element.add("${((min + 30.0) / 60.0).toInt()}hr")
|
||||
// else
|
||||
// element.add("${min}mn")
|
||||
// }
|
||||
//
|
||||
// val departures = timetable.values.sortedBy { it.first }.map { (name, list) ->
|
||||
// if (list.isEmpty())
|
||||
// InfoPanelState.Stop.Departure(name, "No departures")
|
||||
// else
|
||||
// InfoPanelState.Stop.Departure(name, list.joinToString(" | "))
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
|
@ -12,8 +12,10 @@ import moe.lava.banksia.client.data.route.RouteLocalDataSource
|
|||
import moe.lava.banksia.client.data.route.RouteRemoteDataSource
|
||||
import moe.lava.banksia.client.data.stop.StopLocalDataSource
|
||||
import moe.lava.banksia.client.data.stop.StopRemoteDataSource
|
||||
import moe.lava.banksia.client.data.stoptime.StopTimePtvDataSource
|
||||
import moe.lava.banksia.client.repository.RouteRepository
|
||||
import moe.lava.banksia.client.repository.StopRepository
|
||||
import moe.lava.banksia.client.repository.StopTimeRepository
|
||||
import moe.lava.banksia.data.ptv.PtvService
|
||||
import moe.lava.banksia.util.log
|
||||
import org.koin.core.module.dsl.singleOf
|
||||
|
|
@ -46,8 +48,10 @@ val ClientModule = module {
|
|||
singleOf(::RouteRemoteDataSource)
|
||||
singleOf(::StopLocalDataSource)
|
||||
singleOf(::StopRemoteDataSource)
|
||||
singleOf(::StopTimePtvDataSource)
|
||||
|
||||
// Repositories
|
||||
singleOf(::RouteRepository)
|
||||
singleOf(::StopRepository)
|
||||
singleOf(::StopTimeRepository)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,13 @@
|
|||
package moe.lava.banksia.client.repository
|
||||
|
||||
import moe.lava.banksia.client.data.stoptime.StopTimePtvDataSource
|
||||
import moe.lava.banksia.model.StopTime
|
||||
|
||||
class StopTimeRepository(
|
||||
private val ptv: StopTimePtvDataSource,
|
||||
) {
|
||||
// TODO
|
||||
suspend fun getForStop(id: String): List<StopTime> {
|
||||
return listOf()
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue