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..0f553b995ba4a93b7840cf60d15afad6bafea79b 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,12 +1074,24 @@ public class DownloadManagerService extends BroadcastReceiver implements |
* @param context Application context |
*/ |
protected static void openDownloadsPage(Context context) { |
- Intent pageView = new Intent(DownloadManager.ACTION_VIEW_DOWNLOADS); |
- pageView.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); |
- try { |
- context.startActivity(pageView); |
- } catch (ActivityNotFoundException e) { |
- Log.e(TAG, "Cannot find Downloads app", e); |
+ if (ChromeFeatureList.isEnabled(ChromeFeatureList.SYSTEM_DOWNLOAD_MANAGER)) { |
+ Intent pageView = new Intent(DownloadManager.ACTION_VIEW_DOWNLOADS); |
+ pageView.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); |
+ try { |
+ context.startActivity(pageView); |
+ } catch (ActivityNotFoundException e) { |
+ Log.e(TAG, "Cannot find Downloads app", e); |
+ } |
+ } else { |
+ 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()); |
+ } |
+ } |
} |
} |