Save widgets in WidgetRepository coroutine scope
This commit is contained in:
parent
5c104f76ee
commit
fb407afe21
@ -3,14 +3,12 @@ package de.mm20.launcher2.ui.launcher.widgets
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.liveData
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import de.mm20.launcher2.widgets.Widget
|
||||
import de.mm20.launcher2.widgets.WidgetRepository
|
||||
import kotlinx.coroutines.launch
|
||||
import org.koin.core.component.KoinComponent
|
||||
import org.koin.core.component.inject
|
||||
|
||||
class WidgetsVM: ViewModel(), KoinComponent {
|
||||
class WidgetsVM : ViewModel(), KoinComponent {
|
||||
private val widgetRepository: WidgetRepository by inject()
|
||||
|
||||
val isEditMode = MutableLiveData(false)
|
||||
@ -24,12 +22,10 @@ class WidgetsVM: ViewModel(), KoinComponent {
|
||||
}
|
||||
|
||||
fun saveWidgets(widgets: List<Widget>) {
|
||||
viewModelScope.launch {
|
||||
widgetRepository.saveWidgets(widgets)
|
||||
}
|
||||
widgetRepository.saveWidgets(widgets)
|
||||
}
|
||||
|
||||
fun getInternalWidgets() : List<Widget> {
|
||||
fun getInternalWidgets(): List<Widget> {
|
||||
return widgetRepository.getInternalWidgets()
|
||||
}
|
||||
}
|
||||
@ -3,15 +3,15 @@ package de.mm20.launcher2.widgets
|
||||
import android.content.Context
|
||||
import de.mm20.launcher2.widgets.R
|
||||
import de.mm20.launcher2.database.AppDatabase
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.withContext
|
||||
import kotlinx.coroutines.*
|
||||
import java.util.concurrent.Executors
|
||||
|
||||
class WidgetRepository(
|
||||
val context: Context
|
||||
) {
|
||||
|
||||
private val scope = CoroutineScope(Job() + Dispatchers.Default)
|
||||
|
||||
suspend fun getWidgets(): List<Widget> {
|
||||
return withContext(Dispatchers.IO) {
|
||||
AppDatabase.getInstance(context).widgetDao().getWidgets().map { Widget(it) }
|
||||
@ -27,9 +27,11 @@ class WidgetRepository(
|
||||
}
|
||||
|
||||
|
||||
suspend fun saveWidgets(widgets: List<Widget>) {
|
||||
withContext(Dispatchers.IO) {
|
||||
AppDatabase.getInstance(context).widgetDao().updateWidgets(widgets.mapIndexed { i, widget -> widget.toDatabaseEntity(i) })
|
||||
fun saveWidgets(widgets: List<Widget>) {
|
||||
scope.launch {
|
||||
withContext(Dispatchers.IO) {
|
||||
AppDatabase.getInstance(context).widgetDao().updateWidgets(widgets.mapIndexed { i, widget -> widget.toDatabaseEntity(i) })
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user