mirror of
https://github.com/Matte23/circolapp.git
synced 2025-12-06 07:29:10 +00:00
Update database in a worker thread
This commit is contained in:
@@ -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,11 +53,13 @@ class CircularLetterViewModel(application: Application) : AndroidViewModel(appli
|
|||||||
val fetcher = DataFetcher()
|
val fetcher = DataFetcher()
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
withContext(Dispatchers.IO) {
|
||||||
val newCirculars = fetcher.getCircularsFromServer()
|
val newCirculars = fetcher.getCircularsFromServer()
|
||||||
if (newCirculars.size != circulars.value?.size ?: true) {
|
if (newCirculars.size != circulars.value?.size ?: true) {
|
||||||
AppDatabase.getInstance(getApplication()).circularDao()
|
AppDatabase.getInstance(getApplication()).circularDao()
|
||||||
.insertAll(newCirculars)
|
.insertAll(newCirculars)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} catch (exception: IOException) {
|
} catch (exception: IOException) {
|
||||||
showMessage.postValue(true)
|
showMessage.postValue(true)
|
||||||
} finally {
|
} finally {
|
||||||
|
|||||||
Reference in New Issue
Block a user