Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4846)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/history/HistoryAdapter.java

Issue 2542203002: [Android History] Add Android history manager UI and bridge (Closed)
Patch Set: Rebase, drop changes to time.* Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..ab9fc6977263bcdca45a0dbb142859dcd23eb451
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryAdapter.java
@@ -0,0 +1,82 @@
+// 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 final SelectionDelegate<HistoryItem> mSelectionDelegate;
+ private final BrowsingHistoryBridge mBridge;
+
+ private boolean mDestroyed;
+
+ 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();
+ mDestroyed = true;
+ }
+
+ /**
+ * 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) {
+ // Return early if the results are returned after the activity/native page is
+ // destroyed to avoid unnecessary work.
+ if (mDestroyed) return;
+
+ loadItems(result);
+ }
+ }, 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;
+ }
+
+}

Powered by Google App Engine
This is Rietveld 408576698