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) {
|
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) {
|
||||||
|
if (newCirculars.size < circulars.value?.size ?: 0) {
|
||||||
|
AppDatabase.getInstance(getApplication()).circularDao()
|
||||||
|
.deleteAll()
|
||||||
|
}
|
||||||
|
|
||||||
AppDatabase.getInstance(getApplication()).circularDao()
|
AppDatabase.getInstance(getApplication()).circularDao()
|
||||||
.insertAll(newCirculars)
|
.insertAll(newCirculars)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -100,6 +100,9 @@ class PollWork(appContext: Context, workerParams: WorkerParameters) :
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (newCirculars.size != oldCirculars.size) {
|
if (newCirculars.size != oldCirculars.size) {
|
||||||
|
val oldCircularsSize =
|
||||||
|
if (newCirculars.size < oldCirculars.size) 0 else oldCirculars.size
|
||||||
|
|
||||||
withContext(Dispatchers.Main) {
|
withContext(Dispatchers.Main) {
|
||||||
createNotificationChannel()
|
createNotificationChannel()
|
||||||
|
|
||||||
@@ -107,7 +110,7 @@ class PollWork(appContext: Context, workerParams: WorkerParameters) :
|
|||||||
.setBigContentTitle(applicationContext.getString(R.string.notification_summary_title))
|
.setBigContentTitle(applicationContext.getString(R.string.notification_summary_title))
|
||||||
.setSummaryText(applicationContext.getString(R.string.notification_summary))
|
.setSummaryText(applicationContext.getString(R.string.notification_summary))
|
||||||
|
|
||||||
val circularCount = newCirculars.size - oldCirculars.size
|
val circularCount = newCirculars.size - oldCircularsSize
|
||||||
|
|
||||||
for (i in 0 until circularCount) {
|
for (i in 0 until circularCount) {
|
||||||
createNotification(newCirculars[i])
|
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()
|
AppDatabase.getInstance(applicationContext).circularDao()
|
||||||
.insertAll(newCirculars)
|
.insertAll(newCirculars)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user