Merge pull request #1142 from nextcloud/support-delete-multiple

Support delete-multiple push notification
This commit is contained in:
Andy Scherzinger 2021-04-30 10:26:04 +02:00 committed by GitHub
commit 3972acb34d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 44 additions and 2 deletions

View File

@ -169,6 +169,14 @@ 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()
@ -201,7 +209,11 @@ class MagicFirebaseMessagingService : FirebaseMessagingService() {
LoganSquare.parse(ringtonePreferencesString, RingtoneSettings::class.java)
ringtoneSettings.ringtoneUri
} catch (exception: IOException) {
Uri.parse("android.resource://" + applicationContext.packageName + "/raw/librem_by_feandesign_call")
Uri.parse(
"android.resource://" +
applicationContext.packageName +
"/raw/librem_by_feandesign_call"
)
}
}

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;
@ -99,6 +105,14 @@ public class DecryptedPushMessage {
return this.timestamp;
}
public long[] getNotificationIds() {
return notificationIds;
}
public boolean isDeleteMultiple() {
return deleteMultiple;
}
public void setApp(String app) {
this.app = app;
}
@ -139,6 +153,14 @@ public class DecryptedPushMessage {
this.timestamp = timestamp;
}
public void setNotificationIds(long[] notificationIds) {
this.notificationIds = notificationIds;
}
public void setDeleteMultiple(boolean deleteMultiple) {
this.deleteMultiple = deleteMultiple;
}
public boolean equals(final Object o) {
if (o == this) {
return true;

View File

@ -1 +1 @@
499
489

View File

@ -33,6 +33,10 @@
<Match>
<Class name="~.*\$\$Parcelable.*" />
</Match>
<!-- JSON/Data classes with generated accessor methods -->
<Match>
<Class name="~com\.nextcloud\.talk\.models\.json\.push.*" />
</Match>
<!-- Dagger code is autogenerated. Exclude it from Check. -->
<Match>