diff --git a/.gitignore b/.gitignore index 408e3b0..426800f 100644 --- a/.gitignore +++ b/.gitignore @@ -19,4 +19,4 @@ captures secrets.properties shared/src/commonMain/kotlin/moe/lava/banksia/Constants.kt -data/ +/data/ diff --git a/client/build.gradle.kts b/client/build.gradle.kts new file mode 100644 index 0000000..f02ec51 --- /dev/null +++ b/client/build.gradle.kts @@ -0,0 +1,55 @@ +import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + +plugins { + alias(libs.plugins.kotlinMultiplatform) + alias(libs.plugins.kotlinSerialization) + alias(libs.plugins.androidLibrary) +} + +kotlin { + androidTarget { + @OptIn(ExperimentalKotlinGradlePluginApi::class) + compilerOptions { + jvmTarget.set(JvmTarget.JVM_11) + } + } + + compilerOptions { + freeCompilerArgs.add("-opt-in=kotlin.time.ExperimentalTime") + } + + iosX64() + iosArm64() + iosSimulatorArm64() + + sourceSets { + androidMain.dependencies { + implementation(libs.compose.ui.tooling.preview) + implementation(libs.androidx.activity.compose) + implementation(libs.kotlinx.coroutines.android) + implementation(libs.play.services.location) + } + commonMain.dependencies { + implementation(libs.koin.core) + implementation(libs.kotlinx.coroutines.core) + implementation(libs.kotlinx.datetime) + implementation(libs.ktor.client.core) + implementation(libs.ktor.client.contentnegotiation) + implementation(libs.ktor.serialization.kotlinx.json) + implementation(projects.shared) + } + } +} + +android { + namespace = "moe.lava.banksia.client" + compileSdk = libs.versions.android.compileSdk.get().toInt() + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } + defaultConfig { + minSdk = libs.versions.android.minSdk.get().toInt() + } +} diff --git a/composeApp/src/commonMain/kotlin/moe/lava/banksia/client/datasource/local/RouteLocalDataSource.kt b/client/src/commonMain/kotlin/moe/lava/banksia/client/data/route/RouteLocalDataSource.kt similarity index 88% rename from composeApp/src/commonMain/kotlin/moe/lava/banksia/client/datasource/local/RouteLocalDataSource.kt rename to client/src/commonMain/kotlin/moe/lava/banksia/client/data/route/RouteLocalDataSource.kt index bfbb204..e89d4e9 100644 --- a/composeApp/src/commonMain/kotlin/moe/lava/banksia/client/datasource/local/RouteLocalDataSource.kt +++ b/client/src/commonMain/kotlin/moe/lava/banksia/client/data/route/RouteLocalDataSource.kt @@ -1,4 +1,4 @@ -package moe.lava.banksia.client.datasource.local +package moe.lava.banksia.client.data.route import moe.lava.banksia.model.Route import moe.lava.banksia.room.dao.RouteDao diff --git a/composeApp/src/commonMain/kotlin/moe/lava/banksia/client/datasource/remote/RouteRemoteDataSource.kt b/client/src/commonMain/kotlin/moe/lava/banksia/client/data/route/RouteRemoteDataSource.kt similarity index 87% rename from composeApp/src/commonMain/kotlin/moe/lava/banksia/client/datasource/remote/RouteRemoteDataSource.kt rename to client/src/commonMain/kotlin/moe/lava/banksia/client/data/route/RouteRemoteDataSource.kt index 861a3d8..cbe9804 100644 --- a/composeApp/src/commonMain/kotlin/moe/lava/banksia/client/datasource/remote/RouteRemoteDataSource.kt +++ b/client/src/commonMain/kotlin/moe/lava/banksia/client/data/route/RouteRemoteDataSource.kt @@ -1,4 +1,4 @@ -package moe.lava.banksia.client.datasource.remote +package moe.lava.banksia.client.data.route import io.ktor.client.HttpClient import io.ktor.client.call.body diff --git a/composeApp/src/commonMain/kotlin/moe/lava/banksia/client/datasource/local/StopLocalDataSource.kt b/client/src/commonMain/kotlin/moe/lava/banksia/client/data/stop/StopLocalDataSource.kt similarity index 90% rename from composeApp/src/commonMain/kotlin/moe/lava/banksia/client/datasource/local/StopLocalDataSource.kt rename to client/src/commonMain/kotlin/moe/lava/banksia/client/data/stop/StopLocalDataSource.kt index 1b418a0..486aae0 100644 --- a/composeApp/src/commonMain/kotlin/moe/lava/banksia/client/datasource/local/StopLocalDataSource.kt +++ b/client/src/commonMain/kotlin/moe/lava/banksia/client/data/stop/StopLocalDataSource.kt @@ -1,4 +1,4 @@ -package moe.lava.banksia.client.datasource.local +package moe.lava.banksia.client.data.stop import moe.lava.banksia.model.Stop import moe.lava.banksia.room.dao.RouteDao diff --git a/composeApp/src/commonMain/kotlin/moe/lava/banksia/client/datasource/remote/StopRemoteDataSource.kt b/client/src/commonMain/kotlin/moe/lava/banksia/client/data/stop/StopRemoteDataSource.kt similarity index 87% rename from composeApp/src/commonMain/kotlin/moe/lava/banksia/client/datasource/remote/StopRemoteDataSource.kt rename to client/src/commonMain/kotlin/moe/lava/banksia/client/data/stop/StopRemoteDataSource.kt index f708cec..47c2f80 100644 --- a/composeApp/src/commonMain/kotlin/moe/lava/banksia/client/datasource/remote/StopRemoteDataSource.kt +++ b/client/src/commonMain/kotlin/moe/lava/banksia/client/data/stop/StopRemoteDataSource.kt @@ -1,4 +1,4 @@ -package moe.lava.banksia.client.datasource.remote +package moe.lava.banksia.client.data.stop import io.ktor.client.HttpClient import io.ktor.client.call.body diff --git a/composeApp/src/commonMain/kotlin/moe/lava/banksia/client/di/ClientModule.kt b/client/src/commonMain/kotlin/moe/lava/banksia/client/di/ClientModule.kt similarity index 77% rename from composeApp/src/commonMain/kotlin/moe/lava/banksia/client/di/ClientModule.kt rename to client/src/commonMain/kotlin/moe/lava/banksia/client/di/ClientModule.kt index 2002745..a39a3ae 100644 --- a/composeApp/src/commonMain/kotlin/moe/lava/banksia/client/di/ClientModule.kt +++ b/client/src/commonMain/kotlin/moe/lava/banksia/client/di/ClientModule.kt @@ -8,17 +8,15 @@ import io.ktor.client.plugins.plugin import io.ktor.serialization.kotlinx.json.json import kotlinx.serialization.json.Json import moe.lava.banksia.Constants -import moe.lava.banksia.client.datasource.local.RouteLocalDataSource -import moe.lava.banksia.client.datasource.local.StopLocalDataSource -import moe.lava.banksia.client.datasource.remote.RouteRemoteDataSource -import moe.lava.banksia.client.datasource.remote.StopRemoteDataSource +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.repository.RouteRepository import moe.lava.banksia.client.repository.StopRepository import moe.lava.banksia.data.ptv.PtvService -import moe.lava.banksia.ui.screens.map.MapScreenViewModel import moe.lava.banksia.util.log import org.koin.core.module.dsl.singleOf -import org.koin.core.module.dsl.viewModelOf import org.koin.dsl.module val ClientModule = module { @@ -52,7 +50,4 @@ val ClientModule = module { // Repositories singleOf(::RouteRepository) singleOf(::StopRepository) - - // ViewModel - viewModelOf(::MapScreenViewModel) } diff --git a/composeApp/src/commonMain/kotlin/moe/lava/banksia/client/repository/RouteRepository.kt b/client/src/commonMain/kotlin/moe/lava/banksia/client/repository/RouteRepository.kt similarity index 82% rename from composeApp/src/commonMain/kotlin/moe/lava/banksia/client/repository/RouteRepository.kt rename to client/src/commonMain/kotlin/moe/lava/banksia/client/repository/RouteRepository.kt index 49e397d..22a6bcc 100644 --- a/composeApp/src/commonMain/kotlin/moe/lava/banksia/client/repository/RouteRepository.kt +++ b/client/src/commonMain/kotlin/moe/lava/banksia/client/repository/RouteRepository.kt @@ -2,8 +2,8 @@ package moe.lava.banksia.client.repository import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.withLock -import moe.lava.banksia.client.datasource.local.RouteLocalDataSource -import moe.lava.banksia.client.datasource.remote.RouteRemoteDataSource +import moe.lava.banksia.client.data.route.RouteLocalDataSource +import moe.lava.banksia.client.data.route.RouteRemoteDataSource class RouteRepository( private val local: RouteLocalDataSource, diff --git a/composeApp/src/commonMain/kotlin/moe/lava/banksia/client/repository/StopRepository.kt b/client/src/commonMain/kotlin/moe/lava/banksia/client/repository/StopRepository.kt similarity index 80% rename from composeApp/src/commonMain/kotlin/moe/lava/banksia/client/repository/StopRepository.kt rename to client/src/commonMain/kotlin/moe/lava/banksia/client/repository/StopRepository.kt index c9eedce..690616a 100644 --- a/composeApp/src/commonMain/kotlin/moe/lava/banksia/client/repository/StopRepository.kt +++ b/client/src/commonMain/kotlin/moe/lava/banksia/client/repository/StopRepository.kt @@ -2,8 +2,8 @@ package moe.lava.banksia.client.repository import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.withLock -import moe.lava.banksia.client.datasource.local.StopLocalDataSource -import moe.lava.banksia.client.datasource.remote.StopRemoteDataSource +import moe.lava.banksia.client.data.stop.StopLocalDataSource +import moe.lava.banksia.client.data.stop.StopRemoteDataSource class StopRepository( private val local: StopLocalDataSource, diff --git a/settings.gradle.kts b/settings.gradle.kts index 3649a7a..a33c5ec 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -28,6 +28,7 @@ dependencyResolutionManagement { } } -include(":composeApp") +include(":client") include(":server") include(":shared") +include(":ui") diff --git a/shared/src/commonMain/kotlin/moe/lava/banksia/data/gtfsr/GtfsRealtime.kt b/shared/src/commonMain/kotlin/moe/lava/banksia/data/gtfsr/GtfsRealtime.kt new file mode 100644 index 0000000..172238f --- /dev/null +++ b/shared/src/commonMain/kotlin/moe/lava/banksia/data/gtfsr/GtfsRealtime.kt @@ -0,0 +1,12 @@ +package moe.lava.banksia.data.gtfsr + +import com.google.transit.realtime.FeedMessage + +abstract class GtfsRealtime(protected val data: FeedMessage) { + companion object { + inline fun parse(ctor: (FeedMessage) -> T, data: ByteArray): T { + val message = FeedMessage.ADAPTER.decode(data) + return ctor(message) + } + } +} diff --git a/shared/src/commonMain/kotlin/moe/lava/banksia/data/gtfsr/RealtimeVehiclePosition.kt b/shared/src/commonMain/kotlin/moe/lava/banksia/data/gtfsr/RealtimeVehiclePosition.kt new file mode 100644 index 0000000..979f1f5 --- /dev/null +++ b/shared/src/commonMain/kotlin/moe/lava/banksia/data/gtfsr/RealtimeVehiclePosition.kt @@ -0,0 +1,22 @@ +package moe.lava.banksia.data.gtfsr + +import com.google.transit.realtime.FeedMessage +import moe.lava.banksia.util.Point + +class RealtimeVehiclePositions(data: FeedMessage) : GtfsRealtime(data) { + private val positions = mutableMapOf() + + init { + data.entity + .mapNotNull { ent -> + if (ent.vehicle?.position == null) return@mapNotNull null + ent.id to ent.vehicle.position.run { + Point(latitude.toDouble(), longitude.toDouble()) + } + } + .let { positions.putAll(it) } + } + + fun getAll() = positions.toMap() + fun forTrip(tripId: String) = positions[tripId] +} diff --git a/composeApp/build.gradle.kts b/ui/build.gradle.kts similarity index 98% rename from composeApp/build.gradle.kts rename to ui/build.gradle.kts index 02c6e0f..100228c 100644 --- a/composeApp/build.gradle.kts +++ b/ui/build.gradle.kts @@ -34,7 +34,6 @@ kotlin { } sourceSets { - androidMain.dependencies { implementation(libs.compose.ui.tooling.preview) implementation(libs.androidx.activity.compose) @@ -63,8 +62,10 @@ kotlin { implementation(libs.maplibre.compose) implementation(libs.moko.geo) implementation(libs.moko.geo.compose) - implementation(projects.shared) implementation(libs.ui.backhandler) + + implementation(projects.client) + implementation(projects.shared) } } } diff --git a/composeApp/src/androidMain/AndroidManifest.xml b/ui/src/androidMain/AndroidManifest.xml similarity index 100% rename from composeApp/src/androidMain/AndroidManifest.xml rename to ui/src/androidMain/AndroidManifest.xml diff --git a/composeApp/src/androidMain/kotlin/moe/lava/banksia/ui/MainActivity.kt b/ui/src/androidMain/kotlin/moe/lava/banksia/ui/MainActivity.kt similarity index 100% rename from composeApp/src/androidMain/kotlin/moe/lava/banksia/ui/MainActivity.kt rename to ui/src/androidMain/kotlin/moe/lava/banksia/ui/MainActivity.kt diff --git a/composeApp/src/androidMain/kotlin/moe/lava/banksia/ui/platform/BanksiaTheme.android.kt b/ui/src/androidMain/kotlin/moe/lava/banksia/ui/platform/BanksiaTheme.android.kt similarity index 100% rename from composeApp/src/androidMain/kotlin/moe/lava/banksia/ui/platform/BanksiaTheme.android.kt rename to ui/src/androidMain/kotlin/moe/lava/banksia/ui/platform/BanksiaTheme.android.kt diff --git a/composeApp/src/androidMain/res/drawable-v24/ic_launcher_foreground.xml b/ui/src/androidMain/res/drawable-v24/ic_launcher_foreground.xml similarity index 100% rename from composeApp/src/androidMain/res/drawable-v24/ic_launcher_foreground.xml rename to ui/src/androidMain/res/drawable-v24/ic_launcher_foreground.xml diff --git a/composeApp/src/androidMain/res/drawable/ic_launcher_background.xml b/ui/src/androidMain/res/drawable/ic_launcher_background.xml similarity index 100% rename from composeApp/src/androidMain/res/drawable/ic_launcher_background.xml rename to ui/src/androidMain/res/drawable/ic_launcher_background.xml diff --git a/composeApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher.xml b/ui/src/androidMain/res/mipmap-anydpi-v26/ic_launcher.xml similarity index 100% rename from composeApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher.xml rename to ui/src/androidMain/res/mipmap-anydpi-v26/ic_launcher.xml diff --git a/composeApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xml b/ui/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xml similarity index 100% rename from composeApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xml rename to ui/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xml diff --git a/composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher.png b/ui/src/androidMain/res/mipmap-hdpi/ic_launcher.png similarity index 100% rename from composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher.png rename to ui/src/androidMain/res/mipmap-hdpi/ic_launcher.png diff --git a/composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher_round.png b/ui/src/androidMain/res/mipmap-hdpi/ic_launcher_round.png similarity index 100% rename from composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher_round.png rename to ui/src/androidMain/res/mipmap-hdpi/ic_launcher_round.png diff --git a/composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher.png b/ui/src/androidMain/res/mipmap-mdpi/ic_launcher.png similarity index 100% rename from composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher.png rename to ui/src/androidMain/res/mipmap-mdpi/ic_launcher.png diff --git a/composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher_round.png b/ui/src/androidMain/res/mipmap-mdpi/ic_launcher_round.png similarity index 100% rename from composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher_round.png rename to ui/src/androidMain/res/mipmap-mdpi/ic_launcher_round.png diff --git a/composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher.png b/ui/src/androidMain/res/mipmap-xhdpi/ic_launcher.png similarity index 100% rename from composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher.png rename to ui/src/androidMain/res/mipmap-xhdpi/ic_launcher.png diff --git a/composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.png b/ui/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.png similarity index 100% rename from composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.png rename to ui/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.png diff --git a/composeApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher.png b/ui/src/androidMain/res/mipmap-xxhdpi/ic_launcher.png similarity index 100% rename from composeApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher.png rename to ui/src/androidMain/res/mipmap-xxhdpi/ic_launcher.png diff --git a/composeApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher_round.png b/ui/src/androidMain/res/mipmap-xxhdpi/ic_launcher_round.png similarity index 100% rename from composeApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher_round.png rename to ui/src/androidMain/res/mipmap-xxhdpi/ic_launcher_round.png diff --git a/composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.png b/ui/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.png similarity index 100% rename from composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.png rename to ui/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.png diff --git a/composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.png b/ui/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.png similarity index 100% rename from composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.png rename to ui/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.png diff --git a/composeApp/src/androidMain/res/raw/def_mapstyle.json b/ui/src/androidMain/res/raw/def_mapstyle.json similarity index 100% rename from composeApp/src/androidMain/res/raw/def_mapstyle.json rename to ui/src/androidMain/res/raw/def_mapstyle.json diff --git a/composeApp/src/androidMain/res/values/strings.xml b/ui/src/androidMain/res/values/strings.xml similarity index 100% rename from composeApp/src/androidMain/res/values/strings.xml rename to ui/src/androidMain/res/values/strings.xml diff --git a/composeApp/src/commonMain/composeResources/drawable/bus.xml b/ui/src/commonMain/composeResources/drawable/bus.xml similarity index 100% rename from composeApp/src/commonMain/composeResources/drawable/bus.xml rename to ui/src/commonMain/composeResources/drawable/bus.xml diff --git a/composeApp/src/commonMain/composeResources/drawable/bus_background.xml b/ui/src/commonMain/composeResources/drawable/bus_background.xml similarity index 100% rename from composeApp/src/commonMain/composeResources/drawable/bus_background.xml rename to ui/src/commonMain/composeResources/drawable/bus_background.xml diff --git a/composeApp/src/commonMain/composeResources/drawable/bus_icon.xml b/ui/src/commonMain/composeResources/drawable/bus_icon.xml similarity index 100% rename from composeApp/src/commonMain/composeResources/drawable/bus_icon.xml rename to ui/src/commonMain/composeResources/drawable/bus_icon.xml diff --git a/composeApp/src/commonMain/composeResources/drawable/compose-multiplatform.xml b/ui/src/commonMain/composeResources/drawable/compose-multiplatform.xml similarity index 100% rename from composeApp/src/commonMain/composeResources/drawable/compose-multiplatform.xml rename to ui/src/commonMain/composeResources/drawable/compose-multiplatform.xml diff --git a/composeApp/src/commonMain/composeResources/drawable/my_location_24.xml b/ui/src/commonMain/composeResources/drawable/my_location_24.xml similarity index 100% rename from composeApp/src/commonMain/composeResources/drawable/my_location_24.xml rename to ui/src/commonMain/composeResources/drawable/my_location_24.xml diff --git a/composeApp/src/commonMain/composeResources/drawable/train.xml b/ui/src/commonMain/composeResources/drawable/train.xml similarity index 100% rename from composeApp/src/commonMain/composeResources/drawable/train.xml rename to ui/src/commonMain/composeResources/drawable/train.xml diff --git a/composeApp/src/commonMain/composeResources/drawable/train_background.xml b/ui/src/commonMain/composeResources/drawable/train_background.xml similarity index 100% rename from composeApp/src/commonMain/composeResources/drawable/train_background.xml rename to ui/src/commonMain/composeResources/drawable/train_background.xml diff --git a/composeApp/src/commonMain/composeResources/drawable/train_icon.xml b/ui/src/commonMain/composeResources/drawable/train_icon.xml similarity index 100% rename from composeApp/src/commonMain/composeResources/drawable/train_icon.xml rename to ui/src/commonMain/composeResources/drawable/train_icon.xml diff --git a/composeApp/src/commonMain/composeResources/drawable/tram.xml b/ui/src/commonMain/composeResources/drawable/tram.xml similarity index 100% rename from composeApp/src/commonMain/composeResources/drawable/tram.xml rename to ui/src/commonMain/composeResources/drawable/tram.xml diff --git a/composeApp/src/commonMain/composeResources/drawable/tram_background.xml b/ui/src/commonMain/composeResources/drawable/tram_background.xml similarity index 100% rename from composeApp/src/commonMain/composeResources/drawable/tram_background.xml rename to ui/src/commonMain/composeResources/drawable/tram_background.xml diff --git a/composeApp/src/commonMain/composeResources/drawable/tram_icon.xml b/ui/src/commonMain/composeResources/drawable/tram_icon.xml similarity index 100% rename from composeApp/src/commonMain/composeResources/drawable/tram_icon.xml rename to ui/src/commonMain/composeResources/drawable/tram_icon.xml diff --git a/composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/App.kt b/ui/src/commonMain/kotlin/moe/lava/banksia/ui/App.kt similarity index 87% rename from composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/App.kt rename to ui/src/commonMain/kotlin/moe/lava/banksia/ui/App.kt index 3e41bbb..453e1ee 100644 --- a/composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/App.kt +++ b/ui/src/commonMain/kotlin/moe/lava/banksia/ui/App.kt @@ -3,8 +3,8 @@ package moe.lava.banksia.ui import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.runtime.Composable import androidx.compose.ui.ExperimentalComposeUiApi -import moe.lava.banksia.client.di.ClientModule import moe.lava.banksia.di.CommonModules +import moe.lava.banksia.ui.di.AppModule import moe.lava.banksia.ui.screens.map.MapScreen import org.koin.compose.KoinMultiplatformApplication import org.koin.core.annotation.KoinExperimentalAPI @@ -14,7 +14,7 @@ import org.koin.dsl.koinConfiguration @Composable fun App() { KoinMultiplatformApplication(config = koinConfiguration { - modules(CommonModules, ClientModule) + modules(CommonModules, AppModule) }) { MapScreen() } diff --git a/composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/components/RouteIcon.kt b/ui/src/commonMain/kotlin/moe/lava/banksia/ui/components/RouteIcon.kt similarity index 100% rename from composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/components/RouteIcon.kt rename to ui/src/commonMain/kotlin/moe/lava/banksia/ui/components/RouteIcon.kt diff --git a/ui/src/commonMain/kotlin/moe/lava/banksia/ui/di/AppModule.kt b/ui/src/commonMain/kotlin/moe/lava/banksia/ui/di/AppModule.kt new file mode 100644 index 0000000..4c93644 --- /dev/null +++ b/ui/src/commonMain/kotlin/moe/lava/banksia/ui/di/AppModule.kt @@ -0,0 +1,12 @@ +package moe.lava.banksia.ui.di + +import moe.lava.banksia.client.di.ClientModule +import moe.lava.banksia.ui.screens.map.MapScreenViewModel +import org.koin.core.module.dsl.viewModelOf +import org.koin.dsl.module + +val AppModule = module { + includes(ClientModule) + // ViewModel + viewModelOf(::MapScreenViewModel) +} diff --git a/composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/layout/AppBottomSheet.kt b/ui/src/commonMain/kotlin/moe/lava/banksia/ui/layout/AppBottomSheet.kt similarity index 100% rename from composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/layout/AppBottomSheet.kt rename to ui/src/commonMain/kotlin/moe/lava/banksia/ui/layout/AppBottomSheet.kt diff --git a/composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/layout/InfoPanel.kt b/ui/src/commonMain/kotlin/moe/lava/banksia/ui/layout/InfoPanel.kt similarity index 100% rename from composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/layout/InfoPanel.kt rename to ui/src/commonMain/kotlin/moe/lava/banksia/ui/layout/InfoPanel.kt diff --git a/composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/layout/Searcher.kt b/ui/src/commonMain/kotlin/moe/lava/banksia/ui/layout/Searcher.kt similarity index 100% rename from composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/layout/Searcher.kt rename to ui/src/commonMain/kotlin/moe/lava/banksia/ui/layout/Searcher.kt diff --git a/composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/platform/BanksiaTheme.kt b/ui/src/commonMain/kotlin/moe/lava/banksia/ui/platform/BanksiaTheme.kt similarity index 100% rename from composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/platform/BanksiaTheme.kt rename to ui/src/commonMain/kotlin/moe/lava/banksia/ui/platform/BanksiaTheme.kt diff --git a/composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/screens/map/MapScreen.kt b/ui/src/commonMain/kotlin/moe/lava/banksia/ui/screens/map/MapScreen.kt similarity index 100% rename from composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/screens/map/MapScreen.kt rename to ui/src/commonMain/kotlin/moe/lava/banksia/ui/screens/map/MapScreen.kt diff --git a/composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/screens/map/MapScreenViewModel.kt b/ui/src/commonMain/kotlin/moe/lava/banksia/ui/screens/map/MapScreenViewModel.kt similarity index 100% rename from composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/screens/map/MapScreenViewModel.kt rename to ui/src/commonMain/kotlin/moe/lava/banksia/ui/screens/map/MapScreenViewModel.kt diff --git a/composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/screens/map/Maps.kt b/ui/src/commonMain/kotlin/moe/lava/banksia/ui/screens/map/Maps.kt similarity index 100% rename from composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/screens/map/Maps.kt rename to ui/src/commonMain/kotlin/moe/lava/banksia/ui/screens/map/Maps.kt diff --git a/composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/state/InfoPanelState.kt b/ui/src/commonMain/kotlin/moe/lava/banksia/ui/state/InfoPanelState.kt similarity index 100% rename from composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/state/InfoPanelState.kt rename to ui/src/commonMain/kotlin/moe/lava/banksia/ui/state/InfoPanelState.kt diff --git a/composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/state/MapState.kt b/ui/src/commonMain/kotlin/moe/lava/banksia/ui/state/MapState.kt similarity index 100% rename from composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/state/MapState.kt rename to ui/src/commonMain/kotlin/moe/lava/banksia/ui/state/MapState.kt diff --git a/composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/state/SearchState.kt b/ui/src/commonMain/kotlin/moe/lava/banksia/ui/state/SearchState.kt similarity index 100% rename from composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/state/SearchState.kt rename to ui/src/commonMain/kotlin/moe/lava/banksia/ui/state/SearchState.kt diff --git a/composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/utils/map/CameraPosition.kt b/ui/src/commonMain/kotlin/moe/lava/banksia/ui/utils/map/CameraPosition.kt similarity index 100% rename from composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/utils/map/CameraPosition.kt rename to ui/src/commonMain/kotlin/moe/lava/banksia/ui/utils/map/CameraPosition.kt diff --git a/composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/utils/map/CameraPositionBounds.kt b/ui/src/commonMain/kotlin/moe/lava/banksia/ui/utils/map/CameraPositionBounds.kt similarity index 100% rename from composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/utils/map/CameraPositionBounds.kt rename to ui/src/commonMain/kotlin/moe/lava/banksia/ui/utils/map/CameraPositionBounds.kt diff --git a/composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/utils/map/Marker.kt b/ui/src/commonMain/kotlin/moe/lava/banksia/ui/utils/map/Marker.kt similarity index 100% rename from composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/utils/map/Marker.kt rename to ui/src/commonMain/kotlin/moe/lava/banksia/ui/utils/map/Marker.kt diff --git a/composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/utils/map/Polyline.kt b/ui/src/commonMain/kotlin/moe/lava/banksia/ui/utils/map/Polyline.kt similarity index 100% rename from composeApp/src/commonMain/kotlin/moe/lava/banksia/ui/utils/map/Polyline.kt rename to ui/src/commonMain/kotlin/moe/lava/banksia/ui/utils/map/Polyline.kt diff --git a/composeApp/src/iosMain/kotlin/moe/lava/banksia/ui/MainViewController.kt b/ui/src/iosMain/kotlin/moe/lava/banksia/ui/MainViewController.kt similarity index 100% rename from composeApp/src/iosMain/kotlin/moe/lava/banksia/ui/MainViewController.kt rename to ui/src/iosMain/kotlin/moe/lava/banksia/ui/MainViewController.kt diff --git a/composeApp/src/iosMain/kotlin/moe/lava/banksia/ui/platform/BanksiaTheme.ios.kt b/ui/src/iosMain/kotlin/moe/lava/banksia/ui/platform/BanksiaTheme.ios.kt similarity index 100% rename from composeApp/src/iosMain/kotlin/moe/lava/banksia/ui/platform/BanksiaTheme.ios.kt rename to ui/src/iosMain/kotlin/moe/lava/banksia/ui/platform/BanksiaTheme.ios.kt