Support delete-multiple push notification

Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
Joas Schilling 2021-04-20 07:48:49 +02:00 committed by Andy Scherzinger
parent cdaecef095
commit 90bf76e013
No known key found for this signature in database
GPG Key ID: 6CADC7E3523C308B
3 changed files with 14 additions and 0 deletions

View File

@ -169,6 +169,10 @@ class MagicFirebaseMessagingService : FirebaseMessagingService() {
)
} else if (deleteAll) {
cancelAllNotificationsForAccount(applicationContext, signatureVerification!!.userEntity)
} else if (deleteMultiple) {
notificationIds.forEach {
cancelExistingNotificationWithId(applicationContext, signatureVerification!!.userEntity, it)
}
} else if (type == "call") {
val fullScreenIntent = Intent(applicationContext, MagicCallActivity::class.java)
val bundle = Bundle()

View File

@ -586,6 +586,10 @@ public class NotificationWorker extends Worker {
NotificationUtils.INSTANCE.cancelExistingNotificationWithId(context, signatureVerification.getUserEntity(), decryptedPushMessage.getNotificationId());
} else if (decryptedPushMessage.isDeleteAll()) {
NotificationUtils.INSTANCE.cancelAllNotificationsForAccount(context, signatureVerification.getUserEntity());
} else if (decryptedPushMessage.isDeleteMultiple()) {
for (long notificationId : decryptedPushMessage.getNotificationIds()) {
NotificationUtils.INSTANCE.cancelExistingNotificationWithId(context, signatureVerification.getUserEntity(), notificationId);
}
} else {
credentials = ApiUtils.getCredentials(signatureVerification.getUserEntity().getUsername(),
signatureVerification.getUserEntity().getToken());

View File

@ -44,12 +44,18 @@ public class DecryptedPushMessage {
@JsonField(name = "nid")
public long notificationId;
@JsonField(name = "nids")
public long[] notificationIds;
@JsonField(name = "delete")
public boolean delete;
@JsonField(name = "delete-all")
public boolean deleteAll;
@JsonField(name = "delete-multiple")
public boolean deleteMultiple;
@JsonIgnore
public NotificationUser notificationUser;