Most visited

Recently visited

AbstractMediaItemPresenter

public abstract class AbstractMediaItemPresenter
extends RowPresenter

java.lang.Object
   ↳ android.support.v17.leanback.widget.Presenter
     ↳ android.support.v17.leanback.widget.RowPresenter
       ↳ android.support.v17.leanback.widget.AbstractMediaItemPresenter


Abstract Presenter class for rendering media items in a playlist format. Media item data provided for this presenter can implement the interface MultiActionsProvider, if the media rows wish to contain custom actions. Media items in the playlist are arranged as a vertical list with each row holding each media item's details provided by the user of this class and a set of optional custom actions. Each media item's details and actions are separately focusable. The appearance of each one of the media row components can be controlled through setting theme's attributes. The presenter can optionally provide line separators between media rows by setting setHasMediaRowSeparator(boolean) to true.

Subclasses must override onBindMediaDetails(AbstractMediaItemPresenter.ViewHolder, Object) to implement their media item model data binding to each row view.

The OnItemViewClickedListener and OnItemViewSelectedListener can be used in the same fashion to handle selection or click events on either of media details or each individual action views.

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

Summary

Nested classes

class AbstractMediaItemPresenter.ViewHolder

The ViewHolder for the AbstractMediaItemPresenter

Inherited constants

From class android.support.v17.leanback.widget.RowPresenter

Public constructors

AbstractMediaItemPresenter()

Constructor used for creating an abstract media item presenter.

AbstractMediaItemPresenter(int themeId)

Constructor used for creating an abstract media item presenter.

Public methods

Presenter getActionPresenter()

Return the presenter used to render a media item row actions.

int getThemeId()

Return The resource id of the theme that defines attributes controlling the appearance of different widgets in a media item row.

boolean hasMediaRowSeparator()
boolean isUsingDefaultSelectEffect()

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

void setActionPresenter(Presenter actionPresenter)

Sets the action presenter rendering each optional custom action within each media item row.

void setBackgroundColor(int color)

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

void setHasMediaRowSeparator(boolean hasSeparator)

Specifies whether a line separator should be used between media item rows.

void setThemeId(int themeId)

Sets the theme used to style a media item row components.

Protected methods

RowPresenter.ViewHolder createRowViewHolder(ViewGroup parent)

Called to create a ViewHolder object for a Row.

boolean isClippingChildren()

Returns true if the Row view should clip it's children.

abstract void onBindMediaDetails(AbstractMediaItemPresenter.ViewHolder vh, Object item)

Binds the media item details to their views provided by the AbstractMediaItemPresenter.

void onBindRowActions(AbstractMediaItemPresenter.ViewHolder vh)

Binds the given media item object action to the given ViewHolder's action views.

void onBindRowViewHolder(RowPresenter.ViewHolder vh, Object item)

Binds the given row object to the given ViewHolder.

void onUnbindMediaDetails(AbstractMediaItemPresenter.ViewHolder vh)

Unbinds the media item details from their views provided by the AbstractMediaItemPresenter.

Inherited methods

From class android.support.v17.leanback.widget.RowPresenter
From class android.support.v17.leanback.widget.Presenter
From class java.lang.Object
From interface android.support.v17.leanback.widget.FacetProvider

Public constructors

AbstractMediaItemPresenter

AbstractMediaItemPresenter ()

Constructor used for creating an abstract media item presenter.

AbstractMediaItemPresenter

AbstractMediaItemPresenter (int themeId)

Constructor used for creating an abstract media item presenter.

Parameters
themeId int: The resource id of the theme that defines attributes controlling the appearance of different widgets in a media item row.

Public methods

getActionPresenter

Presenter getActionPresenter ()

Return the presenter used to render a media item row actions.

Returns
Presenter the presenter used to render a media item row actions.

getThemeId

int getThemeId ()

Return The resource id of the theme that defines attributes controlling the appearance of different widgets in a media item row.

Returns
int The resource id of the theme that defines attributes controlling the appearance of different widgets in a media item row.

hasMediaRowSeparator

boolean hasMediaRowSeparator ()

Returns
boolean

isUsingDefaultSelectEffect

boolean isUsingDefaultSelectEffect ()

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

Returns
boolean

setActionPresenter

void setActionPresenter (Presenter actionPresenter)

Sets the action presenter rendering each optional custom action within each media item row.

Parameters
actionPresenter Presenter: the presenter to be used for rendering a media item row actions.

setBackgroundColor

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
color int: The ARGB color used to set as the media list background color.

setHasMediaRowSeparator

void setHasMediaRowSeparator (boolean hasSeparator)

Specifies whether a line separator should be used between media item rows.

Parameters
hasSeparator boolean: true if a separator should be displayed, false otherwise.

setThemeId

void setThemeId (int themeId)

Sets the theme used to style a media item row components.

Parameters
themeId int: The resource id of the theme that defines attributes controlling the appearance of different widgets in a media item row.

Protected methods

createRowViewHolder

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
parent ViewGroup: The parent View for the Row's view holder.
Returns
RowPresenter.ViewHolder A ViewHolder for the Row's View.

isClippingChildren

boolean isClippingChildren ()

Returns true if the Row view should clip it's children. The clipChildren flag is set on view in initializeRowViewHolder(ViewHolder). Note that Slide transition or explode transition need turn off clipChildren. Default value is false.

Returns
boolean

onBindMediaDetails

void onBindMediaDetails (AbstractMediaItemPresenter.ViewHolder vh, 
                Object item)

Binds the media item details to their views provided by the AbstractMediaItemPresenter. This method is to be overridden by the users of this presenter. The subclasses of this presenter can access and bind individual views for either of the media item number, name, or duration (depending on whichever views are visible according to the providing theme attributes), by calling getMediaItemNumberView(), getMediaItemNameView(), and getMediaItemDurationView(), on the AbstractMediaItemPresenter.ViewHolder provided as the argument vh of this presenter.

Parameters
vh AbstractMediaItemPresenter.ViewHolder: The ViewHolder for this AbstractMediaItemPresenter.
item Object: The media item row object being presented.

onBindRowActions

void onBindRowActions (AbstractMediaItemPresenter.ViewHolder vh)

Binds the given media item object action to the given ViewHolder's action views.

Parameters
vh AbstractMediaItemPresenter.ViewHolder: ViewHolder for the media item.

onBindRowViewHolder

void onBindRowViewHolder (RowPresenter.ViewHolder vh, 
                Object item)

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

Parameters
vh RowPresenter.ViewHolder
item Object

onUnbindMediaDetails

void onUnbindMediaDetails (AbstractMediaItemPresenter.ViewHolder vh)

Unbinds the media item details from their views provided by the AbstractMediaItemPresenter. This method can be overridden by the subclasses of this presenter if required.

Parameters
vh AbstractMediaItemPresenter.ViewHolder: ViewHolder to unbind from.

Hooray!