From c73edaa12fa51969aa5f90fec44d9c3d6c97591f Mon Sep 17 00:00:00 2001 From: rushiiMachine <33725716+rushiiMachine@users.noreply.github.com> Date: Fri, 12 Jan 2024 16:20:58 -0800 Subject: [PATCH] fix(DI): properly add modules to koin --- .../aliucord/manager/ManagerApplication.kt | 29 ++++++++++--------- .../kotlin/com/aliucord/manager/di/Http.kt | 7 ++--- .../com/aliucord/manager/di/Managers.kt | 6 ++-- 3 files changed, 20 insertions(+), 22 deletions(-) diff --git a/app/src/main/kotlin/com/aliucord/manager/ManagerApplication.kt b/app/src/main/kotlin/com/aliucord/manager/ManagerApplication.kt index dd0c198..25e3ac4 100644 --- a/app/src/main/kotlin/com/aliucord/manager/ManagerApplication.kt +++ b/app/src/main/kotlin/com/aliucord/manager/ManagerApplication.kt @@ -20,39 +20,40 @@ class ManagerApplication : Application() { androidContext(this@ManagerApplication) // HTTP - module { - singleOf(::provideJson) - singleOf(::provideHttpClient) - } + modules(module { + single { provideJson() } + single { provideHttpClient() } + }) // Services - module { + modules(module { + singleOf(::HttpService) singleOf(::GithubService) singleOf(::MavenService) singleOf(::AliucordGithubService) - } + }) // Repositories - module { + modules(module { singleOf(::GithubRepository) singleOf(::AliucordMavenRepository) - } + }) // ViewModels - module { + modules(module { viewModelOf(::HomeViewModel) viewModelOf(::PluginsViewModel) viewModelOf(::AboutViewModel) viewModelOf(::InstallViewModel) viewModelOf(::SettingsViewModel) viewModelOf(::UpdaterViewModel) - } + }) // Managers - module { - singleOf(::providePreferences) - singleOf(::provideDownloadManager) - } + modules(module { + single { providePreferences() } + single { provideDownloadManager() } + }) } } } diff --git a/app/src/main/kotlin/com/aliucord/manager/di/Http.kt b/app/src/main/kotlin/com/aliucord/manager/di/Http.kt index 9943563..591dc25 100644 --- a/app/src/main/kotlin/com/aliucord/manager/di/Http.kt +++ b/app/src/main/kotlin/com/aliucord/manager/di/Http.kt @@ -10,13 +10,12 @@ import org.koin.core.scope.Scope import java.net.Inet4Address import java.net.InetAddress -context(Scope) -fun provideJson() = Json { +@Suppress("UnusedReceiverParameter") +fun Scope.provideJson() = Json { ignoreUnknownKeys = true } -context(Scope) -fun provideHttpClient() = HttpClient(OkHttp) { +fun Scope.provideHttpClient() = HttpClient(OkHttp) { val json: Json = get() engine { diff --git a/app/src/main/kotlin/com/aliucord/manager/di/Managers.kt b/app/src/main/kotlin/com/aliucord/manager/di/Managers.kt index f94ec3b..6b2503a 100644 --- a/app/src/main/kotlin/com/aliucord/manager/di/Managers.kt +++ b/app/src/main/kotlin/com/aliucord/manager/di/Managers.kt @@ -6,14 +6,12 @@ import com.aliucord.manager.domain.manager.DownloadManager import com.aliucord.manager.domain.manager.PreferencesManager import org.koin.core.scope.Scope -context(Scope) -fun providePreferences(): PreferencesManager { +fun Scope.providePreferences(): PreferencesManager { val ctx: Context = get() return PreferencesManager(ctx.getSharedPreferences("preferences", Context.MODE_PRIVATE)) } -context(Scope) -fun provideDownloadManager(): DownloadManager { +fun Scope.provideDownloadManager(): DownloadManager { val application: Application = get() return DownloadManager(application) }