Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/history/HistoryAdapter.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryAdapter.java |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..9cccf5dfe5453711e71bf67f7a8415e6c15b1b68 |
| --- /dev/null |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryAdapter.java |
| @@ -0,0 +1,75 @@ |
| +// Copyright 2016 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +package org.chromium.chrome.browser.history; |
| + |
| +import android.support.v7.widget.RecyclerView.ViewHolder; |
| +import android.view.LayoutInflater; |
| +import android.view.View; |
| +import android.view.ViewGroup; |
| + |
| +import org.chromium.base.Callback; |
| +import org.chromium.chrome.R; |
| +import org.chromium.chrome.browser.widget.DateDividedAdapter; |
| +import org.chromium.chrome.browser.widget.selection.SelectableItemViewHolder; |
| +import org.chromium.chrome.browser.widget.selection.SelectionDelegate; |
| + |
| +import java.util.List; |
| + |
| +/** |
| + * Bridges the user's browsing history and the UI used to display it. |
| + */ |
| +public class HistoryAdapter extends DateDividedAdapter { |
| + private static final String EMPTY_QUERY = ""; |
| + |
| + private SelectionDelegate<HistoryItem> mSelectionDelegate; |
|
gone
2016/12/02 19:34:37
finals?
Theresa
2016/12/02 20:49:32
Done.
|
| + private BrowsingHistoryBridge mBridge; |
| + |
| + public HistoryAdapter(SelectionDelegate<HistoryItem> delegate) { |
| + setHasStableIds(true); |
| + mSelectionDelegate = delegate; |
| + mBridge = new BrowsingHistoryBridge(); |
| + } |
| + |
| + /** |
| + * Called when the activity/native page is destroyed. |
| + */ |
| + public void onDestroyed() { |
| + mBridge.destroy(); |
| + } |
| + |
| + /** |
| + * Initializes the HistoryAdapter and loads the first set of browsing history items. |
| + */ |
| + public void initialize() { |
| + mBridge.queryHistory(new Callback<List<HistoryItem>>() { |
| + @Override |
| + public void onResult(List<HistoryItem> result) { |
| + loadItems(result); |
|
gone
2016/12/02 19:34:37
What happens if this class (or the bridge) is dest
Theresa
2016/12/02 20:49:32
I don't think it's technically possible (see comme
|
| + } |
| + }, EMPTY_QUERY, 0); |
| + } |
| + |
| + @Override |
| + protected ViewHolder createViewHolder(ViewGroup parent) { |
| + View v = LayoutInflater.from(parent.getContext()).inflate( |
| + R.layout.history_item_view, parent, false); |
| + return new SelectableItemViewHolder<HistoryItem>(v, mSelectionDelegate); |
| + } |
| + |
| + @Override |
| + protected void bindViewHolderForTimedItem(ViewHolder current, TimedItem timedItem) { |
| + final HistoryItem item = (HistoryItem) timedItem; |
| + @SuppressWarnings("unchecked") |
| + SelectableItemViewHolder<HistoryItem> holder = |
| + (SelectableItemViewHolder<HistoryItem>) current; |
| + holder.displayItem(item); |
| + } |
| + |
| + @Override |
| + protected int getTimedItemViewResId() { |
| + return R.layout.date_view; |
| + } |
| + |
| +} |