Use dependency injection for most singletons
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
package de.mm20.launcher2.music
|
||||
|
||||
import org.koin.android.ext.koin.androidContext
|
||||
import org.koin.androidx.viewmodel.dsl.viewModel
|
||||
import org.koin.dsl.module
|
||||
|
||||
val musicModule = module {
|
||||
single { MusicRepository(androidContext()) }
|
||||
viewModel { MusicViewModel(get()) }
|
||||
}
|
||||
@@ -24,7 +24,7 @@ import kotlinx.coroutines.*
|
||||
import java.io.File
|
||||
import java.util.concurrent.Executors
|
||||
|
||||
class MusicRepository private constructor(val context: Context) {
|
||||
class MusicRepository(val context: Context) {
|
||||
|
||||
private val scope = CoroutineScope(Job() + Dispatchers.Main)
|
||||
|
||||
@@ -245,12 +245,6 @@ class MusicRepository private constructor(val context: Context) {
|
||||
}
|
||||
|
||||
companion object {
|
||||
private lateinit var instance: MusicRepository
|
||||
|
||||
fun getInstance(context: Context): MusicRepository {
|
||||
if (!::instance.isInitialized) instance = MusicRepository(context.applicationContext)
|
||||
return instance
|
||||
}
|
||||
|
||||
private const val PREFS = "music"
|
||||
private const val PREFS_KEY_TITLE = "title"
|
||||
|
||||
@@ -1,16 +1,14 @@
|
||||
package de.mm20.launcher2.music
|
||||
|
||||
import android.app.Application
|
||||
import android.app.PendingIntent
|
||||
import android.content.Context
|
||||
import android.graphics.Bitmap
|
||||
import androidx.lifecycle.AndroidViewModel
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.ViewModel
|
||||
|
||||
class MusicViewModel(app: Application) : AndroidViewModel(app) {
|
||||
|
||||
val musicRepository = MusicRepository.getInstance(app)
|
||||
class MusicViewModel(
|
||||
val musicRepository: MusicRepository
|
||||
) : ViewModel() {
|
||||
|
||||
val title: LiveData<String?> = musicRepository.title
|
||||
val artist: LiveData<String?> = musicRepository.artist
|
||||
|
||||
Reference in New Issue
Block a user