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

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

Issue 2266543003: [Download Home] Use OfflinePage titles & bolster tests (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@titles
Patch Set: setup 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/ui/DownloadHistoryAdapter.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadHistoryAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadHistoryAdapter.java
index a0300ac5fbdd2eb4bbf910fdb3d1c050d321124b..9a95c780a2837fbf2f80d43dd2bff09b02429175 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadHistoryAdapter.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadHistoryAdapter.java
@@ -19,16 +19,15 @@ import android.widget.ImageView;
import android.widget.TextView;
import org.chromium.base.ApiCompatibilityUtils;
-import org.chromium.base.ContextUtils;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.download.DownloadItem;
-import org.chromium.chrome.browser.download.DownloadManagerService;
+import org.chromium.chrome.browser.download.ui.BackendProvider.DownloadDelegate;
+import org.chromium.chrome.browser.download.ui.BackendProvider.OfflinePageDelegate;
import org.chromium.chrome.browser.download.ui.DownloadHistoryItemWrapper.DownloadItemWrapper;
import org.chromium.chrome.browser.download.ui.DownloadHistoryItemWrapper.OfflinePageItemWrapper;
import org.chromium.chrome.browser.download.ui.DownloadManagerUi.DownloadUiObserver;
import org.chromium.chrome.browser.offlinepages.downloads.OfflinePageDownloadBridge;
import org.chromium.chrome.browser.offlinepages.downloads.OfflinePageDownloadItem;
-import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.util.UrlUtilities;
import org.chromium.chrome.browser.widget.DateDividedAdapter;
import org.chromium.chrome.browser.widget.selection.SelectionDelegate;
@@ -70,9 +69,9 @@ public class DownloadHistoryAdapter extends DateDividedAdapter implements Downlo
private final ComponentName mParentComponent;
private final boolean mShowOffTheRecord;
+ private BackendProvider mBackendProvider;
+ private OfflinePageDownloadBridge.Observer mOfflinePageObserver;
private int mFilter = DownloadFilter.FILTER_ALL;
- private SelectionDelegate<DownloadHistoryItemWrapper> mSelectionDelegate;
- private OfflinePageDownloadBridge mOfflinePageBridge;
private int mFilenameViewTextColor;
DownloadHistoryAdapter(boolean showOffTheRecord, ComponentName parentComponent) {
@@ -81,11 +80,15 @@ public class DownloadHistoryAdapter extends DateDividedAdapter implements Downlo
setHasStableIds(true);
}
- @Override
- public void initialize(DownloadManagerUi manager) {
- if (manager != null) manager.addObserver(this);
- mSelectionDelegate = getSelectionDelegate(manager);
- initializeDownloadBridge();
+ public void initialize(BackendProvider provider) {
+ mBackendProvider = provider;
+
+ // Get all regular and (if necessary) off the record downloads.
+ DownloadDelegate downloadManager = getDownloadDelegate();
+ downloadManager.addDownloadHistoryAdapter(this);
+ downloadManager.getAllDownloads(false);
+ if (mShowOffTheRecord) downloadManager.getAllDownloads(true);
+
initializeOfflinePageBridge();
}
@@ -103,8 +106,7 @@ public class DownloadHistoryAdapter extends DateDividedAdapter implements Downlo
private void onAllOfflinePagesRetrieved(List<OfflinePageDownloadItem> result) {
mOfflinePageItems.clear();
for (OfflinePageDownloadItem item : result) {
- mOfflinePageItems.add(
- new OfflinePageItemWrapper(item, mOfflinePageBridge, mParentComponent));
+ mOfflinePageItems.add(createOfflinePageItemWrapper(item));
}
// TODO(ianwen): Implement a loading screen to prevent filter-changing wonkiness.
@@ -135,7 +137,7 @@ public class DownloadHistoryAdapter extends DateDividedAdapter implements Downlo
public ViewHolder createViewHolder(ViewGroup parent) {
View v = LayoutInflater.from(parent.getContext()).inflate(
R.layout.download_item_view, parent, false);
- ((DownloadItemView) v).setSelectionDelegate(mSelectionDelegate);
+ ((DownloadItemView) v).setSelectionDelegate(getSelectionDelegate());
return new ItemViewHolder(v);
}
@@ -219,19 +221,21 @@ public class DownloadHistoryAdapter extends DateDividedAdapter implements Downlo
}
@Override
- public void onManagerDestroyed(DownloadManagerUi manager) {
- getDownloadManagerService().removeDownloadHistoryAdapter(this);
+ public void onManagerDestroyed() {
+ getDownloadDelegate().removeDownloadHistoryAdapter(this);
+ getOfflinePageBridge().removeObserver(mOfflinePageObserver);
+ }
- if (mOfflinePageBridge != null) {
- mOfflinePageBridge.destroy();
- mOfflinePageBridge = null;
- }
+ private DownloadDelegate getDownloadDelegate() {
+ return mBackendProvider.getDownloadDelegate();
}
- /** Returns the SelectionDelegate to use for each ViewHolder. */
- protected SelectionDelegate<DownloadHistoryItemWrapper> getSelectionDelegate(
- DownloadManagerUi manager) {
- return manager == null ? null : manager.getSelectionDelegate();
+ private OfflinePageDelegate getOfflinePageBridge() {
+ return mBackendProvider.getOfflinePageBridge();
+ }
+
+ private SelectionDelegate<DownloadHistoryItemWrapper> getSelectionDelegate() {
+ return mBackendProvider.getSelectionDelegate();
}
/** Filters the list of downloads to show only files of a specific type. */
@@ -259,27 +263,16 @@ public class DownloadHistoryAdapter extends DateDividedAdapter implements Downlo
loadItems(mFilteredItems);
}
- protected void initializeDownloadBridge() {
- // Get all regular and (if necessary) off the record downloads.
- getDownloadManagerService().addDownloadHistoryAdapter(this);
- getDownloadManagerService().getAllDownloads(false);
- if (mShowOffTheRecord) getDownloadManagerService().getAllDownloads(true);
- }
-
- protected void initializeOfflinePageBridge() {
- mOfflinePageBridge = new OfflinePageDownloadBridge(
- Profile.getLastUsedProfile().getOriginalProfile());
-
- mOfflinePageBridge.addObserver(new OfflinePageDownloadBridge.Observer() {
+ private void initializeOfflinePageBridge() {
+ mOfflinePageObserver = new OfflinePageDownloadBridge.Observer() {
@Override
public void onItemsLoaded() {
- onAllOfflinePagesRetrieved(mOfflinePageBridge.getAllItems());
+ onAllOfflinePagesRetrieved(getOfflinePageBridge().getAllItems());
}
@Override
public void onItemAdded(OfflinePageDownloadItem item) {
- mOfflinePageItems.add(
- new OfflinePageItemWrapper(item, mOfflinePageBridge, mParentComponent));
+ mOfflinePageItems.add(createOfflinePageItemWrapper(item));
updateFilter();
}
@@ -292,8 +285,7 @@ public class DownloadHistoryAdapter extends DateDividedAdapter implements Downlo
public void onItemUpdated(OfflinePageDownloadItem item) {
int index = findItemIndex(mOfflinePageItems, item.getGuid());
if (index != INVALID_INDEX) {
- mOfflinePageItems.set(index,
- new OfflinePageItemWrapper(item, mOfflinePageBridge, mParentComponent));
+ mOfflinePageItems.set(index, createOfflinePageItemWrapper(item));
updateFilter();
}
}
@@ -304,7 +296,8 @@ public class DownloadHistoryAdapter extends DateDividedAdapter implements Downlo
filter(mFilter);
}
}
- });
+ };
+ getOfflinePageBridge().addObserver(mOfflinePageObserver);
}
private List<DownloadItemWrapper> getDownloadItemList(boolean isOffTheRecord) {
@@ -365,16 +358,15 @@ public class DownloadHistoryAdapter extends DateDividedAdapter implements Downlo
int index = findItemIndex(list, guid);
if (index != INVALID_INDEX) {
T wrapper = list.remove(index);
- if (mSelectionDelegate != null && mSelectionDelegate.isItemSelected(wrapper)) {
- mSelectionDelegate.toggleSelectionForItem(wrapper);
+ if (getSelectionDelegate().isItemSelected(wrapper)) {
+ getSelectionDelegate().toggleSelectionForItem(wrapper);
}
return true;
}
return false;
}
- private static DownloadManagerService getDownloadManagerService() {
- return DownloadManagerService.getDownloadManagerService(
- ContextUtils.getApplicationContext());
+ private OfflinePageItemWrapper createOfflinePageItemWrapper(OfflinePageDownloadItem item) {
+ return new OfflinePageItemWrapper(item, getOfflinePageBridge(), mParentComponent);
}
}

Powered by Google App Engine
This is Rietveld 408576698