refactor: shared -> core

This commit is contained in:
Cilly Leang 2026-04-02 01:57:08 +11:00
parent 104a77b27e
commit c912723c78
Signed by: cilly
GPG key ID: 6500251E087653C9
112 changed files with 133 additions and 140 deletions

2
.gitignore vendored
View file

@ -18,6 +18,6 @@ captures
**/xcshareddata/WorkspaceSettings.xcsettings **/xcshareddata/WorkspaceSettings.xcsettings
secrets.properties secrets.properties
shared/src/commonMain/kotlin/moe/lava/banksia/Constants.kt /core/src/commonMain/kotlin/moe/lava/banksia/core/Constants.kt
/data/ /data/
/data /data

View file

@ -14,7 +14,7 @@ room {
kotlin { kotlin {
android { android {
namespace = "moe.lava.banksia.shared" namespace = "moe.lava.banksia.core"
compileSdk = libs.versions.android.compileSdk.get().toInt() compileSdk = libs.versions.android.compileSdk.get().toInt()
compilerOptions { compilerOptions {

View file

@ -42,8 +42,8 @@ kotlin {
implementation(libs.kotlinx.serialization.json) implementation(libs.kotlinx.serialization.json)
implementation(libs.kotlinx.serialization.protobuf) implementation(libs.kotlinx.serialization.protobuf)
implementation(projects.shared) implementation(projects.core)
implementation(projects.shared.room) implementation(projects.core.room)
} }
iosMain.dependencies { iosMain.dependencies {
implementation(libs.ktor.client.darwin) implementation(libs.ktor.client.darwin)

View file

@ -7,7 +7,7 @@ import io.ktor.client.plugins.defaultRequest
import io.ktor.client.plugins.plugin import io.ktor.client.plugins.plugin
import io.ktor.serialization.kotlinx.json.json import io.ktor.serialization.kotlinx.json.json
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import moe.lava.banksia.Constants import moe.lava.banksia.core.Constants
import moe.lava.banksia.core.data.repositories.RouteRepository import moe.lava.banksia.core.data.repositories.RouteRepository
import moe.lava.banksia.core.data.repositories.StopRepository import moe.lava.banksia.core.data.repositories.StopRepository
import moe.lava.banksia.core.data.repositories.StopTimeRepository import moe.lava.banksia.core.data.repositories.StopTimeRepository
@ -18,8 +18,8 @@ import moe.lava.banksia.core.data.sources.stop.StopRemoteDataSource
import moe.lava.banksia.core.data.sources.stoptime.StopTimeLocalDataSource import moe.lava.banksia.core.data.sources.stoptime.StopTimeLocalDataSource
import moe.lava.banksia.core.data.sources.stoptime.StopTimeRemoteDataSource import moe.lava.banksia.core.data.sources.stoptime.StopTimeRemoteDataSource
import moe.lava.banksia.core.room.roomDiModule import moe.lava.banksia.core.room.roomDiModule
import moe.lava.banksia.core.util.log
import moe.lava.banksia.data.ptv.PtvService import moe.lava.banksia.data.ptv.PtvService
import moe.lava.banksia.util.log
import org.koin.core.module.dsl.singleOf import org.koin.core.module.dsl.singleOf
import org.koin.dsl.module import org.koin.dsl.module

View file

@ -2,7 +2,7 @@ package moe.lava.banksia.core.data.repositories
import moe.lava.banksia.core.data.sources.stoptime.StopTimeLocalDataSource import moe.lava.banksia.core.data.sources.stoptime.StopTimeLocalDataSource
import moe.lava.banksia.core.data.sources.stoptime.StopTimeRemoteDataSource import moe.lava.banksia.core.data.sources.stoptime.StopTimeRemoteDataSource
import moe.lava.banksia.model.StopTimeDated import moe.lava.banksia.core.model.StopTimeDated
class StopTimeRepository internal constructor( class StopTimeRepository internal constructor(
private val local: StopTimeLocalDataSource, private val local: StopTimeLocalDataSource,

View file

@ -1,8 +1,8 @@
package moe.lava.banksia.core.data.sources.route package moe.lava.banksia.core.data.sources.route
import moe.lava.banksia.core.model.Route
import moe.lava.banksia.core.room.dao.RouteDao import moe.lava.banksia.core.room.dao.RouteDao
import moe.lava.banksia.core.room.entity.asEntity import moe.lava.banksia.core.room.entity.asEntity
import moe.lava.banksia.model.Route
internal class RouteLocalDataSource(private val dao: RouteDao) { internal class RouteLocalDataSource(private val dao: RouteDao) {
suspend fun get(id: String) = dao.get(id) suspend fun get(id: String) = dao.get(id)

View file

@ -3,7 +3,7 @@ package moe.lava.banksia.core.data.sources.route
import io.ktor.client.HttpClient import io.ktor.client.HttpClient
import io.ktor.client.call.body import io.ktor.client.call.body
import io.ktor.client.request.get import io.ktor.client.request.get
import moe.lava.banksia.model.Route import moe.lava.banksia.core.model.Route
internal class RouteRemoteDataSource(val client: HttpClient) { internal class RouteRemoteDataSource(val client: HttpClient) {
suspend fun get(id: String) = client.get("routes/${id}").body<Route>() suspend fun get(id: String) = client.get("routes/${id}").body<Route>()

View file

@ -1,9 +1,9 @@
package moe.lava.banksia.core.data.sources.stop package moe.lava.banksia.core.data.sources.stop
import moe.lava.banksia.core.model.Stop
import moe.lava.banksia.core.room.dao.RouteDao import moe.lava.banksia.core.room.dao.RouteDao
import moe.lava.banksia.core.room.dao.StopDao import moe.lava.banksia.core.room.dao.StopDao
import moe.lava.banksia.core.room.entity.asEntity import moe.lava.banksia.core.room.entity.asEntity
import moe.lava.banksia.model.Stop
internal class StopLocalDataSource(private val dao: StopDao, private val routeDao: RouteDao) { internal class StopLocalDataSource(private val dao: StopDao, private val routeDao: RouteDao) {
suspend fun get(id: String) = dao.get(id) suspend fun get(id: String) = dao.get(id)

View file

@ -3,7 +3,7 @@ package moe.lava.banksia.core.data.sources.stop
import io.ktor.client.HttpClient import io.ktor.client.HttpClient
import io.ktor.client.call.body import io.ktor.client.call.body
import io.ktor.client.request.get import io.ktor.client.request.get
import moe.lava.banksia.model.Stop import moe.lava.banksia.core.model.Stop
internal class StopRemoteDataSource(val client: HttpClient) { internal class StopRemoteDataSource(val client: HttpClient) {
suspend fun get(id: String) = client.get("stops/${id}").body<Stop>() suspend fun get(id: String) = client.get("stops/${id}").body<Stop>()

View file

@ -3,10 +3,10 @@ package moe.lava.banksia.core.data.sources.stoptime
import kotlinx.datetime.LocalDate import kotlinx.datetime.LocalDate
import kotlinx.datetime.TimeZone import kotlinx.datetime.TimeZone
import kotlinx.datetime.todayIn import kotlinx.datetime.todayIn
import moe.lava.banksia.core.model.StopTimeDated
import moe.lava.banksia.core.model.atDate
import moe.lava.banksia.core.room.dao.StopTimeDao import moe.lava.banksia.core.room.dao.StopTimeDao
import moe.lava.banksia.model.StopTimeDated import moe.lava.banksia.core.util.serialise
import moe.lava.banksia.model.atDate
import moe.lava.banksia.util.serialise
import kotlin.time.Clock import kotlin.time.Clock
internal class StopTimeLocalDataSource( internal class StopTimeLocalDataSource(

View file

@ -7,7 +7,7 @@ import io.ktor.client.request.parameter
import kotlinx.datetime.LocalDate import kotlinx.datetime.LocalDate
import kotlinx.datetime.TimeZone import kotlinx.datetime.TimeZone
import kotlinx.datetime.todayIn import kotlinx.datetime.todayIn
import moe.lava.banksia.model.StopTimeDated import moe.lava.banksia.core.model.StopTimeDated
import kotlin.time.Clock import kotlin.time.Clock
internal class StopTimeRemoteDataSource( internal class StopTimeRemoteDataSource(

View file

@ -4,7 +4,7 @@ import io.ktor.client.HttpClient
import kotlinx.datetime.DayOfWeek import kotlinx.datetime.DayOfWeek
import kotlinx.datetime.TimeZone import kotlinx.datetime.TimeZone
import kotlinx.datetime.todayIn import kotlinx.datetime.todayIn
import moe.lava.banksia.model.Trip import moe.lava.banksia.core.model.Trip
import kotlin.time.Clock import kotlin.time.Clock
internal class TripRemoteDataSource( internal class TripRemoteDataSource(

View file

@ -41,7 +41,7 @@ kotlin {
implementation(libs.room.runtime) implementation(libs.room.runtime)
implementation(libs.sqlite.bundled) implementation(libs.sqlite.bundled)
implementation(projects.shared) implementation(projects.core)
} }
} }
} }

View file

@ -1,7 +1,7 @@
package moe.lava.banksia.core.room.converter package moe.lava.banksia.core.room.converter
import androidx.room.TypeConverter import androidx.room.TypeConverter
import moe.lava.banksia.model.RouteType import moe.lava.banksia.core.model.RouteType
object RouteTypeConverter { object RouteTypeConverter {
@TypeConverter @TypeConverter

View file

@ -1,8 +1,8 @@
package moe.lava.banksia.core.room.converter package moe.lava.banksia.core.room.converter
import androidx.room.TypeConverter import androidx.room.TypeConverter
import moe.lava.banksia.model.ShapePath import moe.lava.banksia.core.model.ShapePath
import moe.lava.banksia.util.Point import moe.lava.banksia.core.util.Point
object ShapePathConverter { object ShapePathConverter {
@TypeConverter @TypeConverter

View file

@ -2,8 +2,8 @@ package moe.lava.banksia.core.room.entity
import androidx.room.Entity import androidx.room.Entity
import androidx.room.PrimaryKey import androidx.room.PrimaryKey
import moe.lava.banksia.model.Route import moe.lava.banksia.core.model.Route
import moe.lava.banksia.model.RouteType import moe.lava.banksia.core.model.RouteType
@Entity("Route") @Entity("Route")
data class RouteEntity( data class RouteEntity(

View file

@ -4,9 +4,9 @@ import androidx.room.ColumnInfo
import androidx.room.Entity import androidx.room.Entity
import androidx.room.PrimaryKey import androidx.room.PrimaryKey
import kotlinx.datetime.LocalDate import kotlinx.datetime.LocalDate
import moe.lava.banksia.model.Service import moe.lava.banksia.core.model.Service
import moe.lava.banksia.util.deserialiseDaysBitflag import moe.lava.banksia.core.util.deserialiseDaysBitflag
import moe.lava.banksia.util.serialise import moe.lava.banksia.core.util.serialise
@Entity("Service") @Entity("Service")
data class ServiceEntity( data class ServiceEntity(

View file

@ -3,7 +3,7 @@ package moe.lava.banksia.core.room.entity
import androidx.room.ColumnInfo import androidx.room.ColumnInfo
import androidx.room.Entity import androidx.room.Entity
import kotlinx.datetime.LocalDate import kotlinx.datetime.LocalDate
import moe.lava.banksia.model.ServiceException import moe.lava.banksia.core.model.ServiceException
@Entity( @Entity(
"ServiceException", "ServiceException",

View file

@ -3,9 +3,9 @@ package moe.lava.banksia.core.room.entity
import androidx.room.Entity import androidx.room.Entity
import androidx.room.PrimaryKey import androidx.room.PrimaryKey
import androidx.room.TypeConverters import androidx.room.TypeConverters
import moe.lava.banksia.core.model.Shape
import moe.lava.banksia.core.model.ShapePath
import moe.lava.banksia.core.room.converter.ShapePathConverter import moe.lava.banksia.core.room.converter.ShapePathConverter
import moe.lava.banksia.model.Shape
import moe.lava.banksia.model.ShapePath
@Entity("Shape") @Entity("Shape")
@TypeConverters(ShapePathConverter::class) @TypeConverters(ShapePathConverter::class)

View file

@ -5,8 +5,8 @@ import androidx.room.Entity
import androidx.room.ForeignKey import androidx.room.ForeignKey
import androidx.room.ForeignKey.Companion.SET_NULL import androidx.room.ForeignKey.Companion.SET_NULL
import androidx.room.PrimaryKey import androidx.room.PrimaryKey
import moe.lava.banksia.model.Stop import moe.lava.banksia.core.model.Stop
import moe.lava.banksia.util.Point import moe.lava.banksia.core.util.Point
@Entity( @Entity(
"Stop", "Stop",

View file

@ -5,9 +5,9 @@ import androidx.room.ForeignKey
import androidx.room.ForeignKey.Companion.CASCADE import androidx.room.ForeignKey.Companion.CASCADE
import androidx.room.Index import androidx.room.Index
import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.ExperimentalSerializationApi
import moe.lava.banksia.model.FutureTime import moe.lava.banksia.core.model.FutureTime
import moe.lava.banksia.model.FutureTime.Companion.asInt import moe.lava.banksia.core.model.FutureTime.Companion.asInt
import moe.lava.banksia.model.StopTime import moe.lava.banksia.core.model.StopTime
@Entity( @Entity(
"StopTime", "StopTime",

View file

@ -6,7 +6,7 @@ import androidx.room.ForeignKey
import androidx.room.ForeignKey.Companion.CASCADE import androidx.room.ForeignKey.Companion.CASCADE
import androidx.room.Index import androidx.room.Index
import androidx.room.PrimaryKey import androidx.room.PrimaryKey
import moe.lava.banksia.model.Trip import moe.lava.banksia.core.model.Trip
@Entity( @Entity(
"Trip", "Trip",

View file

@ -2,7 +2,7 @@ package moe.lava.banksia.core.room.entity
import androidx.room.Entity import androidx.room.Entity
import androidx.room.PrimaryKey import androidx.room.PrimaryKey
import moe.lava.banksia.model.VersionMetadata import moe.lava.banksia.core.model.VersionMetadata
@Entity( @Entity(
"VersionMetadata", "VersionMetadata",

View file

@ -1,4 +1,4 @@
package moe.lava.banksia.util package moe.lava.banksia.core.util
import android.util.Log import android.util.Log

View file

@ -1,4 +1,4 @@
package moe.lava.banksia.model package moe.lava.banksia.core.model
import kotlinx.datetime.DateTimeUnit import kotlinx.datetime.DateTimeUnit
import kotlinx.datetime.LocalDate import kotlinx.datetime.LocalDate
@ -12,7 +12,7 @@ import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor
import kotlinx.serialization.descriptors.SerialDescriptor import kotlinx.serialization.descriptors.SerialDescriptor
import kotlinx.serialization.encoding.Decoder import kotlinx.serialization.encoding.Decoder
import kotlinx.serialization.encoding.Encoder import kotlinx.serialization.encoding.Encoder
import moe.lava.banksia.model.FutureTime.Companion.asInt import moe.lava.banksia.core.model.FutureTime.Companion.asInt
@Serializable(FutureTimeSerialiser::class) @Serializable(FutureTimeSerialiser::class)
data class FutureTime( data class FutureTime(

View file

@ -1,4 +1,4 @@
package moe.lava.banksia.model package moe.lava.banksia.core.model
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View file

@ -1,4 +1,4 @@
package moe.lava.banksia.model package moe.lava.banksia.core.model
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
@ -15,6 +15,6 @@ enum class RouteType(val value: Int) {
; ;
companion object { companion object {
fun from(value: Int) = RouteType.entries.first { it.value == value } fun from(value: Int) = entries.first { it.value == value }
} }
} }

View file

@ -1,4 +1,4 @@
package moe.lava.banksia.model package moe.lava.banksia.core.model
data class Run( data class Run(
val ref: String, val ref: String,

View file

@ -1,4 +1,4 @@
package moe.lava.banksia.model package moe.lava.banksia.core.model
import kotlinx.datetime.DayOfWeek import kotlinx.datetime.DayOfWeek
import kotlinx.datetime.LocalDate import kotlinx.datetime.LocalDate

View file

@ -1,4 +1,4 @@
package moe.lava.banksia.model package moe.lava.banksia.core.model
import kotlinx.datetime.LocalDate import kotlinx.datetime.LocalDate
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View file

@ -1,7 +1,7 @@
package moe.lava.banksia.model package moe.lava.banksia.core.model
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
import moe.lava.banksia.util.Point import moe.lava.banksia.core.util.Point
typealias ShapePath = List<Point> typealias ShapePath = List<Point>

View file

@ -1,7 +1,7 @@
package moe.lava.banksia.model package moe.lava.banksia.core.model
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
import moe.lava.banksia.util.Point import moe.lava.banksia.core.util.Point
@Serializable @Serializable
data class Stop( data class Stop(

View file

@ -1,4 +1,4 @@
package moe.lava.banksia.model package moe.lava.banksia.core.model
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View file

@ -1,4 +1,4 @@
package moe.lava.banksia.model package moe.lava.banksia.core.model
import kotlinx.datetime.LocalDate import kotlinx.datetime.LocalDate
import kotlinx.datetime.LocalDateTime import kotlinx.datetime.LocalDateTime

View file

@ -1,4 +1,4 @@
package moe.lava.banksia.model package moe.lava.banksia.core.model
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View file

@ -1,4 +1,4 @@
package moe.lava.banksia.model package moe.lava.banksia.core.model
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View file

@ -1,4 +1,4 @@
package moe.lava.banksia.util package moe.lava.banksia.core.util
/** Wraps an arbitrary value, such that equality checks are forced to be done by reference */ /** Wraps an arbitrary value, such that equality checks are forced to be done by reference */
class BoxedValue<T>(val value: T) { class BoxedValue<T>(val value: T) {

View file

@ -1,4 +1,4 @@
package moe.lava.banksia.util package moe.lava.banksia.core.util
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.delay import kotlinx.coroutines.delay

View file

@ -1,4 +1,4 @@
package moe.lava.banksia.util package moe.lava.banksia.core.util
import kotlinx.datetime.DayOfWeek import kotlinx.datetime.DayOfWeek

View file

@ -1,4 +1,4 @@
package moe.lava.banksia.util package moe.lava.banksia.core.util
fun error(tag: String, throwable: Throwable) = error(tag, "", throwable) fun error(tag: String, throwable: Throwable) = error(tag, "", throwable)
expect fun log(tag: String, msg: String) expect fun log(tag: String, msg: String)

View file

@ -1,4 +1,4 @@
package moe.lava.banksia.util package moe.lava.banksia.core.util
import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.delay import kotlinx.coroutines.delay

View file

@ -1,4 +1,4 @@
package moe.lava.banksia.util package moe.lava.banksia.core.util
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View file

@ -16,7 +16,12 @@ import io.ktor.serialization.kotlinx.json.json
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import moe.lava.banksia.Constants import moe.lava.banksia.core.Constants
import moe.lava.banksia.core.model.RouteType
import moe.lava.banksia.core.util.LoopFlow.Companion.initWith
import moe.lava.banksia.core.util.error
import moe.lava.banksia.core.util.log
import moe.lava.banksia.core.util.loopFlow
import moe.lava.banksia.data.ptv.structures.PtvDeparture import moe.lava.banksia.data.ptv.structures.PtvDeparture
import moe.lava.banksia.data.ptv.structures.PtvDirection import moe.lava.banksia.data.ptv.structures.PtvDirection
import moe.lava.banksia.data.ptv.structures.PtvRoute import moe.lava.banksia.data.ptv.structures.PtvRoute
@ -24,11 +29,6 @@ import moe.lava.banksia.data.ptv.structures.PtvRouteType
import moe.lava.banksia.data.ptv.structures.PtvRouteType.Companion.asPtvType import moe.lava.banksia.data.ptv.structures.PtvRouteType.Companion.asPtvType
import moe.lava.banksia.data.ptv.structures.PtvRun import moe.lava.banksia.data.ptv.structures.PtvRun
import moe.lava.banksia.data.ptv.structures.PtvStop import moe.lava.banksia.data.ptv.structures.PtvStop
import moe.lava.banksia.model.RouteType
import moe.lava.banksia.util.LoopFlow.Companion.initWith
import moe.lava.banksia.util.error
import moe.lava.banksia.util.log
import moe.lava.banksia.util.loopFlow
import okio.ByteString.Companion.encodeUtf8 import okio.ByteString.Companion.encodeUtf8
import kotlin.random.Random import kotlin.random.Random

View file

@ -2,7 +2,7 @@ package moe.lava.banksia.data.ptv.structures
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
import moe.lava.banksia.model.RouteType import moe.lava.banksia.core.model.RouteType
@Serializable @Serializable
data class PtvRoute( data class PtvRoute(

View file

@ -7,7 +7,7 @@ import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor
import kotlinx.serialization.descriptors.SerialDescriptor import kotlinx.serialization.descriptors.SerialDescriptor
import kotlinx.serialization.encoding.Decoder import kotlinx.serialization.encoding.Decoder
import kotlinx.serialization.encoding.Encoder import kotlinx.serialization.encoding.Encoder
import moe.lava.banksia.model.RouteType import moe.lava.banksia.core.model.RouteType
object PtvRouteTypeSerialiser : KSerializer<PtvRouteType> { object PtvRouteTypeSerialiser : KSerializer<PtvRouteType> {
override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor( override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor(

View file

@ -1,4 +1,4 @@
package moe.lava.banksia.util package moe.lava.banksia.core.util
actual fun log(tag: String, msg: String) { actual fun log(tag: String, msg: String) {
TODO("Not yet implemented") TODO("Not yet implemented")

View file

@ -1,4 +1,4 @@
package moe.lava.banksia.util package moe.lava.banksia.core.util
actual fun log(tag: String, msg: String) { actual fun log(tag: String, msg: String) {
println("[$tag] $msg") println("[$tag] $msg")

View file

@ -19,7 +19,8 @@ kotlin {
} }
dependencies { dependencies {
implementation(projects.shared) implementation(projects.core)
implementation(projects.core.room)
implementation(projects.server.gtfs) implementation(projects.server.gtfs)
implementation(projects.server.gtfsRt) implementation(projects.server.gtfsRt)
@ -39,6 +40,4 @@ dependencies {
implementation(libs.sqlite.bundled) implementation(libs.sqlite.bundled)
testImplementation(libs.ktor.server.tests) testImplementation(libs.ktor.server.tests)
testImplementation(libs.kotlin.test.junit) testImplementation(libs.kotlin.test.junit)
implementation(projects.shared.room)
} }

View file

@ -11,7 +11,7 @@ kotlin {
} }
dependencies { dependencies {
implementation(projects.shared) implementation(projects.core)
implementation(libs.kotlinx.serialization.csv) implementation(libs.kotlinx.serialization.csv)
implementation(libs.kotlinx.datetime) implementation(libs.kotlinx.datetime)
implementation(libs.ktor.client.contentnegotiation) implementation(libs.ktor.client.contentnegotiation)

View file

@ -17,15 +17,16 @@ import kotlinx.datetime.LocalDate
import kotlinx.serialization.decodeFromString import kotlinx.serialization.decodeFromString
import kotlinx.serialization.modules.EmptySerializersModule import kotlinx.serialization.modules.EmptySerializersModule
import kotlinx.serialization.serializer import kotlinx.serialization.serializer
import moe.lava.banksia.Constants import moe.lava.banksia.core.Constants
import moe.lava.banksia.model.Route import moe.lava.banksia.core.model.Route
import moe.lava.banksia.model.RouteType import moe.lava.banksia.core.model.RouteType
import moe.lava.banksia.model.Service import moe.lava.banksia.core.model.Service
import moe.lava.banksia.model.ServiceException import moe.lava.banksia.core.model.ServiceException
import moe.lava.banksia.model.Shape import moe.lava.banksia.core.model.Shape
import moe.lava.banksia.model.Stop import moe.lava.banksia.core.model.Stop
import moe.lava.banksia.model.StopTime import moe.lava.banksia.core.model.StopTime
import moe.lava.banksia.model.Trip import moe.lava.banksia.core.model.Trip
import moe.lava.banksia.core.util.Point
import moe.lava.banksia.server.gtfs.structures.GtfsRoute import moe.lava.banksia.server.gtfs.structures.GtfsRoute
import moe.lava.banksia.server.gtfs.structures.GtfsService import moe.lava.banksia.server.gtfs.structures.GtfsService
import moe.lava.banksia.server.gtfs.structures.GtfsServiceException import moe.lava.banksia.server.gtfs.structures.GtfsServiceException
@ -33,7 +34,6 @@ import moe.lava.banksia.server.gtfs.structures.GtfsShape
import moe.lava.banksia.server.gtfs.structures.GtfsStop import moe.lava.banksia.server.gtfs.structures.GtfsStop
import moe.lava.banksia.server.gtfs.structures.GtfsStopTime import moe.lava.banksia.server.gtfs.structures.GtfsStopTime
import moe.lava.banksia.server.gtfs.structures.GtfsTrip import moe.lava.banksia.server.gtfs.structures.GtfsTrip
import moe.lava.banksia.util.Point
import java.io.File import java.io.File
import java.util.zip.ZipFile import java.util.zip.ZipFile
import kotlin.time.ExperimentalTime import kotlin.time.ExperimentalTime

View file

@ -1,7 +1,7 @@
package moe.lava.banksia.server.gtfs.structures package moe.lava.banksia.server.gtfs.structures
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
import moe.lava.banksia.model.FutureTime import moe.lava.banksia.core.model.FutureTime
@Suppress("PropertyName") @Suppress("PropertyName")
@Serializable @Serializable

View file

@ -12,7 +12,7 @@ kotlin {
} }
dependencies { dependencies {
implementation(projects.shared) implementation(projects.core)
implementation(libs.okio) implementation(libs.okio)
implementation(libs.koin.core) implementation(libs.koin.core)
implementation(libs.ktor.client.core) implementation(libs.ktor.client.core)

View file

@ -11,7 +11,7 @@ import kotlinx.coroutines.sync.withLock
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
import kotlinx.datetime.TimeZone import kotlinx.datetime.TimeZone
import kotlinx.datetime.toLocalDateTime import kotlinx.datetime.toLocalDateTime
import moe.lava.banksia.util.log import moe.lava.banksia.core.util.log
import java.io.File import java.io.File
import kotlin.time.Instant import kotlin.time.Instant

View file

@ -15,9 +15,9 @@ import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.flow.SharedFlow import kotlinx.coroutines.flow.SharedFlow
import kotlinx.coroutines.joinAll import kotlinx.coroutines.joinAll
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import moe.lava.banksia.Constants import moe.lava.banksia.core.Constants
import moe.lava.banksia.util.LogScope import moe.lava.banksia.core.util.LogScope
import moe.lava.banksia.util.log import moe.lava.banksia.core.util.log
private val types = arrayOf( private val types = arrayOf(
"metro/trip-updates", "metro/trip-updates",

View file

@ -1,7 +1,7 @@
package moe.lava.banksia.server.gtfsrt package moe.lava.banksia.server.gtfsrt
import com.google.transit.realtime.FeedMessage import com.google.transit.realtime.FeedMessage
import moe.lava.banksia.util.Point import moe.lava.banksia.core.util.Point
class RealtimeVehiclePositions(data: FeedMessage) : GtfsRealtime(data) { class RealtimeVehiclePositions(data: FeedMessage) : GtfsRealtime(data) {
private val positions = mutableMapOf<String, Point>() private val positions = mutableMapOf<String, Point>()

View file

@ -18,15 +18,15 @@ import kotlinx.coroutines.withContext
import kotlinx.datetime.LocalDate import kotlinx.datetime.LocalDate
import kotlinx.datetime.TimeZone import kotlinx.datetime.TimeZone
import kotlinx.datetime.todayIn import kotlinx.datetime.todayIn
import moe.lava.banksia.Constants import moe.lava.banksia.core.Constants
import moe.lava.banksia.core.model.atDate
import moe.lava.banksia.core.room.dao.RouteDao import moe.lava.banksia.core.room.dao.RouteDao
import moe.lava.banksia.core.room.dao.StopDao import moe.lava.banksia.core.room.dao.StopDao
import moe.lava.banksia.core.room.dao.StopTimeDao import moe.lava.banksia.core.room.dao.StopTimeDao
import moe.lava.banksia.core.room.dao.VersionMetadataDao import moe.lava.banksia.core.room.dao.VersionMetadataDao
import moe.lava.banksia.model.atDate import moe.lava.banksia.core.util.serialise
import moe.lava.banksia.server.di.ServerModules import moe.lava.banksia.server.di.ServerModules
import moe.lava.banksia.server.gtfsrt.GtfsrtService import moe.lava.banksia.server.gtfsrt.GtfsrtService
import moe.lava.banksia.util.serialise
import org.koin.dsl.module import org.koin.dsl.module
import org.koin.ktor.ext.inject import org.koin.ktor.ext.inject
import org.koin.ktor.plugin.Koin import org.koin.ktor.plugin.Koin

View file

@ -2,7 +2,7 @@ package moe.lava.banksia.server
import moe.lava.banksia.core.room.Database import moe.lava.banksia.core.room.Database
import moe.lava.banksia.core.room.entity.StopEntity import moe.lava.banksia.core.room.entity.StopEntity
import moe.lava.banksia.util.log import moe.lava.banksia.core.util.log
import java.security.MessageDigest import java.security.MessageDigest
class GtfsDataFixer( class GtfsDataFixer(

View file

@ -3,15 +3,15 @@ package moe.lava.banksia.server
import androidx.room.immediateTransaction import androidx.room.immediateTransaction
import androidx.room.useWriterConnection import androidx.room.useWriterConnection
import io.ktor.util.logging.Logger import io.ktor.util.logging.Logger
import moe.lava.banksia.core.model.Route
import moe.lava.banksia.core.model.Service
import moe.lava.banksia.core.model.ServiceException
import moe.lava.banksia.core.model.Shape
import moe.lava.banksia.core.model.Stop
import moe.lava.banksia.core.model.StopTime
import moe.lava.banksia.core.model.Trip
import moe.lava.banksia.core.room.Database import moe.lava.banksia.core.room.Database
import moe.lava.banksia.core.room.entity.asEntity import moe.lava.banksia.core.room.entity.asEntity
import moe.lava.banksia.model.Route
import moe.lava.banksia.model.Service
import moe.lava.banksia.model.ServiceException
import moe.lava.banksia.model.Shape
import moe.lava.banksia.model.Stop
import moe.lava.banksia.model.StopTime
import moe.lava.banksia.model.Trip
import moe.lava.banksia.server.gtfs.GtfsData import moe.lava.banksia.server.gtfs.GtfsData
import moe.lava.banksia.server.gtfs.GtfsParser import moe.lava.banksia.server.gtfs.GtfsParser
import kotlin.time.Clock import kotlin.time.Clock

View file

@ -35,9 +35,9 @@ include(":androidApp")
include(":server") include(":server")
include(":server:gtfs") include(":server:gtfs")
include(":server:gtfs_rt") include(":server:gtfs_rt")
include(":shared") include(":core")
include(":shared:data") include(":core:data")
include(":shared:room") include(":core:room")
include(":ui") include(":ui")
include(":ui:maps") include(":ui:maps")
include(":ui:shared") include(":ui:shared")

View file

@ -1,5 +0,0 @@
package moe.lava.banksia.di
import org.koin.dsl.module
val coreDiModule = module { }

View file

@ -67,8 +67,8 @@ kotlin {
implementation(libs.moko.geo.compose) implementation(libs.moko.geo.compose)
implementation(libs.ui.backhandler) implementation(libs.ui.backhandler)
implementation(projects.shared) implementation(projects.core)
implementation(projects.shared.data) implementation(projects.core.data)
implementation(projects.ui.maps) implementation(projects.ui.maps)
implementation(projects.ui.shared) implementation(projects.ui.shared)
} }

View file

@ -49,7 +49,7 @@ kotlin {
implementation(libs.compose.material3) implementation(libs.compose.material3)
implementation(libs.compose.ui) implementation(libs.compose.ui)
implementation(projects.shared) implementation(projects.core)
implementation(projects.ui.shared) implementation(projects.ui.shared)
} }
} }

View file

@ -10,7 +10,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import kotlinx.serialization.json.JsonObject import kotlinx.serialization.json.JsonObject
import moe.lava.banksia.Constants import moe.lava.banksia.core.Constants
import moe.lava.banksia.ui.map.mappers.routeColorExpression import moe.lava.banksia.ui.map.mappers.routeColorExpression
import moe.lava.banksia.ui.platform.BanksiaTheme import moe.lava.banksia.ui.platform.BanksiaTheme
import org.maplibre.compose.camera.CameraPosition import org.maplibre.compose.camera.CameraPosition

View file

@ -4,11 +4,11 @@ import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import moe.lava.banksia.core.util.Point
import moe.lava.banksia.ui.map.mappers.asFeatures import moe.lava.banksia.ui.map.mappers.asFeatures
import moe.lava.banksia.ui.map.mappers.toPosition import moe.lava.banksia.ui.map.mappers.toPosition
import moe.lava.banksia.ui.map.util.Marker import moe.lava.banksia.ui.map.util.Marker
import moe.lava.banksia.ui.platform.BanksiaTheme import moe.lava.banksia.ui.platform.BanksiaTheme
import moe.lava.banksia.util.Point
internal val MELBOURNE = Point(-37.8136, 144.9631) internal val MELBOURNE = Point(-37.8136, 144.9631)
internal val MELBOURNE_POS = MELBOURNE.toPosition() internal val MELBOURNE_POS = MELBOURNE.toPosition()

View file

@ -7,7 +7,7 @@ import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.flow.SharedFlow import kotlinx.coroutines.flow.SharedFlow
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import moe.lava.banksia.util.Point import moe.lava.banksia.core.util.Point
class MapsPositionState internal constructor( class MapsPositionState internal constructor(
private val scope: CoroutineScope private val scope: CoroutineScope

View file

@ -1,7 +1,7 @@
package moe.lava.banksia.ui.map.mappers package moe.lava.banksia.ui.map.mappers
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
import moe.lava.banksia.model.RouteType import moe.lava.banksia.core.model.RouteType
import moe.lava.banksia.ui.map.util.Marker import moe.lava.banksia.ui.map.util.Marker
import org.maplibre.compose.sources.GeoJsonData import org.maplibre.compose.sources.GeoJsonData
import org.maplibre.spatialk.geojson.FeatureCollection import org.maplibre.spatialk.geojson.FeatureCollection

View file

@ -1,6 +1,6 @@
package moe.lava.banksia.ui.map.mappers package moe.lava.banksia.ui.map.mappers
import moe.lava.banksia.util.Point import moe.lava.banksia.core.util.Point
import org.maplibre.spatialk.geojson.Position import org.maplibre.spatialk.geojson.Position
internal fun Point.toPosition() = Position(lng, lat) internal fun Point.toPosition() = Position(lng, lat)

View file

@ -1,7 +1,7 @@
package moe.lava.banksia.ui.map.mappers package moe.lava.banksia.ui.map.mappers
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import moe.lava.banksia.model.RouteType import moe.lava.banksia.core.model.RouteType
import moe.lava.banksia.ui.extensions.getUIProperties import moe.lava.banksia.ui.extensions.getUIProperties
import moe.lava.banksia.ui.platform.BanksiaTheme import moe.lava.banksia.ui.platform.BanksiaTheme
import org.maplibre.compose.expressions.dsl.case import org.maplibre.compose.expressions.dsl.case

Some files were not shown because too many files have changed in this diff Show more