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
+}