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