Index: chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ActionListItem.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ActionListItem.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ActionListItem.java |
index 9d93dab4d19143fbeb01667f0140eea3f0bddec2..4469870cbcaa6d43211640c2982038e5f907c939 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ActionListItem.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ActionListItem.java |
@@ -9,27 +9,56 @@ import android.view.View; |
import org.chromium.chrome.R; |
import org.chromium.chrome.browser.ntp.NewTabPageView.NewTabPageManager; |
import org.chromium.chrome.browser.ntp.UiConfig; |
+import org.chromium.chrome.browser.ntp.snippets.KnownCategories; |
+import org.chromium.chrome.browser.ntp.snippets.SnippetsBridge; |
+import org.chromium.chrome.browser.ntp.snippets.SuggestionsSource; |
/** |
* Item that allows the user to perform an action on the NTP. |
*/ |
class ActionListItem implements NewTabPageListItem { |
+ private final int mCategory; |
+ |
+ public ActionListItem(int category) { |
+ mCategory = category; |
+ } |
+ |
@Override |
public int getType() { |
return NewTabPageListItem.VIEW_TYPE_ACTION; |
} |
+ public int getCategory() { |
+ return mCategory; |
+ } |
+ |
public static class ViewHolder extends CardViewHolder { |
+ private ActionListItem mAction; |
Michael van Ouwerkerk
2016/08/10 10:09:29
nit: I think we might want to distinguish items, v
Philipp Keck
2016/08/10 13:14:46
Done. mActionListItem for consistency with the ful
|
+ |
public ViewHolder(NewTabPageRecyclerView recyclerView, final NewTabPageManager manager, |
- UiConfig uiConfig) { |
+ final SuggestionsSource suggestionsSource, UiConfig uiConfig) { |
super(R.layout.new_tab_page_action_card, recyclerView, uiConfig); |
itemView.setOnClickListener(new View.OnClickListener() { |
@Override |
public void onClick(View v) { |
- // TODO(dgn): Implement other behaviours. |
- manager.navigateToBookmarks(); |
+ int category = mAction.getCategory(); |
+ if (SnippetsBridge.isKnownCategory(category, KnownCategories.BOOKMARKS)) { |
+ manager.navigateToBookmarks(); |
+ } else if (SnippetsBridge.isKnownCategory( |
+ category, KnownCategories.OFFLINE_PAGES)) { |
+ // TODO(pke): Implement. |
+ // org.chromium.chrome.browser.download.DownloadUtils.showDownloadManager |
+ } else { |
+ suggestionsSource.fetchMoreSuggestions(category); |
+ } |
} |
}); |
} |
+ |
+ @Override |
+ public void onBindViewHolder(NewTabPageListItem item) { |
+ super.onBindViewHolder(item); |
+ mAction = (ActionListItem) item; |
+ } |
} |
} |