| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 package org.chromium.chrome.browser.ntp.snippets; | 4 package org.chromium.chrome.browser.ntp.snippets; |
| 5 | 5 |
| 6 import android.graphics.Bitmap; | 6 import android.graphics.Bitmap; |
| 7 | 7 |
| 8 import org.chromium.chrome.browser.ntp.cards.ItemViewType; | |
| 9 import org.chromium.chrome.browser.ntp.cards.Leaf; | |
| 10 import org.chromium.chrome.browser.ntp.cards.NewTabPageViewHolder; | |
| 11 import org.chromium.chrome.browser.ntp.snippets.ContentSuggestionsCardLayout.Con
tentSuggestionsCardLayoutEnum; | 8 import org.chromium.chrome.browser.ntp.snippets.ContentSuggestionsCardLayout.Con
tentSuggestionsCardLayoutEnum; |
| 12 | 9 |
| 13 /** | 10 /** |
| 14 * Represents the data for an article card on the NTP. | 11 * Represents the data for an article card on the NTP. |
| 15 */ | 12 */ |
| 16 public class SnippetArticle extends Leaf { | 13 public class SnippetArticle { |
| 17 /** The category of this article. */ | 14 /** The category of this article. */ |
| 18 public final int mCategory; | 15 public final int mCategory; |
| 19 | 16 |
| 20 /** The identifier for this article within the category - not necessarily un
ique globally. */ | 17 /** The identifier for this article within the category - not necessarily un
ique globally. */ |
| 21 public final String mIdWithinCategory; | 18 public final String mIdWithinCategory; |
| 22 | 19 |
| 23 /** The title of this article. */ | 20 /** The title of this article. */ |
| 24 public final String mTitle; | 21 public final String mTitle; |
| 25 | 22 |
| 26 /** The canonical publisher name (e.g., New York Times). */ | 23 /** The canonical publisher name (e.g., New York Times). */ |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 81 if (!(other instanceof SnippetArticle)) return false; | 78 if (!(other instanceof SnippetArticle)) return false; |
| 82 SnippetArticle rhs = (SnippetArticle) other; | 79 SnippetArticle rhs = (SnippetArticle) other; |
| 83 return mCategory == rhs.mCategory && mIdWithinCategory.equals(rhs.mIdWit
hinCategory); | 80 return mCategory == rhs.mCategory && mIdWithinCategory.equals(rhs.mIdWit
hinCategory); |
| 84 } | 81 } |
| 85 | 82 |
| 86 @Override | 83 @Override |
| 87 public int hashCode() { | 84 public int hashCode() { |
| 88 return mCategory ^ mIdWithinCategory.hashCode(); | 85 return mCategory ^ mIdWithinCategory.hashCode(); |
| 89 } | 86 } |
| 90 | 87 |
| 91 @Override | |
| 92 @ItemViewType | |
| 93 public int getItemViewType() { | |
| 94 return ItemViewType.SNIPPET; | |
| 95 } | |
| 96 | |
| 97 @Override | |
| 98 protected void onBindViewHolder(NewTabPageViewHolder holder) { | |
| 99 assert holder instanceof SnippetArticleViewHolder; | |
| 100 ((SnippetArticleViewHolder) holder).onBindViewHolder(this); | |
| 101 } | |
| 102 | |
| 103 @Override | |
| 104 public SnippetArticle getSuggestionAt(int position) { | |
| 105 if (position != 0) throw new IndexOutOfBoundsException(); | |
| 106 | |
| 107 return this; | |
| 108 } | |
| 109 | |
| 110 /** | 88 /** |
| 111 * Returns this article's thumbnail as a {@link Bitmap}. Can return {@code n
ull} as it is | 89 * Returns this article's thumbnail as a {@link Bitmap}. Can return {@code n
ull} as it is |
| 112 * initially unset. | 90 * initially unset. |
| 113 */ | 91 */ |
| 114 public Bitmap getThumbnailBitmap() { | 92 public Bitmap getThumbnailBitmap() { |
| 115 return mThumbnailBitmap; | 93 return mThumbnailBitmap; |
| 116 } | 94 } |
| 117 | 95 |
| 118 /** Sets the thumbnail bitmap for this article. */ | 96 /** Sets the thumbnail bitmap for this article. */ |
| 119 public void setThumbnailBitmap(Bitmap bitmap) { | 97 public void setThumbnailBitmap(Bitmap bitmap) { |
| 120 mThumbnailBitmap = bitmap; | 98 mThumbnailBitmap = bitmap; |
| 121 } | 99 } |
| 122 | 100 |
| 123 /** Returns whether to track an impression for this article. */ | 101 /** Returns whether to track an impression for this article. */ |
| 124 public boolean trackImpression() { | 102 public boolean trackImpression() { |
| 125 // Track UMA only upon the first impression per life-time of this object
. | 103 // Track UMA only upon the first impression per life-time of this object
. |
| 126 if (mImpressionTracked) return false; | 104 if (mImpressionTracked) return false; |
| 127 mImpressionTracked = true; | 105 mImpressionTracked = true; |
| 128 return true; | 106 return true; |
| 129 } | 107 } |
| 130 | 108 |
| 131 @Override | 109 @Override |
| 132 public String toString() { | 110 public String toString() { |
| 133 // For debugging purposes. Displays the first 42 characters of the title
. | 111 // For debugging purposes. Displays the first 42 characters of the title
. |
| 134 return String.format("{%s, %1.42s}", getClass().getSimpleName(), mTitle)
; | 112 return String.format("{%s, %1.42s}", getClass().getSimpleName(), mTitle)
; |
| 135 } | 113 } |
| 136 } | 114 } |
| OLD | NEW |