From cc6f2f2c1a11c43918c4a1708e89818c67e013b6 Mon Sep 17 00:00:00 2001 From: Matte23 Date: Thu, 10 Sep 2020 19:27:06 +0200 Subject: [PATCH] Update database in a worker thread --- .../circolapp/viewmodels/CircularLetterViewModel.kt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/net/underdesk/circolapp/viewmodels/CircularLetterViewModel.kt b/app/src/main/java/net/underdesk/circolapp/viewmodels/CircularLetterViewModel.kt index 4aa55d6..da460e9 100644 --- a/app/src/main/java/net/underdesk/circolapp/viewmodels/CircularLetterViewModel.kt +++ b/app/src/main/java/net/underdesk/circolapp/viewmodels/CircularLetterViewModel.kt @@ -20,7 +20,9 @@ package net.underdesk.circolapp.viewmodels import android.app.Application import androidx.lifecycle.* +import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import net.underdesk.circolapp.data.AppDatabase import net.underdesk.circolapp.data.Circular import net.underdesk.circolapp.server.DataFetcher @@ -51,10 +53,12 @@ class CircularLetterViewModel(application: Application) : AndroidViewModel(appli val fetcher = DataFetcher() try { - val newCirculars = fetcher.getCircularsFromServer() - if (newCirculars.size != circulars.value?.size ?: true) { - AppDatabase.getInstance(getApplication()).circularDao() - .insertAll(newCirculars) + withContext(Dispatchers.IO) { + val newCirculars = fetcher.getCircularsFromServer() + if (newCirculars.size != circulars.value?.size ?: true) { + AppDatabase.getInstance(getApplication()).circularDao() + .insertAll(newCirculars) + } } } catch (exception: IOException) { showMessage.postValue(true)