package com.uncc.gameday.alerts;

import com.uncc.gameday.R;
import com.uncc.gameday.activities.Home;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.support.v4.app.NotificationCompat;
import android.support.v4.app.TaskStackBuilder;

public class Alert {
        
        private Long alarmDate;
        private String message;
        private int shown;
        private String type;
        
        // Default constructor
        public Alert(){}
        
        public Alert(Long alarmDate, String message, int shown, String type) {
                this.setAlarmDate(alarmDate);
                this.setMessage(message);
                this.setShown(shown);
                this.setType(type);
        }
        
        private void setType(String type) {
                this.type = type;
        }

        public String getType() {
                return type;
        }
        public Long getAlarmDate() {
                return alarmDate;
        }
        public void setAlarmDate(Long alarmDate) {
                this.alarmDate = alarmDate;
        }
        public String getMessage() {
                return message;
        }
        public void setMessage(String message) {
                this.message = message;
        }
        public int isShown() {
                return shown;
        }
        public void setShown(int i) {
                this.shown = i;
        }
        
        public String toString() {
                return this.message;
        }
        
        /**
         * Helper method to make displaying an alert on the statusbar easy
         *
         * @param ctx - The context needed to display the alert.
         */
        public void displayNotification(Context ctx) {
                NotificationCompat.Builder builder = new NotificationCompat.Builder(ctx)
                        .setSmallIcon(R.drawable.ic_launcher)
                        .setContentTitle(ctx.getString(R.string.app_name))
                        .setContentText(this.getMessage());
                
                Intent resultIntent = new Intent(ctx, Home.class);
                TaskStackBuilder stackBuilder = TaskStackBuilder.create(ctx);
                stackBuilder.addParentStack(Home.class);
                stackBuilder.addNextIntent(resultIntent);
                PendingIntent resultPendingIntent =        stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
                builder.setContentIntent(resultPendingIntent);
                
                NotificationManager notificationManager = (NotificationManager) ctx.getSystemService(Context.NOTIFICATION_SERVICE);
                notificationManager.notify(0, builder.setAutoCancel(true).build());
        }

}
