Chromium Code Reviews| 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; |
| + } |
| } |
| } |