package com.novoda.downloadmanager.demo.extended; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.support.v4.app.NotificationCompat; import com.novoda.downloadmanager.Download; import com.novoda.downloadmanager.notifications.DownloadingNotificationCustomiser; import com.novoda.downloadmanager.notifications.QueuedNotificationCustomiser; import com.novoda.downloadmanager.demo.R; import com.novoda.downloadmanager.lib.DownloadManager; class DemoNotificationCustomiser implements QueuedNotificationCustomiser, DownloadingNotificationCustomiser { private final Context context; public DemoNotificationCustomiser(Context context) { this.context = context; } @Override public void customiseQueued(Download download, NotificationCompat.Builder builder) { addViewAction(builder); addCancelAction(builder, download); } @Override public void customiseDownloading(Download download, NotificationCompat.Builder builder) { addViewAction(builder); addCancelAction(builder, download); } private void addViewAction(NotificationCompat.Builder builder) { Intent intent = new Intent(context, MainActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); NotificationCompat.Action action = new NotificationCompat.Action(R.drawable.ic_notif_info, "View", pendingIntent); builder.addAction(action); } private void addCancelAction(NotificationCompat.Builder builder, Download download) { Intent cancelIntent = DownloadManager.createCancelBatchIntent(download.getId(), context); PendingIntent pendingCancelIntent = PendingIntent.getBroadcast(context, 0, cancelIntent, PendingIntent.FLAG_UPDATE_CURRENT); builder.addAction(com.novoda.downloadmanager.R.drawable.dl__ic_action_cancel, context.getString(com.novoda.downloadmanager.R.string.dl__cancel), pendingCancelIntent); } }