package com.dbs.mplus.fatima.framework.util;

import android.app.Notification;
import android.app.PendingIntent;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.media.RingtoneManager;
import android.os.Build;
import android.support.v4.app.NotificationCompat;

/**
 * Notification을 만들어 줌.
 * 여러곳(Push수신, Beacon이벤트 수신 등)에서 Notification을 만들어야 하는데 공통된 값들도 매번 셋팅해주어야 하니 이를 한방에 처리하기 위함임.
 */
public class MPlusNotificationBuilder {
    /**
     * 기본 아이콘/소리가 설정된 Notification 생성
     * @param context
     * @param title
     * @param message
     * @param pendingIntent
     * @return
     */
    public static Notification generate(final Context context, final String title, final String message, final PendingIntent pendingIntent) {
        final NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
        int hospitalNo = MPlusResourceUtil.getDrawableIdByName(context, "hospital");
        int logoNo = MPlusResourceUtil.getDrawableIdByName(context, "knuh");

        // 마시멜로 이상인 경우에만 bitmap으로 처리
        if(Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
            // 아이콘 설정
            builder.setSmallIcon(logoNo);
        } else {
            Bitmap icon = BitmapFactory.decodeResource(context.getResources(), logoNo);
            builder.setLargeIcon(icon);
            builder.setSmallIcon(hospitalNo);
        }

        builder.setColor(0x9E9E9E);
        builder.setContentTitle(title);
        builder.setContentText(message);
        builder.setAutoCancel(true);
        builder.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));
        builder.setContentIntent(pendingIntent);

        return builder.build();
    }
}
