| Index: chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageViewHolder.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageViewHolder.java
|
| index 75248d2985e267326054f9450029fadc051da9b3..add59f29ff51024cf3c9429e75f47fe0e9f26715 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageViewHolder.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageViewHolder.java
|
| @@ -7,12 +7,21 @@ package org.chromium.chrome.browser.ntp.cards;
|
| import android.support.v7.widget.RecyclerView;
|
| import android.view.View;
|
|
|
| +import org.chromium.base.Callback;
|
| +
|
| /**
|
| * Holds metadata about an item we want to display on the NTP. An item can be anything that will be
|
| * displayed on the NTP {@link RecyclerView}.
|
| */
|
| public class NewTabPageViewHolder extends RecyclerView.ViewHolder {
|
| /**
|
| + * A single instance of {@link UpdateLayoutParamsCallback} that can be reused as it has no
|
| + * state.
|
| + */
|
| + public static final UpdateLayoutParamsCallback UPDATE_LAYOUT_PARAMS_CALLBACK =
|
| + new UpdateLayoutParamsCallback();
|
| +
|
| + /**
|
| * Constructs a {@link NewTabPageViewHolder} used to display an part of the NTP (e.g., header,
|
| * article snippet, above-the-fold view, etc.)
|
| *
|
| @@ -39,4 +48,24 @@ public class NewTabPageViewHolder extends RecyclerView.ViewHolder {
|
| protected RecyclerView.LayoutParams getParams() {
|
| return (RecyclerView.LayoutParams) itemView.getLayoutParams();
|
| }
|
| +
|
| + /**
|
| + * A callback to perform a partial bind on a {@link NewTabPageViewHolder}.
|
| + * @see org.chromium.chrome.browser.ntp.cards.InnerNode#notifyItemChanged(int,
|
| + * PartialBindCallback)
|
| + *
|
| + * This empty class is used to strengthen type assertions, as those would be less useful with a
|
| + * generic class due to type erasure.
|
| + */
|
| + public abstract static class PartialBindCallback extends Callback<NewTabPageViewHolder> {}
|
| +
|
| + /**
|
| + * Callback to update the layout params for the view holder.
|
| + */
|
| + public static class UpdateLayoutParamsCallback extends PartialBindCallback {
|
| + @Override
|
| + public void onResult(NewTabPageViewHolder holder) {
|
| + holder.updateLayoutParams();
|
| + }
|
| + }
|
| }
|
|
|