Skip to content

Commit

Permalink
Use isolated Koin (fix #1)
Browse files Browse the repository at this point in the history
  • Loading branch information
Koitharu committed Dec 15, 2024
1 parent d3d63fa commit 7bf68f4
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 6 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,5 @@ local.properties
/.idea/codeStyles
/.idea/kotlinc.xml
/.idea/runConfigurations.xml
/.idea/gradle.xml
/.idea/gradle.xml
/.idea/AndroidProjectSystem.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package org.koitharu.workinspector

import org.koin.core.Koin
import org.koin.core.component.KoinComponent

internal interface IsolatedKoinComponent : KoinComponent {

override fun getKoin(): Koin = WorkInspectorInitProvider.koin
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,15 @@ import androidx.work.impl.WorkDatabase
import androidx.work.impl.WorkManagerImpl
import org.koin.android.ext.koin.androidContext
import org.koin.android.ext.koin.androidLogger
import org.koin.core.context.startKoin
import org.koin.core.KoinApplication
import org.koin.dsl.koinApplication
import org.koin.dsl.module
import org.koin.ksp.generated.*
import org.koin.ksp.generated.module

public class WorkInspectorInitProvider : ContentProvider() {

override fun onCreate(): Boolean {
startKoin {
koinApp = koinApplication {
androidLogger()
androidContext(checkNotNull(context))
modules(coreModule(), LibModule().module)
Expand Down Expand Up @@ -55,4 +57,12 @@ public class WorkInspectorInitProvider : ContentProvider() {
factory<WorkManagerImpl> { WorkManagerImpl.getInstance(androidContext()) }
factory<WorkDatabase> { get<WorkManagerImpl>().workDatabase }
}

internal companion object {

lateinit var koinApp: KoinApplication
private set

val koin get() = koinApp.koin
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,15 @@ import android.view.View
import androidx.core.view.isVisible
import androidx.fragment.app.Fragment
import org.koin.androidx.viewmodel.ext.android.viewModel
import org.koitharu.workinspector.IsolatedKoinComponent
import org.koitharu.workinspector.R
import org.koitharu.workinspector.databinding.WiFragmentWorkListBinding
import org.koitharu.workinspector.ui.util.collectInLifecycle
import org.koitharu.workinspector.ui.util.showErrorDialog

internal class WorkDetailsFragment : Fragment(R.layout.wi_fragment_work_list) {
internal class WorkDetailsFragment : Fragment(R.layout.wi_fragment_work_list),
IsolatedKoinComponent {

private val viewModel by viewModel<WorkDetailsViewModel>()
private var binding: WiFragmentWorkListBinding? = null

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,17 @@ import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentTransaction
import androidx.fragment.app.commit
import org.koin.androidx.viewmodel.ext.android.viewModel
import org.koitharu.workinspector.IsolatedKoinComponent
import org.koitharu.workinspector.R
import org.koitharu.workinspector.databinding.WiFragmentWorkListBinding
import org.koitharu.workinspector.ui.details.WorkDetailsFragment
import org.koitharu.workinspector.ui.util.collectInLifecycle
import org.koitharu.workinspector.ui.util.showErrorDialog

internal class WorkersListFragment : Fragment(R.layout.wi_fragment_work_list), OnWorkerClickListener {
internal class WorkersListFragment : Fragment(R.layout.wi_fragment_work_list),
IsolatedKoinComponent,
OnWorkerClickListener {

private val viewModel by viewModel<WorkersListViewModel>()
private var binding: WiFragmentWorkListBinding? = null

Expand Down

0 comments on commit 7bf68f4

Please sign in to comment.