From c94b572ef33fdd50d741ac711c360b2b596832fd Mon Sep 17 00:00:00 2001 From: pavlospt Date: Tue, 9 Jun 2020 14:45:57 +0300 Subject: [PATCH] Add FcmOptions on MulticastMessage --- .../firebase/messaging/MulticastMessage.java | 15 ++++++++++++++- .../firebase/messaging/MulticastMessageTest.java | 5 ++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/google/firebase/messaging/MulticastMessage.java b/src/main/java/com/google/firebase/messaging/MulticastMessage.java index 96a6f19db..b15e58e5f 100644 --- a/src/main/java/com/google/firebase/messaging/MulticastMessage.java +++ b/src/main/java/com/google/firebase/messaging/MulticastMessage.java @@ -51,6 +51,7 @@ public class MulticastMessage { private final AndroidConfig androidConfig; private final WebpushConfig webpushConfig; private final ApnsConfig apnsConfig; + private final FcmOptions fcmOptions; private MulticastMessage(Builder builder) { this.tokens = builder.tokens.build(); @@ -64,6 +65,7 @@ private MulticastMessage(Builder builder) { this.androidConfig = builder.androidConfig; this.webpushConfig = builder.webpushConfig; this.apnsConfig = builder.apnsConfig; + this.fcmOptions = builder.fcmOptions; } List getMessageList() { @@ -71,7 +73,8 @@ List getMessageList() { .setNotification(this.notification) .setAndroidConfig(this.androidConfig) .setApnsConfig(this.apnsConfig) - .setWebpushConfig(this.webpushConfig); + .setWebpushConfig(this.webpushConfig) + .setFcmOptions(this.fcmOptions); if (this.data != null) { builder.putAllData(this.data); } @@ -99,6 +102,7 @@ public static class Builder { private AndroidConfig androidConfig; private WebpushConfig webpushConfig; private ApnsConfig apnsConfig; + private FcmOptions fcmOptions; private Builder() {} @@ -170,6 +174,15 @@ public Builder setApnsConfig(ApnsConfig apnsConfig) { return this; } + /** + * Sets the {@link FcmOptions}, which can be overridden by the platform-specific {@code + * fcm_options} fields. + */ + public Builder setFcmOptions(FcmOptions fcmOptions) { + this.fcmOptions = fcmOptions; + return this; + } + /** * Adds the given key-value pair to the message as a data field. Key or the value may not be * null. diff --git a/src/test/java/com/google/firebase/messaging/MulticastMessageTest.java b/src/test/java/com/google/firebase/messaging/MulticastMessageTest.java index 25018ed4c..1ea57d8d5 100644 --- a/src/test/java/com/google/firebase/messaging/MulticastMessageTest.java +++ b/src/test/java/com/google/firebase/messaging/MulticastMessageTest.java @@ -39,6 +39,7 @@ public class MulticastMessageTest { .putData("key", "value") .build(); private static final Notification NOTIFICATION = new Notification("title", "body"); + private static final FcmOptions FCM_OPTIONS = FcmOptions.withAnalyticsLabel("analytics_label"); @Test public void testMulticastMessage() { @@ -47,6 +48,7 @@ public void testMulticastMessage() { .setApnsConfig(APNS) .setWebpushConfig(WEBPUSH) .setNotification(NOTIFICATION) + .setFcmOptions(FCM_OPTIONS) .putData("key1", "value1") .putAllData(ImmutableMap.of("key2", "value2")) .addToken("token1") @@ -96,7 +98,8 @@ private void assertMessage(Message message, String expectedToken) { assertSame(APNS, message.getApnsConfig()); assertSame(WEBPUSH, message.getWebpushConfig()); assertSame(NOTIFICATION, message.getNotification()); + assertSame(FCM_OPTIONS, message.getFcmOptions()); assertEquals(ImmutableMap.of("key1", "value1", "key2", "value2"), message.getData()); assertEquals(expectedToken, message.getToken()); } -} \ No newline at end of file +}