Index: chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java |
index 673b75ddd3e3fa9a8e69edd11ec248652df1a11f..24fdbe65a8ac3cd646b19a6d85c1b3404cebb3dd 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java |
@@ -4,6 +4,7 @@ |
package org.chromium.chrome.browser.download; |
+import android.app.Activity; |
import android.app.DownloadManager; |
import android.content.ActivityNotFoundException; |
import android.content.BroadcastReceiver; |
@@ -21,6 +22,8 @@ import android.text.TextUtils; |
import android.util.LongSparseArray; |
import android.util.Pair; |
+import org.chromium.base.ActivityState; |
+import org.chromium.base.ApplicationStatus; |
import org.chromium.base.ContextUtils; |
import org.chromium.base.Log; |
import org.chromium.base.ObserverList; |
@@ -30,6 +33,8 @@ import org.chromium.base.annotations.CalledByNative; |
import org.chromium.base.annotations.SuppressFBWarnings; |
import org.chromium.base.metrics.RecordHistogram; |
import org.chromium.chrome.R; |
+import org.chromium.chrome.browser.ChromeActivity; |
+import org.chromium.chrome.browser.ChromeFeatureList; |
import org.chromium.chrome.browser.download.ui.BackendProvider; |
import org.chromium.chrome.browser.download.ui.DownloadHistoryAdapter; |
import org.chromium.chrome.browser.externalnav.ExternalNavigationDelegateImpl; |
@@ -1069,6 +1074,21 @@ public class DownloadManagerService extends BroadcastReceiver implements |
* @param context Application context |
*/ |
protected static void openDownloadsPage(Context context) { |
+ if (!ChromeFeatureList.isEnabled(ChromeFeatureList.SYSTEM_DOWNLOAD_MANAGER)) { |
+ // Try to open Download Home. |
+ Activity lastActivity = ApplicationStatus.getLastTrackedFocusedActivity(); |
+ if (lastActivity instanceof ChromeActivity) { |
+ int state = ApplicationStatus.getStateForActivity(lastActivity); |
+ if (state >= ActivityState.CREATED && state <= ActivityState.RESUMED) { |
+ ChromeActivity chromeActivity = (ChromeActivity) lastActivity; |
+ DownloadUtils.showDownloadManager( |
+ lastActivity, chromeActivity.getActivityTab()); |
+ return; |
+ } |
+ } |
+ } |
+ |
+ // Open the Android Download Manager. |
Intent pageView = new Intent(DownloadManager.ACTION_VIEW_DOWNLOADS); |
pageView.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); |
try { |