From 5ac8f919ce227131c20e191243b67d6e19d4ab8c Mon Sep 17 00:00:00 2001 From: RoyceDa Date: Fri, 20 Mar 2026 20:02:14 +0200 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20APNS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/dispatch/FirebaseDispatcher.java | 32 +++++++++++++++---- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/src/main/java/im/rosetta/service/dispatch/FirebaseDispatcher.java b/src/main/java/im/rosetta/service/dispatch/FirebaseDispatcher.java index f0fa523..90dd72c 100644 --- a/src/main/java/im/rosetta/service/dispatch/FirebaseDispatcher.java +++ b/src/main/java/im/rosetta/service/dispatch/FirebaseDispatcher.java @@ -9,6 +9,9 @@ import java.util.concurrent.Executors; import com.google.auth.oauth2.GoogleCredentials; import com.google.firebase.FirebaseApp; import com.google.firebase.FirebaseOptions; +import com.google.firebase.messaging.ApnsConfig; +import com.google.firebase.messaging.Aps; +import com.google.firebase.messaging.ApsAlert; import com.google.firebase.messaging.FirebaseMessaging; import com.google.firebase.messaging.Message; import com.google.firebase.messaging.Notification; @@ -51,13 +54,7 @@ public class FirebaseDispatcher { } } - /** - * Отправляет push-уведомление пользователю с данным публичным ключом (асинхронно) - * @param publicKey публичный ключ пользователя - * @param title заголовок уведомления - * @param messageText текст уведомления - */ - public void sendPushNotification(String publicKey, String title, String messageText) { + public void sendPushNotification(String publicKey, String title, String messageText, String senderPublicKey) { executor.submit(() -> { try { List tokens = userService.getNotificationsTokens(publicKey); @@ -72,6 +69,17 @@ public class FirebaseDispatcher { .setTitle(title) .setBody(messageText) .build()) + .setApnsConfig(ApnsConfig.builder() + .setAps(Aps.builder() + .setMutableContent(true) + .setSound("default") + .setAlert(ApsAlert.builder() + .setTitle(title) + .setBody(messageText) + .build()) + .build()) + .build()) + .putData("sender_public_key", senderPublicKey) .setToken(token) .build(); @@ -86,6 +94,16 @@ public class FirebaseDispatcher { }); } + /** + * Отправляет push-уведомление пользователю с данным публичным ключом (асинхронно) + * @param publicKey публичный ключ пользователя + * @param title заголовок уведомления + * @param messageText текст уведомления + */ + public void sendPushNotification(String publicKey, String title, String messageText) { + sendPushNotification(publicKey, title, messageText, null); + } + /** * Отправляет push-уведомление нескольким пользователям (асинхронно) * @param publicKeys список публичных ключей пользователей