New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 707211 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Apr 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Bug



Sign in to add a comment

[Android O] Initialize notification channels on first launch/upgrade

Project Member Reported by awdf@chromium.org, Mar 31 2017

Issue description

Currently Chrome channels only start to appear in Android Settings once they have a notification posted to them.

But ideally channels should be initialized on first launch of the app.

See https://docs.google.com/document/d/1K9pjvlHF1oANNI8TqZgy151tap9zs1KUr2qfBXo1s_4/edit#heading=h.3s2n5cjjhiyh for more discussion
 

Comment 1 by awdf@chromium.org, Mar 31 2017

Some thoughts about how best to initialize on first launch, upgrade and boot: https://docs.google.com/document/d/1hvQlpAbzjuwnvgAJD3Djx8nVkHle1QSWFayLJvBFmYM/edit?usp=sharing 

They will also need to be re-initialized on locale changed, but no extra checks are required there.

Comment 2 by awdf@chromium.org, Mar 31 2017

Status: Started (was: Assigned)
Project Member

Comment 3 by bugdroid1@chromium.org, Apr 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7776b8449261779e9660d4b3b48eca20492e21d3

commit 7776b8449261779e9660d4b3b48eca20492e21d3
Author: awdf <awdf@chromium.org>
Date: Tue Apr 11 18:20:35 2017

[Android O] Refactor channel initialization

- All the notification channel properties are now defined in the
 ChannelsInitializer and only the channel ID needs to be
 passed to the ChromeNotificationBuilder.

- This avoids previous duplication and this logic can be reused
 when we start initializing channels on launch and upgrade.

BUG= 707211 

Review-Url: https://codereview.chromium.org/2808163002
Cr-Commit-Position: refs/heads/master@{#463688}

[modify] https://crrev.com/7776b8449261779e9660d4b3b48eca20492e21d3/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationService.java
[modify] https://crrev.com/7776b8449261779e9660d4b3b48eca20492e21d3/chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationManager.java
[modify] https://crrev.com/7776b8449261779e9660d4b3b48eca20492e21d3/chrome/android/java/src/org/chromium/chrome/browser/media/MediaCaptureNotificationService.java
[modify] https://crrev.com/7776b8449261779e9660d4b3b48eca20492e21d3/chrome/android/java/src/org/chromium/chrome/browser/media/ui/MediaNotificationManager.java
[add] https://crrev.com/7776b8449261779e9660d4b3b48eca20492e21d3/chrome/android/java/src/org/chromium/chrome/browser/notifications/ChannelsInitializer.java
[modify] https://crrev.com/7776b8449261779e9660d4b3b48eca20492e21d3/chrome/android/java/src/org/chromium/chrome/browser/notifications/CustomNotificationBuilder.java
[modify] https://crrev.com/7776b8449261779e9660d4b3b48eca20492e21d3/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationBuilderFactory.java
[modify] https://crrev.com/7776b8449261779e9660d4b3b48eca20492e21d3/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationBuilderForO.java
[modify] https://crrev.com/7776b8449261779e9660d4b3b48eca20492e21d3/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationConstants.java
[modify] https://crrev.com/7776b8449261779e9660d4b3b48eca20492e21d3/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationManagerProxy.java
[modify] https://crrev.com/7776b8449261779e9660d4b3b48eca20492e21d3/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationManagerProxyImpl.java
[modify] https://crrev.com/7776b8449261779e9660d4b3b48eca20492e21d3/chrome/android/java/src/org/chromium/chrome/browser/notifications/StandardNotificationBuilder.java
[modify] https://crrev.com/7776b8449261779e9660d4b3b48eca20492e21d3/chrome/android/java/src/org/chromium/chrome/browser/ntp/ContentSuggestionsNotificationHelper.java
[modify] https://crrev.com/7776b8449261779e9660d4b3b48eca20492e21d3/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/PhysicalWebBroadcastService.java
[modify] https://crrev.com/7776b8449261779e9660d4b3b48eca20492e21d3/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java
[modify] https://crrev.com/7776b8449261779e9660d4b3b48eca20492e21d3/chrome/android/java_sources.gni
[add] https://crrev.com/7776b8449261779e9660d4b3b48eca20492e21d3/chrome/android/junit/src/org/chromium/chrome/browser/notifications/ChannelsInitializerTest.java
[modify] https://crrev.com/7776b8449261779e9660d4b3b48eca20492e21d3/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/notifications/MockNotificationManagerProxy.java

Project Member

Comment 4 by bugdroid1@chromium.org, Apr 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/02dc9f2819cf895bc4ec0dd2a67a90435c58f1bc

commit 02dc9f2819cf895bc4ec0dd2a67a90435c58f1bc
Author: awdf <awdf@chromium.org>
Date: Wed Apr 12 15:38:39 2017

[Android O] Initialize channels on first launch/upgrade

- Previously channels would only be created lazily, when a notification
 was posted to them.

- Now they are initialized on first launch (asynchronously) and on app
 upgrade, so they appear in OS Settings much sooner.

- Further work is still required to re-initialize channels on locale
 change, and maybe on boot to catch OS upgrade as soon as possible.

BUG= 707211 

Review-Url: https://codereview.chromium.org/2807213002
Cr-Commit-Position: refs/heads/master@{#464036}

[modify] https://crrev.com/02dc9f2819cf895bc4ec0dd2a67a90435c58f1bc/chrome/android/java/src/org/chromium/chrome/browser/DeferredStartupHandler.java
[modify] https://crrev.com/02dc9f2819cf895bc4ec0dd2a67a90435c58f1bc/chrome/android/java/src/org/chromium/chrome/browser/notifications/ChannelsInitializer.java
[add] https://crrev.com/02dc9f2819cf895bc4ec0dd2a67a90435c58f1bc/chrome/android/java/src/org/chromium/chrome/browser/notifications/ChannelsUpdater.java
[modify] https://crrev.com/02dc9f2819cf895bc4ec0dd2a67a90435c58f1bc/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationManagerProxy.java
[modify] https://crrev.com/02dc9f2819cf895bc4ec0dd2a67a90435c58f1bc/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationManagerProxyImpl.java
[modify] https://crrev.com/02dc9f2819cf895bc4ec0dd2a67a90435c58f1bc/chrome/android/java/src/org/chromium/chrome/browser/upgrade/PackageReplacedBroadcastReceiver.java
[modify] https://crrev.com/02dc9f2819cf895bc4ec0dd2a67a90435c58f1bc/chrome/android/java_sources.gni
[modify] https://crrev.com/02dc9f2819cf895bc4ec0dd2a67a90435c58f1bc/chrome/android/junit/src/org/chromium/chrome/browser/notifications/ChannelsInitializerTest.java
[add] https://crrev.com/02dc9f2819cf895bc4ec0dd2a67a90435c58f1bc/chrome/android/junit/src/org/chromium/chrome/browser/notifications/ChannelsUpdaterTest.java
[modify] https://crrev.com/02dc9f2819cf895bc4ec0dd2a67a90435c58f1bc/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/notifications/MockNotificationManagerProxy.java

Comment 5 by awdf@chromium.org, Apr 12 2017

Labels: M-59
Status: Fixed (was: Started)
Resolving this as fixed, created separate bugs for initializing on locale change / OS upgrade:
https://bugs.chromium.org/p/chromium/issues/detail?id=710925 
https://bugs.chromium.org/p/chromium/issues/detail?id=710926


Sign in to add a comment