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

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: dfalcantara@ review changes 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..86f5e7cb86f47edbdd38d3c89697be16246ac520 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,10 @@ 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.chrome.R;
import org.chromium.chrome.browser.BasicNativePage;
import org.chromium.chrome.browser.UrlConstants;
@@ -17,11 +21,13 @@ import org.chromium.chrome.browser.tab.Tab;
* Native page for managing downloads handled through Chrome.
*/
public class DownloadPage extends BasicNativePage {
+ private ActivityStateListener mActivityStateListener;
+
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 +36,28 @@ public class DownloadPage extends BasicNativePage {
}
@Override
- protected void initialize(Activity activity, Tab tab) {
+ 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);
+
+ // #destroy() unregisters the ActivityStateListener to avoid checking for externally removed
+ // downloads after the downloads page is closed. This requires each DownloadPage to have its
+ // own ActivityStateListener. If multiple tabs are showing the downloads page, multiple
+ // requests to check for externally removed downloads will be issued when the activity is
+ // resumed.
+ mActivityStateListener = new ActivityStateListener() {
+ @Override
+ public void onActivityStateChange(Activity activity, int newState) {
+ if (newState == ActivityState.RESUMED) {
+ DownloadUtils.checkForExternallyRemovedDownloads(
+ mManager.getBackendProvider(), tab.isIncognito());
+ }
+ }
+ };
+ ApplicationStatus.registerStateListenerForActivity(mActivityStateListener, activity);
}
@Override
@@ -61,6 +85,7 @@ public class DownloadPage extends BasicNativePage {
public void destroy() {
mManager.onDestroyed();
mManager = null;
+ ApplicationStatus.unregisterActivityStateListener(mActivityStateListener);
super.destroy();
}
}

Powered by Google App Engine
This is Rietveld 408576698