belongs to Maven artifact androidx.leanback:leanback:1.0.0-alpha1

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 {@link PlaybackGlueHost is started.

void onHostStop()

This method is called when {@link 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

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

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

int ACTION_FAST_FORWARD

The adapter key for the fast forward control.

Constant Value: 128 (0x00000080)

ACTION_PLAY_PAUSE

int ACTION_PLAY_PAUSE

The adapter key for the play/pause control.

Constant Value: 64 (0x00000040)

ACTION_REPEAT

int ACTION_REPEAT

The adapter key for the repeat control.

Constant Value: 512 (0x00000200)

ACTION_REWIND

int ACTION_REWIND

The adapter key for the rewind control.

Constant Value: 32 (0x00000020)

ACTION_SHUFFLE

int ACTION_SHUFFLE

The adapter key for the shuffle control.

Constant Value: 1024 (0x00000400)

ACTION_SKIP_TO_NEXT

int ACTION_SKIP_TO_NEXT

The adapter key for the skip to next control.

Constant Value: 256 (0x00000100)

ACTION_SKIP_TO_PREVIOUS

int ACTION_SKIP_TO_PREVIOUS

The adapter key for the skip to previous control.

Constant Value: 16 (0x00000010)

Public constructors

PlaybackBaseControlGlue

PlaybackBaseControlGlue (Context context, 
                T impl)

Constructor for the glue.

Parameters
impl T: Implementation to underlying media player.

Public methods

getArt

Drawable getArt ()

Returns
Drawable The drawable representing cover image.

getBufferedPosition

long getBufferedPosition ()

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

getControlsRow

PlaybackControlsRow getControlsRow ()

Returns the playback controls row managed by the glue layer.

Returns
PlaybackControlsRow

getCurrentPosition

long getCurrentPosition ()

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

getDuration

long getDuration ()

Returns
long The duration of the media item in milliseconds.

getPlaybackRowPresenter

PlaybackRowPresenter getPlaybackRowPresenter ()

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

Returns
PlaybackRowPresenter

getPlayerAdapter

T getPlayerAdapter ()

Returns
T

getSubtitle

CharSequence getSubtitle ()

Return The media subtitle.

Returns
CharSequence

getSupportedActions

long getSupportedActions ()

Returns a bitmask of actions supported by the media player.

Returns
long

getTitle

CharSequence getTitle ()

Returns the title of the media item.

Returns
CharSequence

isControlsOverlayAutoHideEnabled

boolean isControlsOverlayAutoHideEnabled ()

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

Returns
boolean

isPlaying

boolean isPlaying ()

Returns true if media is currently playing.

Returns
boolean

isPrepared

boolean isPrepared ()

Returns true when the media player is prepared to start media playback. When returning false, app may listen to PlaybackGlue.PlayerCallback.onPreparedStateChanged(PlaybackGlue) event.

Returns
boolean True if prepared, false otherwise.

next

void next ()

Goes to the next media item. This method is optional.

onActionClicked

void onActionClicked (Action action)

Handles action clicks. A subclass may override this add support for additional actions.

Parameters
action Action

onKey

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

Handles key events and returns true if handled. A subclass may override this to provide additional support.

Parameters
v View

keyCode int

event KeyEvent

Returns
boolean

pause

void pause ()

Pauses the media player.

play

void play ()

Starts the media player. Does nothing if isPrepared() is false. To wait isPrepared() to be true before playing, use playWhenPrepared().

previous

void previous ()

Goes to the previous media item. This method is optional.

seekTo

void seekTo (long position)

Seek media to a new position.

Parameters
position long: New position.

setArt

void setArt (Drawable cover)

Sets the drawable representing cover image. The drawable will be rendered by default description presenter in PlaybackTransportRowPresenter.setDescriptionPresenter(Presenter).

Parameters
cover Drawable: The drawable representing cover image.

setControlsOverlayAutoHideEnabled

void setControlsOverlayAutoHideEnabled (boolean enable)

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

Parameters
enable boolean: True to enable auto hide after a timeout when media is playing.

setControlsRow

void setControlsRow (PlaybackControlsRow controlsRow)

Sets the controls row to be managed by the glue layer. If PlaybackControlsRow.getPrimaryActionsAdapter() is not provided, a default ArrayObjectAdapter will be created and initialized in onCreatePrimaryActions(ArrayObjectAdapter). If PlaybackControlsRow.getSecondaryActionsAdapter() is not provided, a default ArrayObjectAdapter will be created and initialized in onCreateSecondaryActions(ArrayObjectAdapter). The primary actions and playback state related aspects of the row are updated by the glue.

Parameters
controlsRow PlaybackControlsRow

setPlaybackRowPresenter

void setPlaybackRowPresenter (PlaybackRowPresenter presenter)

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

Parameters
presenter PlaybackRowPresenter

setSubtitle

void setSubtitle (CharSequence subtitle)

Sets the media subtitle. The subtitle will be rendered by default description presenter PlaybackTransportRowPresenter.setDescriptionPresenter(Presenter).

Parameters
subtitle CharSequence: Subtitle to set.

setTitle

void setTitle (CharSequence title)

Sets the media title. The title will be rendered by default description presenter PlaybackTransportRowPresenter.setDescriptionPresenter(Presenter).

Parameters
title CharSequence

Protected methods

notifyItemChanged

void notifyItemChanged (ArrayObjectAdapter adapter, 
                Object object)

Parameters
adapter ArrayObjectAdapter

object Object

onAttachedToHost

void onAttachedToHost (PlaybackGlueHost host)

This method is called attached to associated PlaybackGlueHost. Subclass may override and call super.onAttachedToHost().

Parameters
host PlaybackGlueHost

onCreatePrimaryActions

void onCreatePrimaryActions (ArrayObjectAdapter primaryActionsAdapter)

May be overridden to add primary actions to the adapter. Default implementation add PlaybackControlsRow.PlayPauseAction.

Parameters
primaryActionsAdapter ArrayObjectAdapter: The adapter to add primary Actions.

onCreateRowPresenter

PlaybackRowPresenter onCreateRowPresenter ()

Returns
PlaybackRowPresenter

onCreateSecondaryActions

void onCreateSecondaryActions (ArrayObjectAdapter secondaryActionsAdapter)

May be overridden to add secondary actions to the adapter.

Parameters
secondaryActionsAdapter ArrayObjectAdapter: The adapter you need to add the Actions to.

onDetachedFromHost

void onDetachedFromHost ()

This method is called when current associated PlaybackGlueHost is attached to a different PlaybackGlue or PlaybackGlueHost is destroyed . Subclass may override and call super.onDetachedFromHost() at last. A typical PlaybackGlue will release resources (e.g. MediaPlayer or connection to playback service) in this method.

onHostStart

void onHostStart ()

This method is called when {@link PlaybackGlueHost is started. Subclass may override.

onHostStop

void onHostStop ()

This method is called when {@link PlaybackGlueHost is stopped. Subclass may override.

onMetadataChanged

void onMetadataChanged ()

Event when metadata changed

onPlayCompleted

void onPlayCompleted ()

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

onPlayStateChanged

void onPlayStateChanged ()

Event when play state changed.

onPreparedStateChanged

void onPreparedStateChanged ()

Event when ready state for play changes.

onUpdateBufferedProgress

void onUpdateBufferedProgress ()

onUpdateDuration

void onUpdateDuration ()

onUpdateProgress

void onUpdateProgress ()