Skip to content

Commit

Permalink
Fix rememberKoinApplication to avoid double calls
Browse files Browse the repository at this point in the history
  • Loading branch information
arnaudgiuliani committed Sep 17, 2024
1 parent dc9e331 commit 7bd030c
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,13 @@ import android.os.Bundle
import androidx.activity.compose.setContent
import androidx.compose.material.MaterialTheme
import org.koin.android.ext.android.getKoin
import org.koin.android.ext.koin.androidContext
import org.koin.androidx.compose.KoinAndroidContext
import org.koin.androidx.scope.ScopeActivity
import org.koin.compose.KoinApplication
import org.koin.compose.KoinContext
import org.koin.sample.androidx.compose.data.sdk.SDKData
import org.koin.sample.androidx.compose.di.appModule
import java.util.logging.Logger

class MainActivity : ScopeActivity() {
Expand All @@ -19,11 +22,9 @@ class MainActivity : ScopeActivity() {
assert(getKoin().getOrNull<SDKData>() == null)

setContent {
KoinAndroidContext {
MaterialTheme {
KoinContext {
App()
}
MaterialTheme {
KoinAndroidContext {
App()
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ import org.koin.compose.error.UnknownKoinContext
import org.koin.core.Koin
import org.koin.core.KoinApplication
import org.koin.core.annotation.KoinInternalApi
import org.koin.core.error.KoinApplicationAlreadyStartedException
import org.koin.core.scope.Scope
import org.koin.dsl.KoinAppDeclaration
import org.koin.dsl.koinApplication
Expand Down Expand Up @@ -111,7 +110,7 @@ fun KoinApplication(
application: KoinAppDeclaration,
content: @Composable () -> Unit
) {
val koin = rememberKoinApplication(koinApplication = koinApplication(application))
val koin = rememberKoinApplication(koinApplication(application))
CompositionLocalProvider(
LocalKoinApplication provides koin,
LocalKoinScope provides koin.scopeRegistry.rootScope,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,10 @@ import org.koin.core.annotation.KoinInternalApi
*
* @author Arnaud Giuliani
*/
@OptIn(KoinInternalApi::class)
@Composable
inline fun rememberKoinApplication(koinApplication: KoinApplication): Koin {
val wrapper = remember(koinApplication) {
val wrapper = remember {
CompositionKoinApplicationLoader(koinApplication)
}
return wrapper.koinApplication.koin
Expand Down

0 comments on commit 7bd030c

Please sign in to comment.