From 10b666051969f03b22c51e3eeefd9765b11cf3a8 Mon Sep 17 00:00:00 2001 From: Karan Sharma <55722391+ksharma-xyz@users.noreply.github.com> Date: Sun, 5 Jan 2025 09:44:27 +1100 Subject: [PATCH] Provide android context to Koin slightly differently --- .../kotlin/xyz/ksharma/krail/KrailApplication.kt | 4 +++- .../androidMain/kotlin/xyz/ksharma/krail/MainActivity.kt | 8 +++++++- .../kotlin/xyz/ksharma/krail/di/AppModule.android.kt | 3 --- .../src/commonMain/kotlin/xyz/ksharma/krail/KrailApp.kt | 8 ++++++-- 4 files changed, 16 insertions(+), 7 deletions(-) diff --git a/composeApp/src/androidMain/kotlin/xyz/ksharma/krail/KrailApplication.kt b/composeApp/src/androidMain/kotlin/xyz/ksharma/krail/KrailApplication.kt index 32448b2d..84224088 100644 --- a/composeApp/src/androidMain/kotlin/xyz/ksharma/krail/KrailApplication.kt +++ b/composeApp/src/androidMain/kotlin/xyz/ksharma/krail/KrailApplication.kt @@ -8,11 +8,13 @@ class KrailApplication : Application() { override fun onCreate() { super.onCreate() - instance = this +// instance = this Firebase.initialize(context = this) } +/* companion object { var instance: Application? = null } +*/ } diff --git a/composeApp/src/androidMain/kotlin/xyz/ksharma/krail/MainActivity.kt b/composeApp/src/androidMain/kotlin/xyz/ksharma/krail/MainActivity.kt index 34329db8..b863fc3b 100644 --- a/composeApp/src/androidMain/kotlin/xyz/ksharma/krail/MainActivity.kt +++ b/composeApp/src/androidMain/kotlin/xyz/ksharma/krail/MainActivity.kt @@ -4,6 +4,9 @@ import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge +import org.koin.android.ext.koin.androidContext +import org.koin.android.ext.koin.androidLogger +import org.koin.core.logger.Level class MainActivity : ComponentActivity() { @@ -11,7 +14,10 @@ class MainActivity : ComponentActivity() { enableEdgeToEdge() super.onCreate(savedInstanceState) setContent { - KrailApp() + KrailApp { + androidContext(this@MainActivity) + androidLogger(Level.DEBUG) + } } } } diff --git a/composeApp/src/androidMain/kotlin/xyz/ksharma/krail/di/AppModule.android.kt b/composeApp/src/androidMain/kotlin/xyz/ksharma/krail/di/AppModule.android.kt index 758abdee..3dcac494 100644 --- a/composeApp/src/androidMain/kotlin/xyz/ksharma/krail/di/AppModule.android.kt +++ b/composeApp/src/androidMain/kotlin/xyz/ksharma/krail/di/AppModule.android.kt @@ -1,11 +1,8 @@ package xyz.ksharma.krail.di -import org.koin.android.ext.koin.androidContext import org.koin.android.ext.koin.androidLogger import org.koin.dsl.koinConfiguration -import xyz.ksharma.krail.KrailApplication actual fun nativeConfig() = koinConfiguration { androidLogger() - androidContext(KrailApplication.instance ?: error("No Android application context set")) } diff --git a/composeApp/src/commonMain/kotlin/xyz/ksharma/krail/KrailApp.kt b/composeApp/src/commonMain/kotlin/xyz/ksharma/krail/KrailApp.kt index 802d1692..5b3e8728 100644 --- a/composeApp/src/commonMain/kotlin/xyz/ksharma/krail/KrailApp.kt +++ b/composeApp/src/commonMain/kotlin/xyz/ksharma/krail/KrailApp.kt @@ -2,12 +2,16 @@ package xyz.ksharma.krail import androidx.compose.runtime.Composable import org.koin.compose.KoinApplication +import org.koin.dsl.KoinAppDeclaration import xyz.ksharma.krail.di.koinConfig import xyz.ksharma.krail.taj.theme.KrailTheme @Composable -fun KrailApp() { - KoinApplication(application = koinConfig) { +fun KrailApp(koinDeclaration: KoinAppDeclaration? = null) { + KoinApplication(application = { + koinDeclaration?.invoke(this) + koinConfig() + }) { KrailTheme { KrailNavHost() }