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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java

Issue 2665983005: Ntp: use callbacks for partial binding, they can carry more detail. (Closed)
Patch Set: Address review comments from bauerb. Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java
index 6ee4d57971bcb55bd081c5858e806e21f9baa09d..0915049e590bcd3c01ea2145cb250a186b3c471c 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java
@@ -33,6 +33,7 @@ import org.chromium.chrome.browser.ntp.cards.CardViewHolder;
import org.chromium.chrome.browser.ntp.cards.CardsVariationParameters;
import org.chromium.chrome.browser.ntp.cards.ImpressionTracker;
import org.chromium.chrome.browser.ntp.cards.NewTabPageRecyclerView;
+import org.chromium.chrome.browser.ntp.cards.NewTabPageViewHolder;
import org.chromium.chrome.browser.ntp.cards.SuggestionsCategoryInfo;
import org.chromium.chrome.browser.suggestions.SuggestionsUiDelegate;
import org.chromium.chrome.browser.widget.displaystyle.DisplayStyleObserver;
@@ -48,6 +49,13 @@ import java.util.concurrent.TimeUnit;
* A class that represents the view for a single card snippet.
*/
public class SnippetArticleViewHolder extends CardViewHolder implements ImpressionTracker.Listener {
+ /**
+ * A single instance of {@link RefreshOfflineBadgeVisibilityCallback} that can be reused as it
+ * has no state.
+ */
+ public static final RefreshOfflineBadgeVisibilityCallback
+ REFRESH_OFFLINE_BADGE_VISIBILITY_CALLBACK = new RefreshOfflineBadgeVisibilityCallback();
+
private static final String PUBLISHER_FORMAT_STRING = "%s - %s";
private static final int FADE_IN_ANIMATION_TIME_MS = 300;
private static final int[] FAVICON_SERVICE_SUPPORTED_SIZES = {16, 24, 32, 48, 64};
@@ -253,7 +261,7 @@ public class SnippetArticleViewHolder extends CardViewHolder implements Impressi
}
/** Updates the visibility of the card's offline badge by checking the bound article's info. */
- public void refreshOfflineBadgeVisibility() {
+ private void refreshOfflineBadgeVisibility() {
if (!SnippetsConfig.isOfflineBadgeEnabled()) return;
boolean visible = mArticle.getOfflinePageOfflineId() != null || mArticle.mIsAssetDownload;
if (visible == (mOfflineBadge.getVisibility() == View.VISIBLE)) return;
@@ -383,4 +391,15 @@ public class SnippetArticleViewHolder extends CardViewHolder implements Impressi
mPublisherTextView, drawable, null, null, null);
mPublisherTextView.setVisibility(View.VISIBLE);
}
+
+ /**
+ * Callback to refresh the offline badge visibility.
+ */
+ public static class RefreshOfflineBadgeVisibilityCallback extends PartialBindCallback {
+ @Override
+ public void onResult(NewTabPageViewHolder holder) {
+ assert holder instanceof SnippetArticleViewHolder;
+ ((SnippetArticleViewHolder) holder).refreshOfflineBadgeVisibility();
+ }
+ }
}

Powered by Google App Engine
This is Rietveld 408576698