From bf7ac41d6e6c0a28fbf3496d62c9c1ae377a503d Mon Sep 17 00:00:00 2001 From: Shinokuni Date: Wed, 10 Apr 2024 17:14:16 +0200 Subject: [PATCH] Inject Koin context in Compose hierarchy --- .../com/readrops/app/compose/MainActivity.kt | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/appcompose/src/main/java/com/readrops/app/compose/MainActivity.kt b/appcompose/src/main/java/com/readrops/app/compose/MainActivity.kt index 0f2ef109..377a73e6 100644 --- a/appcompose/src/main/java/com/readrops/app/compose/MainActivity.kt +++ b/appcompose/src/main/java/com/readrops/app/compose/MainActivity.kt @@ -10,10 +10,13 @@ import com.readrops.app.compose.account.selection.AccountSelectionScreen import com.readrops.app.compose.account.selection.AccountSelectionViewModel import com.readrops.app.compose.home.HomeScreen import com.readrops.app.compose.util.theme.ReadropsTheme +import org.koin.androidx.compose.KoinAndroidContext import org.koin.androidx.viewmodel.ext.android.getViewModel +import org.koin.core.annotation.KoinExperimentalAPI class MainActivity : ComponentActivity() { + @OptIn(KoinExperimentalAPI::class) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -21,15 +24,17 @@ class MainActivity : ComponentActivity() { val accountExists = viewModel.accountExists() setContent { - ReadropsTheme { - Navigator( - screen = if (accountExists) HomeScreen() else AccountSelectionScreen(), - disposeBehavior = NavigatorDisposeBehavior( - // prevent screenModels being recreated when opening a screen from a tab - disposeNestedNavigators = false - ) - ) { - CurrentScreen() + KoinAndroidContext { + ReadropsTheme { + Navigator( + screen = if (accountExists) HomeScreen() else AccountSelectionScreen(), + disposeBehavior = NavigatorDisposeBehavior( + // prevent screenModels being recreated when opening a screen from a tab + disposeNestedNavigators = false + ) + ) { + CurrentScreen() + } } } }