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

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

Issue 2699253003: Abstracting over Notification.Builder + NotificationCompat.Builder (Closed)
Patch Set: remove erroneously added methods from rebase Created 3 years, 10 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/DownloadNotificationService.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationService.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationService.java
index c0430c98c3ebc7aad88e5c9cc61c99238c5f9f20..6993e1fc35d87a21673bcecda323148b7444ecbd 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationService.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationService.java
@@ -24,7 +24,6 @@ import android.graphics.drawable.shapes.OvalShape;
import android.os.Binder;
import android.os.Build;
import android.os.IBinder;
-import android.support.v4.app.NotificationCompat;
import android.text.TextUtils;
import org.chromium.base.ApiCompatibilityUtils;
@@ -37,6 +36,7 @@ import org.chromium.chrome.browser.ChromeApplication;
import org.chromium.chrome.browser.init.BrowserParts;
import org.chromium.chrome.browser.init.ChromeBrowserInitializer;
import org.chromium.chrome.browser.init.EmptyBrowserParts;
+import org.chromium.chrome.browser.notifications.ChromeNotificationBuilder;
import org.chromium.chrome.browser.notifications.NotificationConstants;
import org.chromium.chrome.browser.offlinepages.downloads.OfflinePageDownloadBridge;
import org.chromium.chrome.browser.util.IntentUtils;
@@ -127,7 +127,7 @@ public class DownloadNotificationService extends Service {
@Override
public void onCreate() {
mStopPostingProgressNotifications = false;
- mContext = getApplicationContext();
+ mContext = ContextUtils.getApplicationContext();
mNotificationManager = (NotificationManager) mContext.getSystemService(
Context.NOTIFICATION_SERVICE);
mSharedPrefs = ContextUtils.getAppSharedPreferences();
@@ -298,7 +298,7 @@ public class DownloadNotificationService extends Service {
}
int resId = isDownloadPending ? R.drawable.ic_download_pending
: android.R.drawable.stat_sys_download;
- NotificationCompat.Builder builder = buildNotification(resId, fileName, contentText);
+ ChromeNotificationBuilder builder = buildNotification(resId, fileName, contentText);
builder.setOngoing(true);
builder.setPriority(Notification.PRIORITY_HIGH);
@@ -401,8 +401,8 @@ public class DownloadNotificationService extends Service {
String contentText = mContext.getResources().getString(
R.string.download_notification_paused);
- NotificationCompat.Builder builder = buildNotification(
- R.drawable.ic_download_pause, entry.fileName, contentText);
+ ChromeNotificationBuilder builder =
+ buildNotification(R.drawable.ic_download_pause, entry.fileName, contentText);
// Clicking on an in-progress download sends the user to see all their downloads.
Intent downloadHomeIntent = buildActionIntent(
@@ -453,8 +453,7 @@ public class DownloadNotificationService extends Service {
String downloadGuid, String filePath, String fileName, long systemDownloadId,
boolean isOfflinePage, boolean isSupportedMimeType) {
int notificationId = getNotificationId(downloadGuid);
- NotificationCompat.Builder builder = buildNotification(
- R.drawable.offline_pin, fileName,
+ ChromeNotificationBuilder builder = buildNotification(R.drawable.offline_pin, fileName,
mContext.getResources().getString(R.string.download_notification_completed));
ComponentName component = new ComponentName(
mContext.getPackageName(), DownloadBroadcastReceiver.class.getName());
@@ -500,9 +499,9 @@ public class DownloadNotificationService extends Service {
}
int notificationId = getNotificationId(downloadGuid);
- NotificationCompat.Builder builder = buildNotification(
- android.R.drawable.stat_sys_download_done, fileName,
- mContext.getResources().getString(R.string.download_notification_failed));
+ ChromeNotificationBuilder builder =
+ buildNotification(android.R.drawable.stat_sys_download_done, fileName,
+ mContext.getResources().getString(R.string.download_notification_failed));
updateNotification(notificationId, builder.build());
mDownloadSharedPreferenceHelper.removeSharedPreferenceEntry(downloadGuid);
mDownloadsInProgress.remove(downloadGuid);
@@ -570,15 +569,22 @@ public class DownloadNotificationService extends Service {
* @param contentText Notification content text to be displayed.
* @return notification builder that builds the notification to be displayed
*/
- private NotificationCompat.Builder buildNotification(
+ private ChromeNotificationBuilder buildNotification(
int iconId, String title, String contentText) {
- NotificationCompat.Builder builder = new NotificationCompat.Builder(mContext)
- .setContentTitle(DownloadUtils.getAbbreviatedFileName(title, MAX_FILE_NAME_LENGTH))
- .setSmallIcon(iconId)
- .setLocalOnly(true)
- .setAutoCancel(true)
- .setContentText(contentText)
- .setGroup(NotificationConstants.GROUP_DOWNLOADS);
+ ChromeNotificationBuilder builder =
+ ((ChromeApplication) mContext)
+ .createChromeNotificationBuilder(true /* preferCompat */,
+ NotificationConstants.CATEGORY_ID_BROWSER,
+ mContext.getString(R.string.notification_category_browser),
+ NotificationConstants.CATEGORY_GROUP_ID_GENERAL,
+ mContext.getString(R.string.notification_category_group_general))
+ .setContentTitle(
+ DownloadUtils.getAbbreviatedFileName(title, MAX_FILE_NAME_LENGTH))
+ .setSmallIcon(iconId)
+ .setLocalOnly(true)
+ .setAutoCancel(true)
+ .setContentText(contentText)
+ .setGroup(NotificationConstants.GROUP_DOWNLOADS);
return builder;
}

Powered by Google App Engine
This is Rietveld 408576698