From 9432969cb4eb48b58d40bdd5fa6e6ca4f95e3b6c Mon Sep 17 00:00:00 2001 From: Royce59 Date: Sun, 12 Apr 2026 23:23:08 +0200 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=B3=D0=BD=D0=BE=D1=80=D0=B8=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BE=D1=82=D1=81=D1=82?= =?UTF-8?q?=D1=83=D1=81=D1=82=D0=B2=D0=B8=D1=8F=20=D1=84=D0=B0=D0=B9=D0=BB?= =?UTF-8?q?=D0=BE=D0=B2=20APNs/FCM=20=D0=BF=D1=80=D0=B8=20=D1=80=D0=B0?= =?UTF-8?q?=D0=B7=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BA=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/dispatch/push/dispatchers/FCM.java | 12 +++++++++++- .../service/dispatch/push/dispatchers/VoIPApns.java | 11 ++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/main/java/im/rosetta/service/dispatch/push/dispatchers/FCM.java b/src/main/java/im/rosetta/service/dispatch/push/dispatchers/FCM.java index 6cccac8..974b5c2 100644 --- a/src/main/java/im/rosetta/service/dispatch/push/dispatchers/FCM.java +++ b/src/main/java/im/rosetta/service/dispatch/push/dispatchers/FCM.java @@ -19,6 +19,8 @@ import im.rosetta.service.dispatch.runtime.PushType; public class FCM extends Pusher { + private boolean isInitialized = false; + public FCM() { initializeFirebase(); } @@ -39,8 +41,10 @@ public class FCM extends Pusher { .setCredentials(GoogleCredentials.fromStream(serviceAccount)) .build(); FirebaseApp.initializeApp(options); + this.isInitialized = true; } catch (IOException e) { - throw new RuntimeException("Failed to initialize Firebase", e); + this.isInitialized = false; + e.printStackTrace(); } } } @@ -94,6 +98,12 @@ public class FCM extends Pusher { @Override public void sendPush(String token, HashMap data) { + if(!this.isInitialized){ + /** + * Firebase не инициализирован, пропускаем отправку уведомлений + */ + return; + } try{ Message message = this.buildMessage(token, data); FirebaseMessaging.getInstance().send(message); diff --git a/src/main/java/im/rosetta/service/dispatch/push/dispatchers/VoIPApns.java b/src/main/java/im/rosetta/service/dispatch/push/dispatchers/VoIPApns.java index 6e98869..b1aef90 100644 --- a/src/main/java/im/rosetta/service/dispatch/push/dispatchers/VoIPApns.java +++ b/src/main/java/im/rosetta/service/dispatch/push/dispatchers/VoIPApns.java @@ -17,6 +17,7 @@ public class VoIPApns extends Pusher { private ApnsClient client; private String topic; + private boolean isInitialized = false; public VoIPApns(){ this.initializeApns(); @@ -38,13 +39,21 @@ public class VoIPApns extends Pusher { .setApnsServer(ApnsClientBuilder.PRODUCTION_APNS_HOST) .setClientCredentials(new File(p12Path), p12Password) .build(); + this.isInitialized = true; } catch (Exception e) { - throw new RuntimeException("Failed to init VoIP APNs client", e); + this.isInitialized = false; + e.printStackTrace(); } } @Override public void sendPush(String token, HashMap data) { + if(!this.isInitialized) { + /** + * Нет файла для инициализации APNs клиента, пропускаем отправку VoIP уведомлений + */ + return; + } if(data.get("type") != PushType.CALL) { /** * Для VoIP APNs отправляем уведомления только о входящих звонках