AbstractMediaListHeaderPresenter

public abstract class AbstractMediaListHeaderPresenter extends RowPresenter


Abstract presenter class for rendering the header for a list of media items in a playlist. The presenter creates a ViewHolder for the TextView holding the header text.

Subclasses of this class must override onBindMediaListHeaderViewHolder in order to bind their header text to the media list header view.

AbstractMediaItemPresenter can be used in conjunction with this presenter in order to display a playlist with a header view.

Summary

Public constructors

Constructor used for creating an abstract media-list header presenter.

AbstractMediaListHeaderPresenter(Context context, int mThemeResId)

Constructor used for creating an abstract media-list header presenter of a given theme.

Public methods

boolean

Returns true if this RowPresenter is using the default dimming effect.

void
setBackgroundColor(int color)

Sets the background color for the row views within the playlist.

Protected methods

RowPresenter.ViewHolder

Called to create a ViewHolder object for a Row.

abstract void

Binds the playlist header data model provided by the user to the ViewHolder provided by the AbstractMediaListHeaderPresenter.

void

Binds the given row object to the given ViewHolder.

Inherited Constants

From androidx.leanback.widget.RowPresenter
static final int

Don't synchronize row view activated status with selected status or expanded status, application will do its own through setActivated.

static final int

Synchronizes row view's activated status to expand status of the row view holder.

static final int

Sets the row view's activated status to true when both expand and selected are true.

static final int

Synchronizes row view's activated status to selected status of the row view holder.

Inherited methods

From androidx.leanback.widget.FacetProvider
abstract @Nullable Object
getFacet(@NonNull Class<Object> facetClass)

Queries optional implemented facet.

From androidx.leanback.widget.Presenter
static void

Utility method for removing all running animations on a view.

final Object
getFacet(Class<Object> facetClass)

Queries optional implemented facet.

abstract void
onBindViewHolder(
    @NonNull Presenter.ViewHolder viewHolder,
    @Nullable Object item
)

Binds a View to an item.

void
onBindViewHolder(
    @NonNull Presenter.ViewHolder viewHolder,
    @NonNull Object item,
    @NonNull List<Object> payloads
)

Binds a View to an item with a list of payloads.

abstract @NonNull Presenter.ViewHolder

Creates a new View.

abstract void

Unbinds a View from an item.

void

Called when a view created by this presenter has been attached to a window.

void

Called when a view created by this presenter has been detached from its window.

final void
setFacet(Class<Object> facetClass, Object facetImpl)

Sets dynamic implemented facet in addition to basic Presenter functions.

void

Called to set a click listener for the given view holder.

From androidx.leanback.widget.RowPresenter
void
dispatchItemSelectedListener(
    RowPresenter.ViewHolder vh,
    boolean selected
)

This method is only called from onRowViewSelected onRowViewSelected.

void
freeze(@NonNull RowPresenter.ViewHolder holder, boolean freeze)

Freezes/unfreezes the row, typically used when a transition starts/ends.

final RowHeaderPresenter

Returns the Presenter used for rendering the header, or null if none has been set.

final RowPresenter.ViewHolder

Returns the RowPresenter.ViewHolder from the given RowPresenter ViewHolder.

final boolean

Returns true if the row selection effect is enabled.

final float

Returns the current select level.

final int

Returns the policy of updating row view activated status.

void

Called after a RowPresenter.ViewHolder is created for a Row.

boolean

Returns true if the Row view should clip its children.

final void
onBindViewHolder(
    @NonNull Presenter.ViewHolder viewHolder,
    @Nullable Object item
)

Binds a View to an item.

final Presenter.ViewHolder

Creates a new View.

void

Invoked when the row view is attached to the window.

void

Invoked when the row view is detached from the window.

void

Called when the row view's expanded state changes.

void

Called when the given row view changes selection state.

void

Callback when the select level changes.

void

Unbinds the given ViewHolder.

final void

Unbinds a View from an item.

final void

Called when a view created by this presenter has been attached to a window.

final void

Called when a view created by this presenter has been detached from its window.

void
setEntranceTransitionState(
    @NonNull RowPresenter.ViewHolder holder,
    boolean afterEntrance
)

Changes the visibility of views.

final void

Sets the Presenter used for rendering the header.

final void
setRowViewExpanded(Presenter.ViewHolder holder, boolean expanded)

Sets the expanded state of a Row view.

final void
setRowViewSelected(Presenter.ViewHolder holder, boolean selected)

Sets the selected state of a Row view.

final void
setSelectEffectEnabled(boolean applyDimOnSelect)

Enables or disables the row selection effect.

final void

Sets the current select level to a value between 0 (unselected) and 1 (selected).

final void
setSyncActivatePolicy(int syncActivatePolicy)

Sets the policy of updating row view activated status.

Public constructors

AbstractMediaListHeaderPresenter

Added in 1.1.0
public AbstractMediaListHeaderPresenter()

Constructor used for creating an abstract media-list header presenter. The styling for this presenter is extracted from Context of parent in createRowViewHolder.

AbstractMediaListHeaderPresenter

Added in 1.1.0
public AbstractMediaListHeaderPresenter(Context context, int mThemeResId)

Constructor used for creating an abstract media-list header presenter of a given theme.

Parameters
Context context

The context the user of this presenter is running in.

int mThemeResId

The resource id of the desired theme used for styling of this presenter.

Public methods

isUsingDefaultSelectEffect

public boolean isUsingDefaultSelectEffect()

Returns true if this RowPresenter is using the default dimming effect. A subclass may (most likely) return false and override onSelectLevelChanged.

setBackgroundColor

Added in 1.1.0
public void setBackgroundColor(int color)

Sets the background color for the row views within the playlist. If this is not set, a default color, defaultBrandColor, from theme is used. This defaultBrandColor defaults to android:attr/colorPrimary on v21, if it's specified.

Parameters
int color

The ARGB color used to set as the header text background color.

Protected methods

createRowViewHolder

Added in 1.2.0-alpha04
protected RowPresenter.ViewHolder createRowViewHolder(ViewGroup parent)

Called to create a ViewHolder object for a Row. Subclasses will override this method to return a different concrete ViewHolder object.

Parameters
ViewGroup parent

The parent View for the Row's view holder.

Returns
RowPresenter.ViewHolder

A ViewHolder for the Row's View.

onBindMediaListHeaderViewHolder

Added in 1.1.0
protected abstract void onBindMediaListHeaderViewHolder(
    AbstractMediaListHeaderPresenter.ViewHolder vh,
    Object item
)

Binds the playlist header data model provided by the user to the ViewHolder provided by the AbstractMediaListHeaderPresenter. The subclasses of this presenter can access and bind the text view corresponding to the header by calling getHeaderView, on the ViewHolder provided as the argument vh by this presenter.

Parameters
AbstractMediaListHeaderPresenter.ViewHolder vh

The ViewHolder for this AbstractMediaListHeaderPresenter.

Object item

The header data object being presented.

onBindRowViewHolder

protected void onBindRowViewHolder(
    @NonNull RowPresenter.ViewHolder vh,
    @NonNull Object item
)

Binds the given row object to the given ViewHolder. Derived classes of RowPresenter overriding onBindRowViewHolder must call through the super class's implementation of this method.