package org.faudroids.distributedmemory.utils;
import android.app.Notification;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import java.util.LinkedList;
import java.util.List;
import javax.inject.Inject;
public final class NotificationUtils {
private final Context context;
@Inject
public NotificationUtils(Context context) {
this.context = context;
}
public Notification createOngoingNotification(
String title,
String message,
int iconResource,
Class<?> activityClass,
List<Action> actions) {
Intent intent = new Intent(context, activityClass);
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
Notification.Builder builder = new Notification.Builder(context)
.setContentTitle(title)
.setContentText(message)
.setSmallIcon(iconResource)
.setOngoing(true)
.setContentIntent(PendingIntent.getActivity(context, 1000, intent, 0));
for (Action action : actions) {
builder.addAction(action.iconResource, action.title, action.pendingIntent);
}
return builder.build();
}
public Notification createOngoingNotification(
String title,
String message,
int iconResource,
Class<?> activityClass) {
return createOngoingNotification(title, message, iconResource, activityClass, new LinkedList<Action>());
}
public static final class Action {
private final int iconResource;
private final String title;
private final PendingIntent pendingIntent;
public Action(int iconResource, String title, PendingIntent pendingIntent) {
this.iconResource = iconResource;
this.title = title;
this.pendingIntent = pendingIntent;
}
}
}