mirror of
https://github.com/Matte23/circolapp.git
synced 2025-12-06 07:29:10 +00:00
Add summary notification and decreased polling time
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user