Use dependency injection for most singletons
This commit is contained in:
@@ -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()) }
|
||||
}
|
||||
Reference in New Issue
Block a user