PlaybackBaseControlGlue

public abstract class PlaybackBaseControlGlue
extends PlaybackGlue implements OnActionClickedListener, View.OnKeyListener

java.lang.Object
   ↳ androidx.leanback.media.PlaybackGlue
     ↳ androidx.leanback.media.PlaybackBaseControlGlue<T extends androidx.leanback.media.PlayerAdapter>


A base abstract class for managing a PlaybackControlsRow being displayed in PlaybackGlueHost. It supports standard playback control actions play/pause and skip next/previous. This helper class is a glue layer that manages interaction between the leanback UI components PlaybackControlsRow PlaybackRowPresenter and a functional PlayerAdapter which represents the underlying media player.

The app must pass a PlayerAdapter in constructor for a specific implementation e.g. a MediaPlayerAdapter.

The glue has two action bars: primary action bars and secondary action bars. Apps can provide additional actions by overriding onCreatePrimaryActions(ArrayObjectAdapter) and / or onCreateSecondaryActions(ArrayObjectAdapter) and respond to actions by overriding onActionClicked(Action).

The subclass is responsible for implementing the "repeat mode" in onPlayCompleted().

Summary

Constants

int ACTION_CUSTOM_LEFT_FIRST

The adapter key for the first custom control on the left side of the predefined primary controls.

int ACTION_CUSTOM_RIGHT_FIRST

The adapter key for the first custom control on the right side of the predefined primary controls.

int ACTION_FAST_FORWARD

The adapter key for the fast forward control.

int ACTION_PLAY_PAUSE

The adapter key for the play/pause control.

int ACTION_REPEAT

The adapter key for the repeat control.

int ACTION_REWIND

The adapter key for the rewind control.

int ACTION_SHUFFLE

The adapter key for the shuffle control.

int ACTION_SKIP_TO_NEXT

The adapter key for the skip to next control.

int ACTION_SKIP_TO_PREVIOUS

The adapter key for the skip to previous control.

Public constructors

PlaybackBaseControlGlue(Context context, T impl)

Constructor for the glue.

Public methods

Drawable getArt()
final long getBufferedPosition()
PlaybackControlsRow getControlsRow()

Returns the playback controls row managed by the glue layer.

long getCurrentPosition()
final long getDuration()
PlaybackRowPresenter getPlaybackRowPresenter()

Returns the playback controls row Presenter managed by the glue layer.

final T getPlayerAdapter()
CharSequence getSubtitle()

Return The media subtitle.

long getSupportedActions()

Returns a bitmask of actions supported by the media player.

CharSequence getTitle()

Returns the title of the media item.

boolean isControlsOverlayAutoHideEnabled()

Returns true if the controls auto hides after a timeout when media is playing.

final boolean isPlaying()

Returns true if media is currently playing.

final boolean isPrepared()

Returns true when the media player is prepared to start media playback.

void next()

Goes to the next media item.

abstract void onActionClicked(Action action)

Handles action clicks.

abstract boolean onKey(View v, int keyCode, KeyEvent event)

Handles key events and returns true if handled.

void pause()

Pauses the media player.

void play()

Starts the media player.

void previous()

Goes to the previous media item.

final void seekTo(long position)

Seek media to a new position.

void setArt(Drawable cover)

Sets the drawable representing cover image.

void setControlsOverlayAutoHideEnabled(boolean enable)

Sets the controls to auto hide after a timeout when media is playing.

void setControlsRow(PlaybackControlsRow controlsRow)

Sets the controls row to be managed by the glue layer.

void setPlaybackRowPresenter(PlaybackRowPresenter presenter)

Sets the controls row Presenter to be managed by the glue layer.

void setSubtitle(CharSequence subtitle)

Sets the media subtitle.

void setTitle(CharSequence title)

Sets the media title.

Protected methods

static void notifyItemChanged(ArrayObjectAdapter adapter, Object object)
void onAttachedToHost(PlaybackGlueHost host)

This method is called attached to associated PlaybackGlueHost.

void onCreatePrimaryActions(ArrayObjectAdapter primaryActionsAdapter)

May be overridden to add primary actions to the adapter.

abstract PlaybackRowPresenter onCreateRowPresenter()
void onCreateSecondaryActions(ArrayObjectAdapter secondaryActionsAdapter)

May be overridden to add secondary actions to the adapter.

void onDetachedFromHost()

This method is called when current associated PlaybackGlueHost is attached to a different PlaybackGlue or PlaybackGlueHost is destroyed .

void onHostStart()

This method is called when PlaybackGlueHost is started.

void onHostStop()

This method is called when PlaybackGlueHost is stopped.

void onMetadataChanged()

Event when metadata changed

void onPlayCompleted()

Event when play finishes, subclass may handling repeat mode here.

void onPlayStateChanged()

Event when play state changed.

void onPreparedStateChanged()

Event when ready state for play changes.

void onUpdateBufferedProgress()
void onUpdateDuration()
void onUpdateProgress()

Inherited methods

Constants

ACTION_CUSTOM_LEFT_FIRST

public static final int ACTION_CUSTOM_LEFT_FIRST

The adapter key for the first custom control on the left side of the predefined primary controls.

Constant Value: 1 (0x00000001)

ACTION_CUSTOM_RIGHT_FIRST

public static final int ACTION_CUSTOM_RIGHT_FIRST

The adapter key for the first custom control on the right side of the predefined primary controls.

Constant Value: 4096 (0x00001000)

ACTION_FAST_FORWARD

public static final int ACTION_FAST_FORWARD

The adapter key for the fast forward control.

Constant Value: 128 (0x00000080)

ACTION_PLAY_PAUSE

public static final int ACTION_PLAY_PAUSE

The adapter key for the play/pause control.

Constant Value: 64 (0x00000040)

ACTION_REPEAT

public static final int ACTION_REPEAT

The adapter key for the repeat control.

Constant Value: 512 (0x00000200)

ACTION_REWIND

public static final int ACTION_REWIND

The adapter key for the rewind control.

Constant Value: 32 (0x00000020)

ACTION_SHUFFLE

public static final int ACTION_SHUFFLE

The adapter key for the shuffle control.

Constant Value: 1024 (0x00000400)

ACTION_SKIP_TO_NEXT

public static final int ACTION_SKIP_TO_NEXT

The adapter key for the skip to next control.

Constant Value: 256 (0x00000100)

ACTION_SKIP_TO_PREVIOUS

public static final int ACTION_SKIP_TO_PREVIOUS

The adapter key for the skip to previous control.

Constant Value: 16 (0x00000010)

Public constructors

PlaybackBaseControlGlue

public PlaybackBaseControlGlue (Context context, 
                T impl)

Constructor for the glue.

Parameters
impl T: Implementation to underlying media player.

Public methods

getArt

public Drawable getArt ()

Returns
Drawable The drawable representing cover image.

getBufferedPosition

public final long getBufferedPosition ()

Returns
long The current buffered position of the media item in milliseconds.

getControlsRow

public PlaybackControlsRow getControlsRow ()

Returns the playback controls row managed by the glue layer.

Returns