diff --git a/androidApp/src/main/java/com/makeevrserg/empireprojekt/mobile/MainActivity.kt b/androidApp/src/main/java/com/makeevrserg/empireprojekt/mobile/MainActivity.kt index 0e34161c..3b2b19c0 100644 --- a/androidApp/src/main/java/com/makeevrserg/empireprojekt/mobile/MainActivity.kt +++ b/androidApp/src/main/java/com/makeevrserg/empireprojekt/mobile/MainActivity.kt @@ -52,7 +52,7 @@ class MainActivity : ComponentActivity() { } } } - ComposeApplication(rootModule.themeSwitcherComponent.value) { + ComposeApplication(rootModule.componentsModule.themeSwitcherComponent.value) { ModalBottomSheetLayout( sheetState = bottomSheetState.sheetState, sheetContent = bottomSheetState.sheetContent.value, diff --git a/androidApp/src/main/java/com/makeevrserg/empireprojekt/mobile/work/CheckStatusWork.kt b/androidApp/src/main/java/com/makeevrserg/empireprojekt/mobile/work/CheckStatusWork.kt index 5a6bcb3e..6f3e63fd 100644 --- a/androidApp/src/main/java/com/makeevrserg/empireprojekt/mobile/work/CheckStatusWork.kt +++ b/androidApp/src/main/java/com/makeevrserg/empireprojekt/mobile/work/CheckStatusWork.kt @@ -24,7 +24,7 @@ class CheckStatusWork( applicationContext.asEmpireApp().rootModule } private val rootStatusComponent by Provider { - rootModule.rootStatusComponent.value + rootModule.componentsModule.rootStatusComponent.value } override suspend fun doWork(): Result { diff --git a/modules/features/root/src/commonMain/kotlin/com/makeevrserg/empireprojekt/mobile/features/root/di/ComponentsModule.kt b/modules/features/root/src/commonMain/kotlin/com/makeevrserg/empireprojekt/mobile/features/root/di/ComponentsModule.kt new file mode 100644 index 00000000..66eb6c5b --- /dev/null +++ b/modules/features/root/src/commonMain/kotlin/com/makeevrserg/empireprojekt/mobile/features/root/di/ComponentsModule.kt @@ -0,0 +1,11 @@ +package com.makeevrserg.empireprojekt.mobile.features.root.di + +import com.makeevrserg.empireprojekt.mobile.features.status.root.RootStatusComponent +import com.makeevrserg.empireprojekt.mobile.features.theme.ThemeSwitcherComponent +import ru.astrainteractive.klibs.kdi.Single + +interface ComponentsModule { + // Global components + val rootStatusComponent: Single + val themeSwitcherComponent: Single +} diff --git a/modules/features/root/src/commonMain/kotlin/com/makeevrserg/empireprojekt/mobile/features/root/di/RootModule.kt b/modules/features/root/src/commonMain/kotlin/com/makeevrserg/empireprojekt/mobile/features/root/di/RootModule.kt index e63ff206..a565b243 100644 --- a/modules/features/root/src/commonMain/kotlin/com/makeevrserg/empireprojekt/mobile/features/root/di/RootModule.kt +++ b/modules/features/root/src/commonMain/kotlin/com/makeevrserg/empireprojekt/mobile/features/root/di/RootModule.kt @@ -2,18 +2,12 @@ package com.makeevrserg.empireprojekt.mobile.features.root.di import com.makeevrserg.empireprojekt.mobile.features.logic.splash.di.SplashComponentModule import com.makeevrserg.empireprojekt.mobile.features.status.di.StatusModule -import com.makeevrserg.empireprojekt.mobile.features.status.root.RootStatusComponent -import com.makeevrserg.empireprojekt.mobile.features.theme.ThemeSwitcherComponent import ru.astrainteractive.klibs.kdi.Module -import ru.astrainteractive.klibs.kdi.Single interface RootModule : Module { val servicesModule: ServicesModule val statusModule: StatusModule val splashModule: SplashComponentModule - - // Global components - val rootStatusComponent: Single - val themeSwitcherComponent: Single + val componentsModule: ComponentsModule } diff --git a/modules/features/root/src/commonMain/kotlin/com/makeevrserg/empireprojekt/mobile/features/root/di/impl/ComponentsModuleImpl.kt b/modules/features/root/src/commonMain/kotlin/com/makeevrserg/empireprojekt/mobile/features/root/di/impl/ComponentsModuleImpl.kt new file mode 100644 index 00000000..4d7d5061 --- /dev/null +++ b/modules/features/root/src/commonMain/kotlin/com/makeevrserg/empireprojekt/mobile/features/root/di/impl/ComponentsModuleImpl.kt @@ -0,0 +1,25 @@ +package com.makeevrserg.empireprojekt.mobile.features.root.di.impl + +import com.makeevrserg.empireprojekt.mobile.features.root.di.ComponentsModule +import com.makeevrserg.empireprojekt.mobile.features.root.di.RootModule +import com.makeevrserg.empireprojekt.mobile.features.status.root.DefaultRootStatusComponent +import com.makeevrserg.empireprojekt.mobile.features.status.root.RootStatusComponent +import com.makeevrserg.empireprojekt.mobile.features.theme.DefaultThemeSwitcherComponentComponent +import com.makeevrserg.empireprojekt.mobile.features.theme.ThemeSwitcherComponent +import com.makeevrserg.empireprojekt.mobile.features.theme.di.ThemeSwitcherModule +import ru.astrainteractive.klibs.kdi.Single + +class ComponentsModuleImpl( + rootModule: RootModule +) : ComponentsModule { + override val rootStatusComponent: Single = Single { + DefaultRootStatusComponent(rootModule.statusModule) + } + + override val themeSwitcherComponent: Single = Single { + val module = ThemeSwitcherModule.Default( + settings = rootModule.servicesModule.settings.value + ) + DefaultThemeSwitcherComponentComponent(module) + } +} diff --git a/modules/features/root/src/commonMain/kotlin/com/makeevrserg/empireprojekt/mobile/features/root/di/impl/RootModuleImpl.kt b/modules/features/root/src/commonMain/kotlin/com/makeevrserg/empireprojekt/mobile/features/root/di/impl/RootModuleImpl.kt index 4f488cf3..6106d0e6 100644 --- a/modules/features/root/src/commonMain/kotlin/com/makeevrserg/empireprojekt/mobile/features/root/di/impl/RootModuleImpl.kt +++ b/modules/features/root/src/commonMain/kotlin/com/makeevrserg/empireprojekt/mobile/features/root/di/impl/RootModuleImpl.kt @@ -1,14 +1,10 @@ package com.makeevrserg.empireprojekt.mobile.features.root.di.impl import com.makeevrserg.empireprojekt.mobile.features.logic.splash.di.SplashComponentModule +import com.makeevrserg.empireprojekt.mobile.features.root.di.ComponentsModule import com.makeevrserg.empireprojekt.mobile.features.root.di.RootModule import com.makeevrserg.empireprojekt.mobile.features.root.di.ServicesModule import com.makeevrserg.empireprojekt.mobile.features.status.di.StatusModule -import com.makeevrserg.empireprojekt.mobile.features.status.root.DefaultRootStatusComponent -import com.makeevrserg.empireprojekt.mobile.features.status.root.RootStatusComponent -import com.makeevrserg.empireprojekt.mobile.features.theme.DefaultThemeSwitcherComponentComponent -import com.makeevrserg.empireprojekt.mobile.features.theme.ThemeSwitcherComponent -import com.makeevrserg.empireprojekt.mobile.features.theme.di.ThemeSwitcherModule import ru.astrainteractive.klibs.kdi.Provider import ru.astrainteractive.klibs.kdi.Single import ru.astrainteractive.klibs.kdi.getValue @@ -33,12 +29,7 @@ class RootModuleImpl : RootModule { ) } - override val rootStatusComponent: Single = Single { - DefaultRootStatusComponent(statusModule) - } - - override val themeSwitcherComponent: Single = Single { - val module = ThemeSwitcherModule.Default(servicesModule.settings.value) - DefaultThemeSwitcherComponentComponent(module) + override val componentsModule: ComponentsModule by Single { + ComponentsModuleImpl(this) } } diff --git a/modules/features/root/src/commonMain/kotlin/com/makeevrserg/empireprojekt/mobile/features/root/screen/di/factory/RootScreenComponentChildFactory.kt b/modules/features/root/src/commonMain/kotlin/com/makeevrserg/empireprojekt/mobile/features/root/screen/di/factory/RootScreenComponentChildFactory.kt index 965c2fb2..7830b423 100644 --- a/modules/features/root/src/commonMain/kotlin/com/makeevrserg/empireprojekt/mobile/features/root/screen/di/factory/RootScreenComponentChildFactory.kt +++ b/modules/features/root/src/commonMain/kotlin/com/makeevrserg/empireprojekt/mobile/features/root/screen/di/factory/RootScreenComponentChildFactory.kt @@ -23,8 +23,8 @@ class RootScreenComponentChildFactory( RootScreenComponent.Child.Status -> { DefaultRootScreenComponent.Configuration.Status( - themeSwitcherComponent = rootModule.themeSwitcherComponent.value, - rootStatusComponent = rootModule.rootStatusComponent.value + themeSwitcherComponent = rootModule.componentsModule.themeSwitcherComponent.value, + rootStatusComponent = rootModule.componentsModule.rootStatusComponent.value ) } }