diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/push/APNSender.java b/service/src/main/java/org/whispersystems/textsecuregcm/push/APNSender.java index 72f7cfa5a..457cc80a5 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/push/APNSender.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/push/APNSender.java @@ -113,21 +113,28 @@ public CompletableFuture sendNotification(final Push .build(); }; - final PushType pushType; + final PushType pushType = switch (notification.notificationType()) { + case NOTIFICATION -> { + if (isVoip) { + yield PushType.VOIP; + } else { + yield notification.urgent() ? PushType.ALERT : PushType.BACKGROUND; + } + } + case ATTEMPT_LOGIN_NOTIFICATION_HIGH_PRIORITY -> PushType.ALERT; + case CHALLENGE, RATE_LIMIT_CHALLENGE -> PushType.BACKGROUND; + }; + + final DeliveryPriority deliveryPriority; - if (isVoip) { - pushType = PushType.VOIP; + if (pushType == PushType.BACKGROUND) { + deliveryPriority = DeliveryPriority.CONSERVE_POWER; } else { - pushType = notification.urgent() ? PushType.ALERT : PushType.BACKGROUND; + deliveryPriority = (notification.urgent() || isVoip) + ? DeliveryPriority.IMMEDIATE + : DeliveryPriority.CONSERVE_POWER; } - final DeliveryPriority deliveryPriority = switch (notification.notificationType()) { - case NOTIFICATION -> - (notification.urgent() || isVoip) ? DeliveryPriority.IMMEDIATE : DeliveryPriority.CONSERVE_POWER; - case ATTEMPT_LOGIN_NOTIFICATION_HIGH_PRIORITY -> DeliveryPriority.IMMEDIATE; - case CHALLENGE, RATE_LIMIT_CHALLENGE -> DeliveryPriority.CONSERVE_POWER; - }; - final String collapseId = (notification.notificationType() == PushNotification.NotificationType.NOTIFICATION && notification.urgent() && !isVoip) ? "incoming-message" : null;