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 898d6bdce140b377122961de165907967cd7f570..42ee4d7373433bc9335713e2a6ce06bd90d99c97 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 |
@@ -40,7 +40,7 @@ import java.util.List; |
public class DownloadHistoryAdapter extends DateDividedAdapter implements DownloadUiObserver { |
/** Holds onto a View that displays information about a downloaded file. */ |
- static class ItemViewHolder extends RecyclerView.ViewHolder { |
+ public static class ItemViewHolder extends RecyclerView.ViewHolder { |
public DownloadItemView mItemView; |
public ImageView mIconView; |
public TextView mFilenameView; |
@@ -101,7 +101,7 @@ public class DownloadHistoryAdapter extends DateDividedAdapter implements Downlo |
list.clear(); |
int[] mItemCounts = new int[DownloadFilter.FILTER_BOUNDARY]; |
for (DownloadItem item : result) { |
- DownloadItemWrapper wrapper = new DownloadItemWrapper(item, isOffTheRecord); |
+ DownloadItemWrapper wrapper = createDownloadItemWrapper(item, isOffTheRecord); |
list.add(wrapper); |
mItemCounts[wrapper.getFilterType()]++; |
} |
@@ -123,14 +123,18 @@ public class DownloadHistoryAdapter extends DateDividedAdapter implements Downlo |
result.size()); |
} |
- /** Returns the total size of all the downloaded items. */ |
+ /** Returns the total size of all non-deleted downloaded items. */ |
public long getTotalDownloadSize() { |
long totalSize = 0; |
for (DownloadHistoryItemWrapper wrapper : mDownloadItems) { |
- totalSize += wrapper.getFileSize(); |
+ assert wrapper instanceof DownloadItemWrapper; |
+ DownloadItemWrapper downloadWrapper = (DownloadItemWrapper) wrapper; |
+ if (!downloadWrapper.hasBeenExternallyRemoved()) totalSize += wrapper.getFileSize(); |
} |
for (DownloadHistoryItemWrapper wrapper : mDownloadOffTheRecordItems) { |
- totalSize += wrapper.getFileSize(); |
+ assert wrapper instanceof DownloadItemWrapper; |
+ DownloadItemWrapper downloadWrapper = (DownloadItemWrapper) wrapper; |
+ if (!downloadWrapper.hasBeenExternallyRemoved()) totalSize += wrapper.getFileSize(); |
} |
for (DownloadHistoryItemWrapper wrapper : mOfflinePageItems) { |
totalSize += wrapper.getFileSize(); |
@@ -206,10 +210,10 @@ public class DownloadHistoryAdapter extends DateDividedAdapter implements Downlo |
int index = findItemIndex(list, item.getId()); |
if (index == INVALID_INDEX) { |
// Add a new entry. |
- list.add(new DownloadItemWrapper(item, isOffTheRecord)); |
+ list.add(createDownloadItemWrapper(item, isOffTheRecord)); |
} else { |
// Update the old one. |
- list.set(index, new DownloadItemWrapper(item, isOffTheRecord)); |
+ list.set(index, createDownloadItemWrapper(item, isOffTheRecord)); |
} |
filter(mFilter); |
@@ -376,8 +380,13 @@ public class DownloadHistoryAdapter extends DateDividedAdapter implements Downlo |
return false; |
} |
+ private DownloadItemWrapper createDownloadItemWrapper( |
+ DownloadItem item, boolean isOffTheRecord) { |
+ return new DownloadItemWrapper(item, isOffTheRecord, mBackendProvider); |
+ } |
+ |
private OfflinePageItemWrapper createOfflinePageItemWrapper(OfflinePageDownloadItem item) { |
- return new OfflinePageItemWrapper(item, getOfflinePageBridge(), mParentComponent); |
+ return new OfflinePageItemWrapper(item, mBackendProvider, mParentComponent); |
} |
private void recordDownloadCountHistograms(int[] itemCounts, int totalCount) { |