private WebpushNotification(Builder builder) {
ImmutableMap.Builder<String, Object> fields = ImmutableMap.builder();
if (!builder.actions.isEmpty()) {
fields.put("actions", ImmutableList.copyOf(builder.actions));
}
addNonNullNonEmpty(fields, "badge", builder.badge);
addNonNullNonEmpty(fields, "body", builder.body);
addNonNull(fields, "data", builder.data);
addNonNullNonEmpty(fields, "dir", builder.direction != null ? builder.direction.value : null);
addNonNullNonEmpty(fields, "icon", builder.icon);
addNonNullNonEmpty(fields, "image", builder.image);
addNonNullNonEmpty(fields, "lang", builder.language);
addNonNull(fields, "renotify", builder.renotify);
addNonNull(fields, "requireInteraction", builder.requireInteraction);
addNonNull(fields, "silent", builder.silent);
addNonNullNonEmpty(fields, "tag", builder.tag);
addNonNull(fields, "timestamp", builder.timestampMillis);
addNonNullNonEmpty(fields, "title", builder.title);
addNonNull(fields, "vibrate", builder.vibrate);
fields.putAll(builder.customData);
this.fields = fields.build();
}