Index: chrome/android/java/src/org/chromium/chrome/browser/upgrade/PackageReplacedBroadcastReceiver.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/upgrade/PackageReplacedBroadcastReceiver.java b/chrome/android/java/src/org/chromium/chrome/browser/upgrade/PackageReplacedBroadcastReceiver.java |
index 3b8782df95d4f7265d87a6d5fcf2a0923e4ff121..da0761fd6c011ce5c8bce00f601fea2e2988fe77 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/upgrade/PackageReplacedBroadcastReceiver.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/upgrade/PackageReplacedBroadcastReceiver.java |
@@ -7,8 +7,11 @@ package org.chromium.chrome.browser.upgrade; |
import android.content.BroadcastReceiver; |
import android.content.Context; |
import android.content.Intent; |
+import android.os.AsyncTask; |
import android.os.Build; |
+import org.chromium.chrome.browser.notifications.ChannelsUpdater; |
+ |
/** |
* Triggered when Chrome's package is replaced (e.g. when it is upgraded). |
* |
@@ -25,9 +28,25 @@ import android.os.Build; |
*/ |
public final class PackageReplacedBroadcastReceiver extends BroadcastReceiver { |
@Override |
- public void onReceive(Context context, Intent intent) { |
+ public void onReceive(final Context context, Intent intent) { |
if (!Intent.ACTION_MY_PACKAGE_REPLACED.equals(intent.getAction())) return; |
+ updateChannelsIfNecessary(); |
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N) return; |
UpgradeIntentService.startMigrationIfNecessary(context); |
} |
+ |
+ private void updateChannelsIfNecessary() { |
+ if (!ChannelsUpdater.getInstance().shouldUpdateChannels()) return; |
+ |
+ final PendingResult result = goAsync(); |
+ new AsyncTask<Void, Void, Void>() { |
+ @Override |
+ protected Void doInBackground(Void... params) { |
+ ChannelsUpdater.getInstance().updateChannels(); |
+ result.finish(); |
+ return null; |
+ } |
+ } |
+ .executeOnExecutor(AsyncTask.SERIAL_EXECUTOR); |
+ } |
} |