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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/download/DownloadPage.java

Issue 2271913002: [Downloads] Remove externally deleted items from downloads history (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: [Downloads] Remove externally deleted items from downloads history Created 4 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/download/DownloadPage.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadPage.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadPage.java
index adb08deda689f02cfc5d52937959f37580520775..fd711bb7701ca2242cd0178de9fb77776d20ab98 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadPage.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadPage.java
@@ -7,6 +7,11 @@ package org.chromium.chrome.browser.download;
import android.app.Activity;
import android.view.View;
+import org.chromium.base.ActivityState;
+import org.chromium.base.ApplicationStatus;
+import org.chromium.base.ApplicationStatus.ActivityStateListener;
+import org.chromium.base.ThreadUtils;
+import org.chromium.base.annotations.SuppressFBWarnings;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.BasicNativePage;
import org.chromium.chrome.browser.UrlConstants;
@@ -17,11 +22,13 @@ import org.chromium.chrome.browser.tab.Tab;
* Native page for managing downloads handled through Chrome.
*/
public class DownloadPage extends BasicNativePage {
+ private static ActivityStateListener sActivityStateListener;
+
private DownloadManagerUi mManager;
private String mTitle;
/**
- * Create a new instance of the bookmarks page.
+ * Create a new instance of the downloads page.
* @param activity The activity to get context and manage fragments.
* @param tab The tab to load urls.
*/
@@ -30,10 +37,28 @@ public class DownloadPage extends BasicNativePage {
}
@Override
- protected void initialize(Activity activity, Tab tab) {
+ @SuppressFBWarnings("LI_LAZY_INIT_UPDATE_STATIC") // Not called from multiple threads.
+ protected void initialize(Activity activity, final Tab tab) {
+ ThreadUtils.assertOnUiThread();
+
mManager = new DownloadManagerUi(activity, tab.isIncognito(), activity.getComponentName());
mManager.setBasicNativePage(this);
mTitle = activity.getString(R.string.download_manager_ui_all_downloads);
+
+ // Only register one activity state listener to prevent issuing multiple calls to check for
+ // externally removed downloads if multiple tabs are showing the downloads page.
+ if (sActivityStateListener == null) {
+ sActivityStateListener = new ActivityStateListener() {
+ @Override
+ public void onActivityStateChange(Activity activity, int newState) {
+ if (newState == ActivityState.RESUMED) {
+ DownloadUtils.checkForExternallyRemovedDownloads(
+ activity.getApplicationContext(), tab.isIncognito());
+ }
+ }
+ };
+ ApplicationStatus.registerStateListenerForActivity(sActivityStateListener, activity);
+ }
}
@Override

Powered by Google App Engine
This is Rietveld 408576698