Add summary notification and decreased polling time

This commit is contained in:
2019-09-15 19:12:47 +02:00
committed by Matte23
parent 1b57df88d3
commit 8378d97053
2 changed files with 31 additions and 4 deletions

View File

@@ -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()

View File

@@ -4,7 +4,10 @@
<string name="title_favourites">Favourites</string>
<string name="title_reminders">Reminders</string>
<string name="notification_title">Published circular letter number %1$d</string>
<string name="notification_title">Circular letter number %1$d</string>
<string name="notification_summary_title">New circulars published</string>
<string name="notification_summary">New circulars</string>
<string name="notification_summary_text">%1$d new circulars</string>
<string name="channel_name">Circular letters</string>
<string name="channel_description">Notify when your school issue a new circular letter</string>