fix #650 notifications alerting multiple times

main
Conny Duck 6 years ago
parent b118669c02
commit f4a986a420
  1. 4
      app/src/main/java/com/keylesspalace/tusky/NotificationPullJobCreator.java
  2. 7
      app/src/main/java/com/keylesspalace/tusky/util/NotificationHelper.java

@ -114,6 +114,7 @@ public final class NotificationPullJobCreator implements JobCreator {
Collections.reverse(notificationList);
BigInteger newId = new BigInteger(account.getLastNotificationId());
BigInteger newestId = BigInteger.ZERO;
boolean isFirstOfBatch = true;
for (Notification notification : notificationList) {
BigInteger currentId = new BigInteger(notification.getId());
@ -122,7 +123,8 @@ public final class NotificationPullJobCreator implements JobCreator {
}
if (isBiggerThan(currentId, newId)) {
NotificationHelper.make(context, notification, account);
NotificationHelper.make(context, notification, account, isFirstOfBatch);
isFirstOfBatch = false;
}
}

@ -112,7 +112,7 @@ public class NotificationHelper {
* @param account the account for which the notification should be shown
*/
public static void make(final Context context, Notification body, AccountEntity account) {
public static void make(final Context context, Notification body, AccountEntity account, boolean isFirstOfBatch) {
if (!filterNotification(account, body, context)) {
return;
@ -203,6 +203,11 @@ public class NotificationHelper {
builder.setCategory(NotificationCompat.CATEGORY_SOCIAL);
builder.setOnlyAlertOnce(true);
// only alert for the first notification of a batch to avoid multiple alerts at once
if(!isFirstOfBatch) {
builder.setGroupAlertBehavior(NotificationCompat.GROUP_ALERT_SUMMARY);
}
// Summary
// =======
final NotificationCompat.Builder summaryBuilder = newNotification(context, body, account, true);

Loading…
Cancel
Save