package com.gettingmobile.android.app;
import android.app.Notification;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
public class SimpleNotification extends Notification {
private final CharSequence title;
private CharSequence contentText = null;
public static PendingIntent createPendingIntent(Context context, Intent intent) {
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
return PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
}
public SimpleNotification(Context context, int iconId, int titleId, boolean showTickerText) {
super(iconId, showTickerText ? context.getText(titleId) : null, System.currentTimeMillis());
title = context.getText(titleId);
addFlags(FLAG_AUTO_CANCEL);
}
public SimpleNotification(Context context, int iconId, int titleId) {
this(context, iconId, titleId, false);
}
public SimpleNotification updateWhen() {
when = System.currentTimeMillis();
return this;
}
public SimpleNotification updateLatestEventInfo(Context context) {
setLatestEventInfo(context, title, contentText, contentIntent);
return this;
}
@Override
public void setLatestEventInfo(Context context, CharSequence contentTitle, CharSequence contentText,
PendingIntent contentIntent) {
updateWhen();
this.contentText = contentText;
super.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
}
public SimpleNotification setLatestEventInfo(Context context, CharSequence contentText, PendingIntent intent) {
setLatestEventInfo(context, title, contentText, intent);
return this;
}
public SimpleNotification setLatestEventInfo(Context context, int contentTextId, PendingIntent intent) {
return setLatestEventInfo(context, context.getText(contentTextId), intent);
}
public SimpleNotification setContentText(Context context, CharSequence contentText) {
return setLatestEventInfo(context, contentText, contentIntent);
}
public SimpleNotification setContentText(Context context, int contentTextId) {
return setContentText(context, context.getText(contentTextId));
}
public SimpleNotification setContentIntent(PendingIntent contentIntent) {
this.contentIntent = contentIntent;
return this;
}
public SimpleNotification setContentIntent(Context context, Intent contentIntent) {
return setContentIntent(createPendingIntent(context, contentIntent));
}
public SimpleNotification setFlags(int flags) {
this.flags = flags;
return this;
}
public SimpleNotification addFlags(int flags) {
this.flags |= flags;
return this;
}
public SimpleNotification removeFlags(int flags) {
this.flags &= ~flags;
return this;
}
}