From 5f92bf11e932baf6e622be9d144be770c0f8af68 Mon Sep 17 00:00:00 2001 From: John O'Reilly Date: Sat, 5 Oct 2024 17:52:25 +0100 Subject: [PATCH] circuit related updates --- .../java/dev/johnoreilly/bikeshare/MainActivity.kt | 2 +- .../common/di/AndroidApplicationComponent.kt | 3 --- .../dev/johnoreilly/common/di/SharedUiComponent.kt | 3 +++ .../dev/johnoreilly/common/ui/BikeShareContent.kt | 12 +++++------- .../common/di/DesktopApplicationComponent.kt | 3 --- compose-desktop/src/main/kotlin/main.kt | 2 +- 6 files changed, 10 insertions(+), 15 deletions(-) diff --git a/androidApp/src/main/java/dev/johnoreilly/bikeshare/MainActivity.kt b/androidApp/src/main/java/dev/johnoreilly/bikeshare/MainActivity.kt index 050c20d..3b1e6ce 100644 --- a/androidApp/src/main/java/dev/johnoreilly/bikeshare/MainActivity.kt +++ b/androidApp/src/main/java/dev/johnoreilly/bikeshare/MainActivity.kt @@ -17,7 +17,7 @@ class MainActivity : ComponentActivity() { setContent { BikeShareTheme { - applicationComponent.bikeShareContent() + applicationComponent.bikeShareApp() } } } diff --git a/common/src/androidMain/kotlin/dev/johnoreilly/common/di/AndroidApplicationComponent.kt b/common/src/androidMain/kotlin/dev/johnoreilly/common/di/AndroidApplicationComponent.kt index 99fd2fa..2abfe6a 100644 --- a/common/src/androidMain/kotlin/dev/johnoreilly/common/di/AndroidApplicationComponent.kt +++ b/common/src/androidMain/kotlin/dev/johnoreilly/common/di/AndroidApplicationComponent.kt @@ -6,7 +6,6 @@ import androidx.room.Room import androidx.sqlite.driver.bundled.BundledSQLiteDriver import dev.johnoreilly.common.database.AppDatabase import dev.johnoreilly.common.database.dbFileName -import dev.johnoreilly.common.ui.BikeShareContent import io.ktor.client.engine.android.Android import kotlinx.coroutines.Dispatchers import me.tatarka.inject.annotations.Component @@ -16,8 +15,6 @@ import me.tatarka.inject.annotations.Component @Singleton abstract class AndroidApplicationComponent(val application: Application): SharedApplicationComponent { - abstract val bikeShareContent: BikeShareContent - override fun getHttpClientEngine() = Android.create() override fun getRoomDatabase() = createRoomDatabase(application) diff --git a/common/src/commonMain/kotlin/dev/johnoreilly/common/di/SharedUiComponent.kt b/common/src/commonMain/kotlin/dev/johnoreilly/common/di/SharedUiComponent.kt index 701a11f..24271fe 100644 --- a/common/src/commonMain/kotlin/dev/johnoreilly/common/di/SharedUiComponent.kt +++ b/common/src/commonMain/kotlin/dev/johnoreilly/common/di/SharedUiComponent.kt @@ -9,10 +9,13 @@ import dev.johnoreilly.common.screens.StationListUiFactory import dev.johnoreilly.common.countrylist.CountryListPresenterFactory import dev.johnoreilly.common.networklist.NetworkListPresenterFactory import dev.johnoreilly.common.stationlist.StationListPresenterFactory +import dev.johnoreilly.common.ui.BikeShareApp import me.tatarka.inject.annotations.IntoSet import me.tatarka.inject.annotations.Provides interface SharedUiComponent { + abstract val bikeShareApp: BikeShareApp + @IntoSet @Provides fun bindCountryListPresenterFactory(factory: CountryListPresenterFactory): Presenter.Factory = factory diff --git a/common/src/commonMain/kotlin/dev/johnoreilly/common/ui/BikeShareContent.kt b/common/src/commonMain/kotlin/dev/johnoreilly/common/ui/BikeShareContent.kt index 2854bc1..6d5c7dd 100644 --- a/common/src/commonMain/kotlin/dev/johnoreilly/common/ui/BikeShareContent.kt +++ b/common/src/commonMain/kotlin/dev/johnoreilly/common/ui/BikeShareContent.kt @@ -12,17 +12,15 @@ import me.tatarka.inject.annotations.Inject -typealias BikeShareContent = @Composable () -> Unit - +typealias BikeShareApp = @Composable () -> Unit @Inject @Composable -fun BikeShareContent(circuit: Circuit) { - - val backStack = rememberSaveableBackStack(root = CountryListScreen) - val navigator = rememberCircuitNavigator(backStack) {} - +fun BikeShareApp(circuit: Circuit) { MaterialTheme { + val backStack = rememberSaveableBackStack(root = CountryListScreen) + val navigator = rememberCircuitNavigator(backStack) {} + CircuitCompositionLocals(circuit) { NavigableCircuitContent(navigator = navigator, backStack = backStack) } diff --git a/common/src/jvmMain/kotlin/dev/johnoreilly/common/di/DesktopApplicationComponent.kt b/common/src/jvmMain/kotlin/dev/johnoreilly/common/di/DesktopApplicationComponent.kt index 6db8c45..d576fd7 100644 --- a/common/src/jvmMain/kotlin/dev/johnoreilly/common/di/DesktopApplicationComponent.kt +++ b/common/src/jvmMain/kotlin/dev/johnoreilly/common/di/DesktopApplicationComponent.kt @@ -4,7 +4,6 @@ import androidx.room.Room import androidx.sqlite.driver.bundled.BundledSQLiteDriver import dev.johnoreilly.common.database.AppDatabase import dev.johnoreilly.common.database.dbFileName -import dev.johnoreilly.common.ui.BikeShareContent import io.ktor.client.engine.java.Java import me.tatarka.inject.annotations.Component import java.io.File @@ -13,8 +12,6 @@ import java.io.File @Singleton abstract class DesktopApplicationComponent: SharedApplicationComponent { - abstract val bikeShareContent: BikeShareContent - override fun getHttpClientEngine() = Java.create() override fun getRoomDatabase() = createRoomDatabase() diff --git a/compose-desktop/src/main/kotlin/main.kt b/compose-desktop/src/main/kotlin/main.kt index 9ec61f4..b70e746 100644 --- a/compose-desktop/src/main/kotlin/main.kt +++ b/compose-desktop/src/main/kotlin/main.kt @@ -13,7 +13,7 @@ fun main() { title = "BikeShare", state = WindowState(size = DpSize(400.dp, 600.dp)) ) { - applicationComponent.bikeShareContent() + applicationComponent.bikeShareApp() } }