Remove old circulars if a new circulars list is available

This commit is contained in:
2020-09-10 19:57:24 +02:00
committed by Matte23
parent cc6f2f2c1a
commit 1d33a1ab07
2 changed files with 14 additions and 1 deletions

View File

@@ -56,6 +56,11 @@ class CircularLetterViewModel(application: Application) : AndroidViewModel(appli
withContext(Dispatchers.IO) {
val newCirculars = fetcher.getCircularsFromServer()
if (newCirculars.size != circulars.value?.size ?: true) {
if (newCirculars.size < circulars.value?.size ?: 0) {
AppDatabase.getInstance(getApplication()).circularDao()
.deleteAll()
}
AppDatabase.getInstance(getApplication()).circularDao()
.insertAll(newCirculars)
}

View File

@@ -100,6 +100,9 @@ class PollWork(appContext: Context, workerParams: WorkerParameters) :
}
if (newCirculars.size != oldCirculars.size) {
val oldCircularsSize =
if (newCirculars.size < oldCirculars.size) 0 else oldCirculars.size
withContext(Dispatchers.Main) {
createNotificationChannel()
@@ -107,7 +110,7 @@ class PollWork(appContext: Context, workerParams: WorkerParameters) :
.setBigContentTitle(applicationContext.getString(R.string.notification_summary_title))
.setSummaryText(applicationContext.getString(R.string.notification_summary))
val circularCount = newCirculars.size - oldCirculars.size
val circularCount = newCirculars.size - oldCircularsSize
for (i in 0 until circularCount) {
createNotification(newCirculars[i])
@@ -135,6 +138,11 @@ class PollWork(appContext: Context, workerParams: WorkerParameters) :
}
}
if (newCirculars.size < oldCirculars.size) {
AppDatabase.getInstance(applicationContext).circularDao()
.deleteAll()
}
AppDatabase.getInstance(applicationContext).circularDao()
.insertAll(newCirculars)
}