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 eb775170a9368160f5f342e1a2cadabf0e9d1602..217cc0868dfe099d964566b0572b10b630a62023 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 |
@@ -6,6 +6,7 @@ package org.chromium.chrome.browser.download.ui; |
import android.content.Context; |
import android.support.v7.widget.RecyclerView; |
+import android.support.v7.widget.RecyclerView.ViewHolder; |
import android.text.TextUtils; |
import android.text.format.Formatter; |
import android.view.LayoutInflater; |
@@ -17,22 +18,21 @@ import android.widget.TextView; |
import org.chromium.chrome.R; |
import org.chromium.chrome.browser.download.DownloadItem; |
import org.chromium.chrome.browser.util.UrlUtilities; |
+import org.chromium.chrome.browser.widget.DateDividedAdapter; |
-import java.util.ArrayList; |
import java.util.List; |
/** Bridges the user's download history and the UI used to display it. */ |
-public class DownloadHistoryAdapter |
- extends RecyclerView.Adapter<DownloadHistoryAdapter.ViewHolder> { |
+public class DownloadHistoryAdapter extends DateDividedAdapter { |
/** Holds onto a View that displays information about a downloaded file. */ |
- static class ViewHolder extends RecyclerView.ViewHolder { |
+ static class ItemViewHolder extends RecyclerView.ViewHolder { |
public ImageView mIconView; |
public TextView mFilenameView; |
public TextView mHostnameView; |
public TextView mFilesizeView; |
- public ViewHolder(View itemView) { |
+ public ItemViewHolder(View itemView) { |
super(itemView); |
mIconView = (ImageView) itemView.findViewById(R.id.icon_view); |
mFilenameView = (TextView) itemView.findViewById(R.id.filename_view); |
@@ -53,27 +53,28 @@ public class DownloadHistoryAdapter |
private static final String MIMETYPE_IMAGE = "image"; |
private static final String MIMETYPE_DOCUMENT = "text"; |
- private final List<DownloadItem> mDownloadItems = new ArrayList<>(); |
- |
/** Called when the user's download history has been gathered into a List of DownloadItems. */ |
public void onAllDownloadsRetrieved(List<DownloadItem> list) { |
- mDownloadItems.clear(); |
- for (DownloadItem item : list) mDownloadItems.add(item); |
- notifyDataSetChanged(); |
+ loadItems(list); |
} |
@Override |
- public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { |
+ protected int getTimedItemViewResId() { |
+ return R.layout.download_date_view; |
+ } |
+ |
+ @Override |
+ public ViewHolder createViewHolder(ViewGroup parent) { |
View v = LayoutInflater.from(parent.getContext()).inflate( |
R.layout.download_item_view, parent, false); |
- return new ViewHolder(v); |
+ return new ItemViewHolder(v); |
} |
@Override |
- public void onBindViewHolder(ViewHolder holder, int position) { |
+ public void bindViewHolderForTimedItem(ViewHolder current, TimedItem timedItem) { |
+ ItemViewHolder holder = (ItemViewHolder) current; |
Context context = holder.mFilesizeView.getContext(); |
- |
- DownloadItem item = mDownloadItems.get(position); |
+ DownloadItem item = (DownloadItem) timedItem; |
holder.mFilenameView.setText(item.getDownloadInfo().getFileName()); |
holder.mHostnameView.setText( |
UrlUtilities.formatUrlForSecurityDisplay(item.getDownloadInfo().getUrl(), false)); |
@@ -105,16 +106,6 @@ public class DownloadHistoryAdapter |
holder.mIconView.setImageResource(iconResource); |
} |
- @Override |
- public int getItemCount() { |
- return mDownloadItems.size(); |
- } |
- |
- /** Clears out all of the downloads tracked by the Adapter. */ |
- public void clear() { |
- mDownloadItems.clear(); |
- } |
- |
/** Identifies the type of file represented by the given MIME type string. */ |
private static int convertMimeTypeToFileType(String mimeType) { |
if (TextUtils.isEmpty(mimeType)) return FILETYPE_OTHER; |