package org.gdg.frisbee.android.eventseries;
import android.app.AlarmManager;
import android.app.Notification;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.support.v4.app.NotificationCompat;
import org.gdg.frisbee.android.Const;
import org.gdg.frisbee.android.utils.PrefUtils;
public class NotificationHandler {
private final Context context;
private final TaggedEventSeries eventSeries;
public NotificationHandler(Context context, TaggedEventSeries eventSeries) {
this.context = context;
this.eventSeries = eventSeries;
}
public boolean shouldSetAlarm() {
return !PrefUtils.isTaggedEventSeriesAlarmSet(context, eventSeries)
&& eventSeries.getStartDate().isAfterNow();
}
public void setAlarmForNotification() {
AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(NotificationReceiver.ACTION_SUMMIT_NOTIFICATION);
intent.putExtra(Const.EXTRA_TAGGED_EVENT, eventSeries);
intent.putExtra(Const.EXTRA_ALARM_FOR_ALL, true);
am.set(AlarmManager.RTC_WAKEUP, eventSeries.getStartDate().getMillis(),
PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT));
PrefUtils.setTaggedEventSeriesAlarmTime(context, eventSeries);
}
public Notification createNotification() {
Intent contentIntent = new Intent(context, TaggedEventSeriesActivity.class);
contentIntent.putExtra(Const.EXTRA_TAGGED_EVENT, eventSeries);
String seriesName = context.getString(eventSeries.getTitleResId());
String message = context.getString(eventSeries.getGreetingsResId(), seriesName);
NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
.setContentTitle(context.getString(eventSeries.getGreetingsTitleResId()))
.setContentText(message)
.setSmallIcon(eventSeries.getDrawerIconResId())
.setAutoCancel(true)
.setDefaults(Notification.DEFAULT_ALL)
.setStyle(new NotificationCompat.BigTextStyle().bigText(message))
.setContentIntent(PendingIntent.getActivity(context, 0, contentIntent, PendingIntent.FLAG_UPDATE_CURRENT));
return builder.build();
}
}