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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageItem.java

Issue 2396523002: Unify NewTabPageItem and ItemGroup into a single tree-structured interface. (Closed)
Patch Set: review Created 4 years, 2 months 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 package org.chromium.chrome.browser.ntp.cards;
6
7 import android.support.annotation.IntDef;
8 import android.support.v7.widget.RecyclerView.Adapter;
9
10 import java.lang.annotation.Retention;
11 import java.lang.annotation.RetentionPolicy;
12
13 /** Base type for anything to add to the new tab page */
14 public interface NewTabPageItem {
15 /**
16 * View type values for the items that will be held by the NTP's RecyclerVie w.
17 * @see Adapter#getItemViewType(int)
18 * @see NewTabPageItem#getType()
19 */
20 @IntDef({VIEW_TYPE_ABOVE_THE_FOLD, VIEW_TYPE_HEADER, VIEW_TYPE_SNIPPET, VIEW _TYPE_SPACING,
21 VIEW_TYPE_STATUS, VIEW_TYPE_PROGRESS, VIEW_TYPE_ACTION, VIEW_TYPE_FO OTER,
22 VIEW_TYPE_PROMO, VIEW_TYPE_ALL_DISMISSED})
23 @Retention(RetentionPolicy.SOURCE)
24 public @interface ViewType {}
25
26 /**
27 * View type for the above the fold item
28 * @see Adapter#getItemViewType(int)
29 */
30 public static final int VIEW_TYPE_ABOVE_THE_FOLD = 1;
31
32 /**
33 * View type for card group headers
34 * @see Adapter#getItemViewType(int)
35 */
36 public static final int VIEW_TYPE_HEADER = 2;
37
38 /**
39 * View type for snippet cards
40 * @see Adapter#getItemViewType(int)
41 */
42 public static final int VIEW_TYPE_SNIPPET = 3;
43
44 /**
45 * View type for a {@link SpacingItem} used to provide spacing at the end o f the list.
46 * @see Adapter#getItemViewType(int)
47 */
48 public static final int VIEW_TYPE_SPACING = 4;
49
50 /**
51 * View type for a {@link StatusItem}, the card displaying status informatio n
52 * @see Adapter#getItemViewType(int)
53 */
54 public static final int VIEW_TYPE_STATUS = 5;
55
56 /**
57 * View type for a {@link ProgressItem}, the progress indicator.
58 * @see Adapter#getItemViewType(int)
59 */
60 public static final int VIEW_TYPE_PROGRESS = 6;
61
62 /**
63 * View type for a {@link ActionItem}, an action button.
64 * @see Adapter#getItemViewType(int)
65 */
66 public static final int VIEW_TYPE_ACTION = 7;
67
68 /**
69 * View type for a {@link Footer}.
70 * @see Adapter#getItemViewType(int)
71 */
72 public static final int VIEW_TYPE_FOOTER = 8;
73
74 /**
75 * View type for a {@link SignInPromo}.
76 * @see Adapter#getItemViewType(int)
77 */
78 public static final int VIEW_TYPE_PROMO = 9;
79
80 /**
81 * View type for a {@link AllDismissedItem}.
82 * @see Adapter#getItemViewType(int)
83 */
84 public static final int VIEW_TYPE_ALL_DISMISSED = 10;
85
86 // NOTE: when adding new entries here, also update the IntDef at the top of this file, and
87 // CardViewHolder#isCard(int type).
88
89 /**
90 * Returns the type ({@link ViewType}) of this list item. This is so we can
91 * distinguish between different elements that are held in a single Recycle rView holder.
92 *
93 * @return the type of this list item.
94 */
95 @ViewType
96 public int getType();
97
98 /**
99 * Update the given {@link NewTabPageViewHolder} with data from this item.
100 * @param holder The {@link NewTabPageViewHolder} to update.
101 */
102 void onBindViewHolder(NewTabPageViewHolder holder);
103 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698