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"
|
const val CHANNEL_ID = "net.underdesk.circolapp.NEW_CIRCULAR"
|
||||||
|
|
||||||
private const val pollWorkName = "net.underdesk.circolapp.POLL_WORK"
|
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 const val flexIntervalMin: Long = 10
|
||||||
|
|
||||||
private fun getPollWorkRequest(): PeriodicWorkRequest {
|
private fun getPollWorkRequest(): PeriodicWorkRequest {
|
||||||
@@ -75,9 +75,33 @@ class PollWork(appContext: Context, workerParams: WorkerParameters) :
|
|||||||
val newCirculars = fetcher.getCircularsFromServer()
|
val newCirculars = fetcher.getCircularsFromServer()
|
||||||
|
|
||||||
if (newCirculars.size != oldCirculars.size) {
|
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])
|
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()
|
AppDatabase.getInstance(applicationContext).circularDao().deleteAll()
|
||||||
|
|||||||
@@ -4,7 +4,10 @@
|
|||||||
<string name="title_favourites">Favourites</string>
|
<string name="title_favourites">Favourites</string>
|
||||||
<string name="title_reminders">Reminders</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_name">Circular letters</string>
|
||||||
<string name="channel_description">Notify when your school issue a new circular letter</string>
|
<string name="channel_description">Notify when your school issue a new circular letter</string>
|
||||||
|
|||||||
Reference in New Issue
Block a user