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 список публичных ключей пользователей