Skip to content

Commit 3485c98

Browse files
authored
Add FcmOptions on MulticastMessage (#439)
1 parent b128b9b commit 3485c98

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

src/main/java/com/google/firebase/messaging/MulticastMessage.java

+14-1
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ public class MulticastMessage {
5151
private final AndroidConfig androidConfig;
5252
private final WebpushConfig webpushConfig;
5353
private final ApnsConfig apnsConfig;
54+
private final FcmOptions fcmOptions;
5455

5556
private MulticastMessage(Builder builder) {
5657
this.tokens = builder.tokens.build();
@@ -64,14 +65,16 @@ private MulticastMessage(Builder builder) {
6465
this.androidConfig = builder.androidConfig;
6566
this.webpushConfig = builder.webpushConfig;
6667
this.apnsConfig = builder.apnsConfig;
68+
this.fcmOptions = builder.fcmOptions;
6769
}
6870

6971
List<Message> getMessageList() {
7072
Message.Builder builder = Message.builder()
7173
.setNotification(this.notification)
7274
.setAndroidConfig(this.androidConfig)
7375
.setApnsConfig(this.apnsConfig)
74-
.setWebpushConfig(this.webpushConfig);
76+
.setWebpushConfig(this.webpushConfig)
77+
.setFcmOptions(this.fcmOptions);
7578
if (this.data != null) {
7679
builder.putAllData(this.data);
7780
}
@@ -99,6 +102,7 @@ public static class Builder {
99102
private AndroidConfig androidConfig;
100103
private WebpushConfig webpushConfig;
101104
private ApnsConfig apnsConfig;
105+
private FcmOptions fcmOptions;
102106

103107
private Builder() {}
104108

@@ -170,6 +174,15 @@ public Builder setApnsConfig(ApnsConfig apnsConfig) {
170174
return this;
171175
}
172176

177+
/**
178+
* Sets the {@link FcmOptions}, which can be overridden by the platform-specific {@code
179+
* fcm_options} fields.
180+
*/
181+
public Builder setFcmOptions(FcmOptions fcmOptions) {
182+
this.fcmOptions = fcmOptions;
183+
return this;
184+
}
185+
173186
/**
174187
* Adds the given key-value pair to the message as a data field. Key or the value may not be
175188
* null.

src/test/java/com/google/firebase/messaging/MulticastMessageTest.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ public class MulticastMessageTest {
3939
.putData("key", "value")
4040
.build();
4141
private static final Notification NOTIFICATION = new Notification("title", "body");
42+
private static final FcmOptions FCM_OPTIONS = FcmOptions.withAnalyticsLabel("analytics_label");
4243

4344
@Test
4445
public void testMulticastMessage() {
@@ -47,6 +48,7 @@ public void testMulticastMessage() {
4748
.setApnsConfig(APNS)
4849
.setWebpushConfig(WEBPUSH)
4950
.setNotification(NOTIFICATION)
51+
.setFcmOptions(FCM_OPTIONS)
5052
.putData("key1", "value1")
5153
.putAllData(ImmutableMap.of("key2", "value2"))
5254
.addToken("token1")
@@ -96,7 +98,8 @@ private void assertMessage(Message message, String expectedToken) {
9698
assertSame(APNS, message.getApnsConfig());
9799
assertSame(WEBPUSH, message.getWebpushConfig());
98100
assertSame(NOTIFICATION, message.getNotification());
101+
assertSame(FCM_OPTIONS, message.getFcmOptions());
99102
assertEquals(ImmutableMap.of("key1", "value1", "key2", "value2"), message.getData());
100103
assertEquals(expectedToken, message.getToken());
101104
}
102-
}
105+
}

0 commit comments

Comments
 (0)