Update database in a worker thread

This commit is contained in:
2020-09-10 19:27:06 +02:00
committed by Matte23
parent 46d471a927
commit cc6f2f2c1a

View File

@@ -20,7 +20,9 @@ package net.underdesk.circolapp.viewmodels
import android.app.Application import android.app.Application
import androidx.lifecycle.* import androidx.lifecycle.*
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import net.underdesk.circolapp.data.AppDatabase import net.underdesk.circolapp.data.AppDatabase
import net.underdesk.circolapp.data.Circular import net.underdesk.circolapp.data.Circular
import net.underdesk.circolapp.server.DataFetcher import net.underdesk.circolapp.server.DataFetcher
@@ -51,10 +53,12 @@ class CircularLetterViewModel(application: Application) : AndroidViewModel(appli
val fetcher = DataFetcher() val fetcher = DataFetcher()
try { try {
val newCirculars = fetcher.getCircularsFromServer() withContext(Dispatchers.IO) {
if (newCirculars.size != circulars.value?.size ?: true) { val newCirculars = fetcher.getCircularsFromServer()
AppDatabase.getInstance(getApplication()).circularDao() if (newCirculars.size != circulars.value?.size ?: true) {
.insertAll(newCirculars) AppDatabase.getInstance(getApplication()).circularDao()
.insertAll(newCirculars)
}
} }
} catch (exception: IOException) { } catch (exception: IOException) {
showMessage.postValue(true) showMessage.postValue(true)