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(); }