refactor: Replace Injekt with Koin (Experiment) (#191)

* refactor: Use Koin

An experiment, aims to ditch Injekt and replace it with Koin while providing Injekt API facade for extensions

* fix: Mimic "InjektScope"

* fix: Mimic more classes

Completely fixed source search

* refactor(deps): Use Injekt-Koin library

* fix(r8): Keep Koin
This commit is contained in:
Ahmad Ansori Palembani 2024-09-19 13:18:02 +07:00 committed by GitHub
parent bc65f17f60
commit 9d858cc810
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 182 additions and 192 deletions

View file

@ -59,13 +59,14 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach
import org.conscrypt.Conscrypt
import org.koin.core.context.startKoin
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import uy.kohesive.injekt.injectLazy
import yokai.core.CrashlyticsLogWriter
import yokai.core.di.AppModule
import yokai.core.di.DomainModule
import yokai.core.di.PreferenceModule
import yokai.core.di.appModule
import yokai.core.di.domainModule
import yokai.core.di.preferenceModule
import yokai.core.migration.Migrator
import yokai.core.migration.migrations.migrations
import yokai.domain.base.BasePreferences
@ -97,10 +98,8 @@ open class App : Application(), DefaultLifecycleObserver, SingletonImageLoader.F
if (packageName != process) WebView.setDataDirectorySuffix(process)
}
Injekt.apply {
importModule(PreferenceModule(this@App))
importModule(AppModule(this@App))
importModule(DomainModule())
startKoin {
modules(preferenceModule(this@App), appModule(this@App), domainModule())
}
basePreferences.crashReport().changes()