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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationUIManager.java

Issue 1681123002: Plumb Notification action icons through to the UI layer. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ActionIconResourceFetching
Patch Set: Created 4 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/notifications/NotificationUIManager.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationUIManager.java b/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationUIManager.java
index 9e5b459f1a6c702530e33dcac72c4edb1e073e33..e1040d0e692a506fc1246f108b4e0323cd87337e 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationUIManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationUIManager.java
@@ -425,13 +425,18 @@ static int makeDefaults(int vibrationPatternLength, boolean silent) {
* notification is replacing another notification.
* @param silent Whether the default sound, vibration and lights should be suppressed.
* @param actionTitles Titles of actions to display alongside the notification.
+ * @param actionIcons Icons of actions to display alongside the notification.
* @see https://developer.android.com/reference/android/app/Notification.html
*/
@CalledByNative
private void displayNotification(long persistentNotificationId, String origin, String profileId,
boolean incognito, String tag, String title, String body, Bitmap icon,
int[] vibrationPattern, long timestamp, boolean renotify, boolean silent,
- String[] actionTitles) {
+ String[] actionTitles, Bitmap[] actionIcons) {
+ if (actionTitles.length != actionIcons.length) {
+ throw new IllegalArgumentException("The number of action titles and icons must match.");
+ }
+
Resources res = mAppContext.getResources();
// Record whether it's known whether notifications can be shown to the user at all.
@@ -473,7 +478,7 @@ private void displayNotification(long persistentNotificationId, String origin, S
origin, false /* showScheme */));
for (int actionIndex = 0; actionIndex < actionTitles.length; actionIndex++) {
- notificationBuilder.addAction(0 /* actionIcon */, actionTitles[actionIndex],
+ notificationBuilder.addAction(actionIcons[actionIndex], actionTitles[actionIndex],
makePendingIntent(NotificationConstants.ACTION_CLICK_NOTIFICATION,
persistentNotificationId, origin, profileId,
incognito, tag, actionIndex));
@@ -588,12 +593,12 @@ static boolean useCustomLayouts() {
// Query the field trial state first to ensure correct UMA reporting.
String groupName = FieldTrialList.findFullName("WebNotificationCustomLayouts");
CommandLine commandLine = CommandLine.getInstance();
- if (commandLine.hasSwitch(ChromeSwitches.DISABLE_WEB_NOTIFICATION_CUSTOM_LAYOUTS)) {
- return false;
- }
if (commandLine.hasSwitch(ChromeSwitches.ENABLE_WEB_NOTIFICATION_CUSTOM_LAYOUTS)) {
return true;
}
+ if (commandLine.hasSwitch(ChromeSwitches.DISABLE_WEB_NOTIFICATION_CUSTOM_LAYOUTS)) {
+ return false;
+ }
return !groupName.equals("Disabled");
}

Powered by Google App Engine
This is Rietveld 408576698