diff --git a/app/src/main/java/net/underdesk/circolapp/works/PollWork.kt b/app/src/main/java/net/underdesk/circolapp/works/PollWork.kt index ad6983c..0219254 100644 --- a/app/src/main/java/net/underdesk/circolapp/works/PollWork.kt +++ b/app/src/main/java/net/underdesk/circolapp/works/PollWork.kt @@ -42,7 +42,7 @@ class PollWork(appContext: Context, workerParams: WorkerParameters) : const val CHANNEL_ID = "net.underdesk.circolapp.NEW_CIRCULAR" private const val pollWorkName = "net.underdesk.circolapp.POLL_WORK" - private const val repeatIntervalMin: Long = 30 + private const val repeatIntervalMin: Long = 15 private const val flexIntervalMin: Long = 10 private fun getPollWorkRequest(): PeriodicWorkRequest { @@ -75,9 +75,33 @@ class PollWork(appContext: Context, workerParams: WorkerParameters) : val newCirculars = fetcher.getCircularsFromServer() if (newCirculars.size != oldCirculars.size) { - for (i in oldCirculars.lastIndex..newCirculars.lastIndex) { - createNotificationChannel() + createNotificationChannel() + + val summaryStyle = NotificationCompat.InboxStyle() + .setBigContentTitle(applicationContext.getString(R.string.notification_summary_title)) + .setSummaryText(applicationContext.getString(R.string.notification_summary)) + + for (i in oldCirculars.size..newCirculars.lastIndex) { createNotification(newCirculars[i]) + summaryStyle.addLine(newCirculars[i].name) + } + + val summaryNotification = NotificationCompat.Builder(applicationContext, CHANNEL_ID) + .setContentTitle(applicationContext.getString(R.string.notification_summary_title)) + .setContentText( + applicationContext.getString( + R.string.notification_summary_text, + newCirculars.size - oldCirculars.size + ) + ) + .setSmallIcon(R.drawable.ic_notifications_black_24dp) + .setStyle(summaryStyle) + .setGroup(CHANNEL_ID) + .setGroupSummary(true) + .build() + + with(NotificationManagerCompat.from(applicationContext)) { + notify(-1, summaryNotification) } AppDatabase.getInstance(applicationContext).circularDao().deleteAll() diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index baba40b..5183c97 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -4,7 +4,10 @@ Favourites Reminders - Published circular letter number %1$d + Circular letter number %1$d + New circulars published + New circulars + %1$d new circulars Circular letters Notify when your school issue a new circular letter