mirror of
https://github.com/Matte23/circolapp.git
synced 2025-12-06 07:29:10 +00:00
Remove old circulars if a new circulars list is available
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user