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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationBuilderBase.java

Issue 2702023002: Migrate web notifications to ChromeNotificationBuilder (Closed)
Patch Set: rebase Created 3 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.chrome.browser.notifications; 5 package org.chromium.chrome.browser.notifications;
6 6
7 import android.annotation.SuppressLint; 7 import android.annotation.SuppressLint;
8 import android.annotation.TargetApi; 8 import android.annotation.TargetApi;
9 import android.app.Notification; 9 import android.app.Notification;
10 import android.app.PendingIntent; 10 import android.app.PendingIntent;
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after
398 } 398 }
399 return input; 399 return input;
400 } 400 }
401 401
402 /** 402 /**
403 * Sets the small icon on {@code builder} using a {@code Bitmap} if a non-nu ll bitmap is 403 * Sets the small icon on {@code builder} using a {@code Bitmap} if a non-nu ll bitmap is
404 * provided and the API level is high enough, otherwise the resource id is u sed. 404 * provided and the API level is high enough, otherwise the resource id is u sed.
405 */ 405 */
406 @TargetApi(Build.VERSION_CODES.M) // For the Icon class. 406 @TargetApi(Build.VERSION_CODES.M) // For the Icon class.
407 protected static void setSmallIconOnBuilder( 407 protected static void setSmallIconOnBuilder(
408 Notification.Builder builder, int iconId, @Nullable Bitmap iconBitma p) { 408 ChromeNotificationBuilder builder, int iconId, @Nullable Bitmap icon Bitmap) {
409 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && iconBitmap != null ) { 409 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && iconBitmap != null ) {
410 builder.setSmallIcon(Icon.createWithBitmap(iconBitmap)); 410 builder.setSmallIcon(Icon.createWithBitmap(iconBitmap));
411 } else { 411 } else {
412 builder.setSmallIcon(iconId); 412 builder.setSmallIcon(iconId);
413 } 413 }
414 } 414 }
415 415
416 /** 416 /**
417 * Adds an action to {@code builder} using a {@code Bitmap} if a bitmap is p rovided and the API 417 * Adds an action to {@code builder} using a {@code Bitmap} if a bitmap is p rovided and the API
418 * level is high enough, otherwise a resource id is used. 418 * level is high enough, otherwise a resource id is used.
419 */ 419 */
420 @SuppressWarnings("deprecation") // For addAction(int, CharSequence, Pending Intent) 420 @SuppressWarnings("deprecation") // For addAction(int, CharSequence, Pending Intent)
421 protected static void addActionToBuilder(Notification.Builder builder, Actio n action) { 421 protected static void addActionToBuilder(ChromeNotificationBuilder builder, Action action) {
422 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH) { 422 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH) {
423 // Notification.Action.Builder and RemoteInput were added in KITKAT_ WATCH. 423 // Notification.Action.Builder and RemoteInput were added in KITKAT_ WATCH.
424 Notification.Action.Builder actionBuilder = getActionBuilder(action) ; 424 Notification.Action.Builder actionBuilder = getActionBuilder(action) ;
425 if (action.type == Action.Type.TEXT) { 425 if (action.type == Action.Type.TEXT) {
426 assert action.placeholder != null; 426 assert action.placeholder != null;
427 actionBuilder.addRemoteInput( 427 actionBuilder.addRemoteInput(
428 new RemoteInput.Builder(NotificationConstants.KEY_TEXT_R EPLY) 428 new RemoteInput.Builder(NotificationConstants.KEY_TEXT_R EPLY)
429 .setLabel(action.placeholder) 429 .setLabel(action.placeholder)
430 .build()); 430 .build());
431 } 431 }
432 builder.addAction(actionBuilder.build()); 432 builder.addAction(actionBuilder.build());
433 } else { 433 } else {
434 builder.addAction(action.iconId, action.title, action.intent); 434 builder.addAction(action.iconId, action.title, action.intent);
435 } 435 }
436 } 436 }
437 437
438 /** 438 /**
439 * Sets the notification group for the builder, determined by the origin pro vided. 439 * Sets the notification group for the builder, determined by the origin pro vided.
440 * Note, after this notification is built and posted, a further summary noti fication must be 440 * Note, after this notification is built and posted, a further summary noti fication must be
441 * posted for notifications in the group to appear grouped in the notificati on shade. 441 * posted for notifications in the group to appear grouped in the notificati on shade.
442 */ 442 */
443 @SuppressLint("NewApi") // For setGroup 443 @SuppressLint("NewApi") // For setGroup
444 static void setGroupOnBuilder(Notification.Builder builder, CharSequence ori gin) { 444 static void setGroupOnBuilder(ChromeNotificationBuilder builder, CharSequenc e origin) {
445 if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT_WATCH || origin = = null) return; 445 if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT_WATCH || origin = = null) return;
446 builder.setGroup(NotificationConstants.GROUP_WEB_PREFIX + origin); 446 builder.setGroup(NotificationConstants.GROUP_WEB_PREFIX + origin);
447 // TODO(crbug.com/674927) Post a group summary notification. 447 // TODO(crbug.com/674927) Post a group summary notification.
448 // Notifications with the same group will only actually be stacked if we post a group 448 // Notifications with the same group will only actually be stacked if we post a group
449 // summary notification. Calling setGroup at least prevents them being a utobundled with 449 // summary notification. Calling setGroup at least prevents them being a utobundled with
450 // all Chrome notifications on N though (see crbug.com/674015). 450 // all Chrome notifications on N though (see crbug.com/674015).
451 } 451 }
452 452
453 @TargetApi(Build.VERSION_CODES.KITKAT_WATCH) // For Notification.Action.Buil der 453 @TargetApi(Build.VERSION_CODES.KITKAT_WATCH) // For Notification.Action.Buil der
454 @SuppressWarnings("deprecation") // For Builder(int, CharSequence, PendingIn tent) 454 @SuppressWarnings("deprecation") // For Builder(int, CharSequence, PendingIn tent)
(...skipping 27 matching lines...) Expand all
482 int largeIconWidthPx = 482 int largeIconWidthPx =
483 resources.getDimensionPixelSize(android.R.dimen.notification_lar ge_icon_width); 483 resources.getDimensionPixelSize(android.R.dimen.notification_lar ge_icon_width);
484 int largeIconHeightPx = 484 int largeIconHeightPx =
485 resources.getDimensionPixelSize(android.R.dimen.notification_lar ge_icon_height); 485 resources.getDimensionPixelSize(android.R.dimen.notification_lar ge_icon_height);
486 float density = resources.getDisplayMetrics().density; 486 float density = resources.getDisplayMetrics().density;
487 int cornerRadiusPx = Math.min(largeIconWidthPx, largeIconHeightPx) / 2; 487 int cornerRadiusPx = Math.min(largeIconWidthPx, largeIconHeightPx) / 2;
488 return new RoundedIconGenerator(largeIconWidthPx, largeIconHeightPx, cor nerRadiusPx, 488 return new RoundedIconGenerator(largeIconWidthPx, largeIconHeightPx, cor nerRadiusPx,
489 NOTIFICATION_ICON_BG_COLOR, NOTIFICATION_ICON_TEXT_SIZE_DP * den sity); 489 NOTIFICATION_ICON_BG_COLOR, NOTIFICATION_ICON_TEXT_SIZE_DP * den sity);
490 } 490 }
491 } 491 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698