From 6878b24570d3a4345a41d22c14db963ff477d00a Mon Sep 17 00:00:00 2001 From: Syer10 Date: Sat, 26 Feb 2022 15:11:05 -0500 Subject: [PATCH] Fix singletons --- .../kotlin/ca/gosyer/data/DataComponent.kt | 65 ++++++++++++++++--- .../kotlin/ca/gosyer/ui/base/UiComponent.kt | 4 +- 2 files changed, 58 insertions(+), 11 deletions(-) diff --git a/data/src/desktopMain/kotlin/ca/gosyer/data/DataComponent.kt b/data/src/desktopMain/kotlin/ca/gosyer/data/DataComponent.kt index 3f9e4b25..44733bee 100644 --- a/data/src/desktopMain/kotlin/ca/gosyer/data/DataComponent.kt +++ b/data/src/desktopMain/kotlin/ca/gosyer/data/DataComponent.kt @@ -44,57 +44,102 @@ actual abstract class DataComponent { abstract val serverService: ServerService + abstract val http: Http + + abstract val serverHostPreferences: ServerHostPreferences + + abstract val serverPreferences: ServerPreferences + + abstract val extensionPreferences: ExtensionPreferences + + abstract val catalogPreferences: CatalogPreferences + + abstract val libraryPreferences: LibraryPreferences + + abstract val readerPreferences: ReaderPreferences + + abstract val uiPreferences: UiPreferences + + abstract val migrationPreferences: MigrationPreferences + + abstract val updatePreferences: UpdatePreferences + @get:AppScope @get:Provides - val serverHostPreferences: ServerHostPreferences + protected val serverHostPreferencesFactory: ServerHostPreferences get() = ServerHostPreferences(preferenceFactory.create("host")) @get:AppScope @get:Provides - val serverPreferences: ServerPreferences + protected val serverPreferencesFactory: ServerPreferences get() = ServerPreferences(preferenceFactory.create("server")) @get:AppScope @get:Provides - val extensionPreferences: ExtensionPreferences + protected val extensionPreferencesFactory: ExtensionPreferences get() = ExtensionPreferences(preferenceFactory.create("extension")) @get:AppScope @get:Provides - val catalogPreferences: CatalogPreferences + protected val catalogPreferencesFactory: CatalogPreferences get() = CatalogPreferences(preferenceFactory.create("catalog")) @get:AppScope @get:Provides - val libraryPreferences: LibraryPreferences + protected val libraryPreferencesFactory: LibraryPreferences get() = LibraryPreferences(preferenceFactory.create("library")) @get:AppScope @get:Provides - val readerPreferences: ReaderPreferences + protected val readerPreferencesFactory: ReaderPreferences get() = ReaderPreferences(preferenceFactory.create("reader")) { name -> preferenceFactory.create("reader", name) } @get:AppScope @get:Provides - val uiPreferences: UiPreferences + protected val uiPreferencesFactory: UiPreferences get() = UiPreferences(preferenceFactory.create("ui")) @get:AppScope @get:Provides - val migrationPreferences: MigrationPreferences + protected val migrationPreferencesFactory: MigrationPreferences get() = MigrationPreferences(preferenceFactory.create("migration")) @get:AppScope @get:Provides - val updatePreferences: UpdatePreferences + protected val updatePreferencesFactory: UpdatePreferences get() = UpdatePreferences(preferenceFactory.create("update")) @get:AppScope @get:Provides - val http: Http + protected val httpFactory: Http get() = httpProvider.get(serverPreferences) + @get:AppScope + @get:Provides + protected val serverServiceFactory: ServerService + get() = ServerService(serverHostPreferences) + + @get:AppScope + @get:Provides + protected val libraryUpdateServiceFactory: LibraryUpdateService + get() = LibraryUpdateService(serverPreferences, http) + + @get:AppScope + @get:Provides + protected val downloadServiceFactory: DownloadService + get() = DownloadService(serverPreferences, http) + + @get:AppScope + @get:Provides + protected val migrationsFactory: Migrations + get() = Migrations(migrationPreferences, readerPreferences) + + @get:AppScope + @get:Provides + protected val updateCheckerFactory: UpdateChecker + get() = UpdateChecker(updatePreferences, http) + companion object } diff --git a/presentation/src/jvmMain/kotlin/ca/gosyer/ui/base/UiComponent.kt b/presentation/src/jvmMain/kotlin/ca/gosyer/ui/base/UiComponent.kt index 5da694e2..baa6b953 100644 --- a/presentation/src/jvmMain/kotlin/ca/gosyer/ui/base/UiComponent.kt +++ b/presentation/src/jvmMain/kotlin/ca/gosyer/ui/base/UiComponent.kt @@ -25,9 +25,11 @@ abstract class UiComponent( abstract val viewModelFactory: ViewModelFactoryImpl + abstract val kamelConfig: KamelConfig + @get:AppScope @get:Provides - val kamelConfig: KamelConfig + protected val kamelConfigFactory: KamelConfig get() = kamelConfigProvider.get() fun getHooks() = arrayOf(