diff --git a/config/detekt/detekt-baseline-legacy-core.xml b/config/detekt/detekt-baseline-legacy-core.xml
index 18b17f36d1..16bc6b47cd 100644
--- a/config/detekt/detekt-baseline-legacy-core.xml
+++ b/config/detekt/detekt-baseline-legacy-core.xml
@@ -96,7 +96,7 @@
TooGenericExceptionCaught:SettingsExporter.kt$SettingsExporter$e: Exception
TooManyFunctions:CoreResourceProvider.kt$CoreResourceProvider
TooManyFunctions:HttpUriParser.kt$HttpUriParser : UriParser
- TooManyFunctions:K9.kt$K9 : EarlyInit
+ TooManyFunctions:K9.kt$K9 : KoinComponent
TooManyFunctions:K9BackendFolder.kt$K9BackendFolder : BackendFolder
TooManyFunctions:MessageListCache.kt$MessageListCache
TooManyFunctions:NotificationActionCreator.kt$NotificationActionCreator
diff --git a/feature/widget/unread/src/main/kotlin/app/k9mail/feature/widget/unread/BaseUnreadWidgetProvider.kt b/feature/widget/unread/src/main/kotlin/app/k9mail/feature/widget/unread/BaseUnreadWidgetProvider.kt
index c74d5fa906..020ea8bcc5 100644
--- a/feature/widget/unread/src/main/kotlin/app/k9mail/feature/widget/unread/BaseUnreadWidgetProvider.kt
+++ b/feature/widget/unread/src/main/kotlin/app/k9mail/feature/widget/unread/BaseUnreadWidgetProvider.kt
@@ -8,12 +8,12 @@ import android.content.Intent
import android.view.View
import android.widget.RemoteViews
import androidx.core.app.PendingIntentCompat
-import app.k9mail.legacy.di.EarlyInit
-import app.k9mail.legacy.di.inject
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.SupervisorJob
import kotlinx.coroutines.launch
+import org.koin.core.component.KoinComponent
+import org.koin.core.component.inject
import timber.log.Timber
/**
@@ -46,7 +46,7 @@ import timber.log.Timber
* qualified class name that can't ever be changed. Otherwise widgets created with older versions of the app
* will stop working.
*/
-abstract class BaseUnreadWidgetProvider : AppWidgetProvider(), EarlyInit {
+abstract class BaseUnreadWidgetProvider : AppWidgetProvider(), KoinComponent {
private val repository: UnreadWidgetRepository by inject()
private val widgetScope = CoroutineScope(SupervisorJob() + Dispatchers.IO)
diff --git a/legacy/core/src/main/java/com/fsck/k9/Core.kt b/legacy/core/src/main/java/com/fsck/k9/Core.kt
index 10126ba3be..2ad12d8fc3 100644
--- a/legacy/core/src/main/java/com/fsck/k9/Core.kt
+++ b/legacy/core/src/main/java/com/fsck/k9/Core.kt
@@ -3,17 +3,17 @@ package com.fsck.k9
import android.content.ComponentName
import android.content.Context
import android.content.pm.PackageManager
-import app.k9mail.legacy.di.EarlyInit
-import app.k9mail.legacy.di.inject
import com.fsck.k9.job.K9JobManager
import com.fsck.k9.mail.internet.BinaryTempFileBody
import com.fsck.k9.notification.NotificationController
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
+import org.koin.core.component.KoinComponent
+import org.koin.core.component.inject
import org.koin.core.qualifier.named
-object Core : EarlyInit {
+object Core : KoinComponent {
private val context: Context by inject()
private val appConfig: AppConfig by inject()
private val jobManager: K9JobManager by inject()
diff --git a/legacy/core/src/main/java/com/fsck/k9/K9.kt b/legacy/core/src/main/java/com/fsck/k9/K9.kt
index a9f89de472..08aae8a41a 100644
--- a/legacy/core/src/main/java/com/fsck/k9/K9.kt
+++ b/legacy/core/src/main/java/com/fsck/k9/K9.kt
@@ -6,8 +6,6 @@ import app.k9mail.feature.telemetry.api.TelemetryManager
import app.k9mail.legacy.account.Account
import app.k9mail.legacy.account.Account.SortType
import app.k9mail.legacy.di.DI
-import app.k9mail.legacy.di.EarlyInit
-import app.k9mail.legacy.di.inject
import com.fsck.k9.core.BuildConfig
import com.fsck.k9.mail.K9MailLib
import com.fsck.k9.mailstore.LocalStore
@@ -15,11 +13,13 @@ import com.fsck.k9.preferences.RealGeneralSettingsManager
import com.fsck.k9.preferences.Storage
import com.fsck.k9.preferences.StorageEditor
import kotlinx.datetime.Clock
+import org.koin.core.component.KoinComponent
+import org.koin.core.component.inject
import timber.log.Timber
import timber.log.Timber.DebugTree
// TODO "Use GeneralSettingsManager and GeneralSettings instead"
-object K9 : EarlyInit {
+object K9 : KoinComponent {
private val generalSettingsManager: RealGeneralSettingsManager by inject()
private val telemetryManager: TelemetryManager by inject()
diff --git a/legacy/di/src/main/kotlin/app/k9mail/legacy/di/DI.kt b/legacy/di/src/main/kotlin/app/k9mail/legacy/di/DI.kt
index 34a71ac410..680b1ea1b0 100644
--- a/legacy/di/src/main/kotlin/app/k9mail/legacy/di/DI.kt
+++ b/legacy/di/src/main/kotlin/app/k9mail/legacy/di/DI.kt
@@ -5,9 +5,6 @@ import org.koin.android.ext.koin.androidContext
import org.koin.android.ext.koin.androidLogger
import org.koin.core.context.startKoin
import org.koin.core.module.Module
-import org.koin.core.parameter.ParametersDefinition
-import org.koin.core.qualifier.Qualifier
-import org.koin.java.KoinJavaComponent.getKoin
import org.koin.java.KoinJavaComponent.get as koinGet
object DI {
@@ -36,11 +33,3 @@ object DI {
return koinGet(T::class.java)
}
}
-
-interface EarlyInit
-
-// Copied from ComponentCallbacks.inject()
-inline fun EarlyInit.inject(
- qualifier: Qualifier? = null,
- noinline parameters: ParametersDefinition? = null,
-) = lazy { getKoin().get(qualifier, parameters) }