| 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 52f4a758010c22749eb85b87f278d996da2e1fda..79d5b284b927cc5db69a7d5e5fcb594b3f1b1f05 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
|
| @@ -70,6 +70,10 @@ public class DownloadHistoryAdapter extends DateDividedAdapter implements Downlo
|
| private OfflinePageDownloadBridge.Observer mOfflinePageObserver;
|
| private int mFilter = DownloadFilter.FILTER_ALL;
|
|
|
| + private boolean mAllDownloadItemsRetrieved;
|
| + private boolean mAllOffTheRecordDownloadItemsRetrieved;
|
| + private boolean mAllOfflinePagesRetrieved;
|
| +
|
| DownloadHistoryAdapter(boolean showOffTheRecord, ComponentName parentComponent) {
|
| mShowOffTheRecord = showOffTheRecord;
|
| mParentComponent = parentComponent;
|
| @@ -97,6 +101,16 @@ public class DownloadHistoryAdapter extends DateDividedAdapter implements Downlo
|
| public void onAllDownloadsRetrieved(List<DownloadItem> result, boolean isOffTheRecord) {
|
| if (isOffTheRecord && !mShowOffTheRecord) return;
|
|
|
| + if ((!isOffTheRecord && mAllDownloadItemsRetrieved)
|
| + || (isOffTheRecord && mAllOffTheRecordDownloadItemsRetrieved)) {
|
| + return;
|
| + }
|
| + if (!isOffTheRecord) {
|
| + mAllDownloadItemsRetrieved = true;
|
| + } else {
|
| + mAllOffTheRecordDownloadItemsRetrieved = true;
|
| + }
|
| +
|
| mLoadingDelegate.updateLoadingState(
|
| isOffTheRecord ? LoadingStateDelegate.OFF_THE_RECORD_HISTORY_LOADED
|
| : LoadingStateDelegate.DOWNLOAD_HISTORY_LOADED);
|
| @@ -128,6 +142,9 @@ public class DownloadHistoryAdapter extends DateDividedAdapter implements Downlo
|
|
|
| /** Called when the user's offline page history has been gathered. */
|
| private void onAllOfflinePagesRetrieved(List<OfflinePageDownloadItem> result) {
|
| + if (mAllOfflinePagesRetrieved) return;
|
| + mAllOfflinePagesRetrieved = true;
|
| +
|
| mLoadingDelegate.updateLoadingState(LoadingStateDelegate.OFFLINE_PAGE_LOADED);
|
| mOfflinePageItems.clear();
|
| for (OfflinePageDownloadItem item : result) {
|
|
|