Use dependency injection for most singletons

This commit is contained in:
MM20
2021-10-10 12:15:54 +02:00
parent 023bb2cbb1
commit 087d4fd455
144 changed files with 1789 additions and 1277 deletions
@@ -6,7 +6,7 @@ import de.mm20.launcher2.search.BaseSearchableRepository
import de.mm20.launcher2.search.data.Calculator
import org.mariuszgromada.math.mxparser.Expression
class CalculatorRepository private constructor() : BaseSearchableRepository() {
class CalculatorRepository : BaseSearchableRepository() {
val calculator = MutableLiveData<Calculator?>()
@@ -52,13 +52,4 @@ class CalculatorRepository private constructor() : BaseSearchableRepository() {
}
calculator.value = calc
}
companion object {
private lateinit var instance: CalculatorRepository
fun getInstance(): CalculatorRepository {
if (!::instance.isInitialized) instance = CalculatorRepository()
return instance
}
}
}
@@ -2,6 +2,8 @@ package de.mm20.launcher2.calculator
import androidx.lifecycle.ViewModel
class CalculatorViewModel: ViewModel() {
val calculator = CalculatorRepository.getInstance().calculator
class CalculatorViewModel(
calculatorRepository: CalculatorRepository
): ViewModel() {
val calculator = calculatorRepository.calculator
}
@@ -0,0 +1,9 @@
package de.mm20.launcher2.calculator
import org.koin.androidx.viewmodel.dsl.viewModel
import org.koin.dsl.module
val calculatorModule = module {
single { CalculatorRepository() }
viewModel { CalculatorViewModel(get()) }
}