mirror of
https://github.com/vector-im/element-android.git
synced 2024-11-16 02:05:06 +08:00
update notifications with setOnlyAlertOnce
This commit is contained in:
parent
2e4750a0ab
commit
1d9baaf0e3
@ -100,13 +100,14 @@ class NotificationDrawerManager @Inject constructor(private val context: Context
|
||||
if (existing != null) {
|
||||
if (existing.isPushGatewayEvent) {
|
||||
// Use the event coming from the event stream as it may contains more info than
|
||||
// the fcm one (like type/content/clear text)
|
||||
// the fcm one (like type/content/clear text) (e.g when an encrypted message from
|
||||
// FCM should be update with clear text after a sync)
|
||||
// In this case the message has already been notified, and might have done some noise
|
||||
// So we want the notification to be updated even if it has already been displayed
|
||||
// But it should make no noise (e.g when an encrypted message from FCM should be
|
||||
// update with clear text after a sync)
|
||||
// Use setOnlyAlertOnce to ensure update notification does not interfere with sound
|
||||
// from first notify invocation as outlined in:
|
||||
// https://developer.android.com/training/notify-user/build-notification#Updating
|
||||
notifiableEvent.hasBeenDisplayed = false
|
||||
notifiableEvent.noisy = false
|
||||
eventList.remove(existing)
|
||||
eventList.add(notifiableEvent)
|
||||
} else {
|
||||
|
@ -540,6 +540,7 @@ class NotificationUtils @Inject constructor(private val context: Context,
|
||||
|
||||
val channelID = if (roomInfo.shouldBing) NOISY_NOTIFICATION_CHANNEL_ID else SILENT_NOTIFICATION_CHANNEL_ID
|
||||
return NotificationCompat.Builder(context, channelID)
|
||||
.setOnlyAlertOnce(true)
|
||||
.setWhen(lastMessageTimestamp)
|
||||
// MESSAGING_STYLE sets title and content for API 16 and above devices.
|
||||
.setStyle(messageStyle)
|
||||
@ -641,6 +642,7 @@ class NotificationUtils @Inject constructor(private val context: Context,
|
||||
val channelID = if (inviteNotifiableEvent.noisy) NOISY_NOTIFICATION_CHANNEL_ID else SILENT_NOTIFICATION_CHANNEL_ID
|
||||
|
||||
return NotificationCompat.Builder(context, channelID)
|
||||
.setOnlyAlertOnce(true)
|
||||
.setContentTitle(stringProvider.getString(R.string.app_name))
|
||||
.setContentText(inviteNotifiableEvent.description)
|
||||
.setGroup(stringProvider.getString(R.string.app_name))
|
||||
@ -704,6 +706,7 @@ class NotificationUtils @Inject constructor(private val context: Context,
|
||||
val channelID = if (simpleNotifiableEvent.noisy) NOISY_NOTIFICATION_CHANNEL_ID else SILENT_NOTIFICATION_CHANNEL_ID
|
||||
|
||||
return NotificationCompat.Builder(context, channelID)
|
||||
.setOnlyAlertOnce(true)
|
||||
.setContentTitle(stringProvider.getString(R.string.app_name))
|
||||
.setContentText(simpleNotifiableEvent.description)
|
||||
.setGroup(stringProvider.getString(R.string.app_name))
|
||||
|
Loading…
Reference in New Issue
Block a user