Index: chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadManagerUi.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadManagerUi.java b/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadManagerUi.java |
index d1f713fd30820e9e6a934cd1b50cd6a2279c0075..1813bf0d26b5c587a7db570376921573970e5257 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadManagerUi.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadManagerUi.java |
@@ -429,6 +429,10 @@ public class DownloadManagerUi implements OnMenuItemClickListener { |
mBackendProvider.getSelectionDelegate().getSelectedItems(); |
final List<DownloadHistoryItemWrapper> itemsToDelete = getItemsForDeletion(); |
+ mBackendProvider.getSelectionDelegate().clearSelection(); |
+ |
+ if (itemsToDelete.isEmpty()) return; |
+ |
mHistoryAdapter.removeItemsFromAdapter(itemsToDelete); |
dismissUndoDeletionSnackbars(); |
@@ -445,8 +449,6 @@ public class DownloadManagerUi implements OnMenuItemClickListener { |
snackbar.setTemplateText(mActivity.getString(snackbarTemplateId)); |
((SnackbarManageable) mActivity).getSnackbarManager().showSnackbar(snackbar); |
- |
- mBackendProvider.getSelectionDelegate().clearSelection(); |
} |
private List<DownloadHistoryItemWrapper> getItemsForDeletion() { |
@@ -457,7 +459,11 @@ public class DownloadManagerUi implements OnMenuItemClickListener { |
for (DownloadHistoryItemWrapper item : selectedItems) { |
if (!filePathsToRemove.contains(item.getFilePath())) { |
- itemsToRemove.addAll(mHistoryAdapter.getItemsForFilePath(item.getFilePath())); |
+ List<DownloadHistoryItemWrapper> itemsForFilePath = |
+ mHistoryAdapter.getItemsForFilePath(item.getFilePath()); |
+ if (itemsForFilePath != null) { |
+ itemsToRemove.addAll(itemsForFilePath); |
+ } |
filePathsToRemove.add(item.getFilePath()); |
} |
} |