Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4299)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/download/DownloadSnackbarController.java

Issue 1993873003: deprecate notificationId for downloads (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/download/DownloadSnackbarController.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadSnackbarController.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadSnackbarController.java
index e676700312eedc3b0a00b7a15d3fdf98b381d1c9..3c1c9c0c34aeae8e2ceddb1654a0b75a98f61fcc 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadSnackbarController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadSnackbarController.java
@@ -5,8 +5,8 @@
package org.chromium.chrome.browser.download;
import android.app.Activity;
+import android.app.NotificationManager;
import android.content.Context;
-import android.util.Pair;
import org.chromium.base.ApplicationStatus;
import org.chromium.chrome.R;
@@ -18,9 +18,22 @@ import org.chromium.content.browser.DownloadInfo;
* Class for displaying a snackbar when a download completes.
*/
public class DownloadSnackbarController implements SnackbarManager.SnackbarController {
+ public static final int INVALID_NOTIFICATION_ID = -1;
private static final int SNACKBAR_DURATION_IN_MILLISECONDS = 5000;
private final Context mContext;
+ private static class ActionDataInfo {
+ public final DownloadInfo downloadInfo;
+ public final int notificationId;
+ public final long systemDownloadId;
+
+ ActionDataInfo(DownloadInfo downloadInfo, int notificationId, long systemDownloadId) {
+ this.downloadInfo = downloadInfo;
+ this.notificationId = notificationId;
+ this.systemDownloadId = systemDownloadId;
+ }
+ }
+
public DownloadSnackbarController(Context context) {
mContext = context;
}
@@ -32,11 +45,15 @@ public class DownloadSnackbarController implements SnackbarManager.SnackbarContr
DownloadManagerService.openDownloadsPage(mContext);
return;
}
- Pair<DownloadInfo, Long> download = (Pair<DownloadInfo, Long>) actionData;
+ ActionDataInfo download = (ActionDataInfo) actionData;
DownloadManagerService manager = DownloadManagerService.getDownloadManagerService(mContext);
- manager.openDownloadedContent(download.second);
- manager.cancelNotification(
- download.first.getNotificationId(), download.first.getDownloadGuid());
+ manager.openDownloadedContent(download.systemDownloadId);
+ if (download.notificationId != INVALID_NOTIFICATION_ID) {
+ NotificationManager notificationManager =
+ (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
+ notificationManager.cancel(
+ DownloadNotificationService.NOTIFICATION_NAMESPACE, download.notificationId);
+ }
}
@Override
@@ -47,24 +64,25 @@ public class DownloadSnackbarController implements SnackbarManager.SnackbarContr
* Called to display the download succeeded snackbar.
*
* @param downloadInfo Info of the download.
+ * @param notificationId Notification Id of the successful download.
* @param downloadId Id of the download from Android DownloadManager.
* @param canBeResolved Whether the download can be resolved to any activity.
*/
public void onDownloadSucceeded(
- DownloadInfo downloadInfo, final long downloadId, boolean canBeResolved) {
+ DownloadInfo downloadInfo, int notificationId, long downloadId, boolean canBeResolved) {
if (getSnackbarManager() == null) return;
Snackbar snackbar = Snackbar.make(
mContext.getString(R.string.download_succeeded_message, downloadInfo.getFileName()),
this, Snackbar.TYPE_NOTIFICATION);
// TODO(qinmin): Coalesce snackbars if multiple downloads finish at the same time.
snackbar.setDuration(SNACKBAR_DURATION_IN_MILLISECONDS).setSingleLine(false);
- Pair<DownloadInfo, Long> actionData = null;
+ ActionDataInfo info = null;
if (canBeResolved) {
- actionData = Pair.create(downloadInfo, downloadId);
+ info = new ActionDataInfo(downloadInfo, notificationId, downloadId);
}
// Show downloads app if the download cannot be resolved to any activity.
snackbar.setAction(
- mContext.getString(R.string.open_downloaded_label), actionData);
+ mContext.getString(R.string.open_downloaded_label), info);
getSnackbarManager().showSnackbar(snackbar);
}

Powered by Google App Engine
This is Rietveld 408576698