package com.jdroid.android.sample.firebase.fcm;
import com.google.firebase.messaging.RemoteMessage;
import com.jdroid.android.application.AbstractApplication;
import com.jdroid.android.firebase.fcm.FcmMessage;
import com.jdroid.android.notification.NotificationBuilder;
import com.jdroid.android.notification.NotificationUtils;
import com.jdroid.java.date.DateTimeFormat;
import com.jdroid.java.date.DateUtils;
import com.jdroid.java.utils.IdGenerator;
import com.jdroid.java.utils.NumberUtils;
import java.util.Date;
/**
* FCM Message types
*/
public enum AndroidFcmMessage implements FcmMessage {
SAMPLE_MESSAGE("sampleMessage") {
@Override
public void handle(RemoteMessage remoteMessage) {
NotificationBuilder builder = new NotificationBuilder("pushNotification");
builder.setSmallIcon(AbstractApplication.get().getNotificationIconResId());
builder.setTicker("Sample Ticker");
builder.setContentTitle("Sample Content Title");
String description = "Sample Content Description";
Long timestamp = NumberUtils.getLong(remoteMessage.getData().get("timestamp"));
if (timestamp != null) {
description = DateUtils.format(new Date(timestamp), DateTimeFormat.YYYYMMDDHHMMSSSSS);
}
builder.setContentText(description);
builder.setWhen(DateUtils.nowMillis());
NotificationUtils.sendNotification(IdGenerator.getIntId(), builder);
}
};
private String messageKey;
AndroidFcmMessage(String messageKey) {
this.messageKey = messageKey;
}
@Override
public String getMessageKey() {
return messageKey;
}
}