PlaybackTransportControlGlue


class PlaybackTransportControlGlue<T : PlayerAdapter?> : PlaybackBaseControlGlue


A helper 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 in that manages interaction between the leanback UI components PlaybackControlsRowPlaybackTransportRowPresenter and a functional PlayerAdapter which represents the underlying media player.

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

The glue has two actions bar: primary actions bar and secondary actions bar. App can provide additional actions by overriding onCreatePrimaryActions and / or onCreateSecondaryActions and respond to actions by override onActionClicked.

It's also subclass's responsibility to implement the "repeat mode" in onPlayCompleted.

Apps calls setSeekProvider to provide seek data. If the PlaybackGlueHost is instance of PlaybackSeekUi, the provider will be passed to PlaybackGlueHost to render thumb bitmaps.

Sample Code:
public class MyVideoFragment extends VideoFragment {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        PlaybackTransportControlGlueplayerGlue =
                new PlaybackTransportControlGlue(getActivity(),
                        new MediaPlayerAdapter(getActivity()));
        playerGlue.setHost(new VideoFragmentGlueHost(this));
        playerGlue.setSubtitle("Leanback artist");
        playerGlue.setTitle("Leanback team at work");
        String uriPath = "android.resource://com.example.android.leanback/raw/video";
        playerGlue.getPlayerAdapter().setDataSource(Uri.parse(uriPath));
        playerGlue.playWhenPrepared();
    }
}
Parameters
<T : PlayerAdapter?>

Type of PlayerAdapter passed in constructor.

Summary

Public constructors

PlaybackTransportControlGlue(context: Context!, impl: T!)

Constructor for the glue.

Public functions

PlaybackSeekDataProvider!

Get seek data provider used during user seeking.

Boolean
Unit

Handles action clicks.

Boolean
onKey(v: View!, keyCode: Int, event: KeyEvent!)

Handles key events and returns true if handled.

Unit

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

Unit
setSeekEnabled(seekEnabled: Boolean)

Enable or disable seek when getSeekProvider is null.

Unit

Set seek data provider used during user seeking.

Protected functions

Unit

This method is called attached to associated PlaybackGlueHost.

Unit

May be overridden to add primary actions to the adapter.

PlaybackRowPresenter
Unit

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

Unit

Event when play state changed.

Unit

Inherited Constants

From androidx.leanback.media.PlaybackBaseControlGlue
const Int

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

const Int

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

const Int

The adapter key for the fast forward control.

const Int

The adapter key for the play/pause control.

const Int

The adapter key for the repeat control.

const Int

The adapter key for the rewind control.

const Int

The adapter key for the shuffle control.

const Int

The adapter key for the skip to next control.

const Int

The adapter key for the skip to previous control.

Inherited functions

From androidx.leanback.media.PlaybackBaseControlGlue
Drawable?
Long
PlaybackControlsRow?

Returns the playback controls row managed by the glue layer.

Long
Long
PlaybackRowPresenter?

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

T!
CharSequence?

Return The media subtitle.

Long

Returns a bitmask of actions supported by the media player.

CharSequence?

Returns the title of the media item.

Boolean

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

Boolean

Returns true if media is currently playing.

Boolean

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

Unit

Goes to the next media item.

java-static Unit
Unit
onCreateSecondaryActions(secondaryActionsAdapter: ArrayObjectAdapter)

May be overridden to add secondary actions to the adapter.

Unit

This method is called when PlaybackGlueHost is started.

Unit

This method is called when PlaybackGlueHost is stopped.

Unit

Event when metadata changed

Unit

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

Unit

Event when ready state for play changes.

Unit
Unit
Unit

Pauses the media player.

Unit

Starts the media player.

Unit

Goes to the previous media item.

Unit
seekTo(position: Long)

Seek media to a new position.

Unit
setArt(cover: Drawable?)

Sets the drawable representing cover image.

Unit

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

Unit

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

Unit

Sets the media subtitle.

Unit

Sets the media title.

From androidx.leanback.media.PlaybackGlue
Unit

Add a PlayerCallback.

Context

Returns the context.

PlaybackGlueHost?
(Mutable)List<PlaybackGlue.PlayerCallback!>?
Unit

This method is called when PlaybackGlueHost is paused.

Unit

This method is called when PlaybackGlueHost is resumed.

Unit

Starts play when isPrepared becomes true.

Unit

Remove a PlayerCallback.

Unit

This method is used to associate a PlaybackGlue with the PlaybackGlueHost which provides UI and optional SurfaceHolderGlueHost.

From android.view.View.OnKeyListener
abstract Boolean
onKey(p: View!, p1: Int, p2: KeyEvent!)

Public constructors

PlaybackTransportControlGlue

Added in 1.1.0
PlaybackTransportControlGlue(context: Context!, impl: T!)

Constructor for the glue.

Parameters
context: Context!
impl: T!

Implementation to underlying media player.

Public functions

getSeekProvider

Added in 1.1.0
fun getSeekProvider(): PlaybackSeekDataProvider!

Get seek data provider used during user seeking.

Returns
PlaybackSeekDataProvider!

Seek data provider used during user seeking.

isSeekEnabled

Added in 1.1.0
fun isSeekEnabled(): Boolean
Returns
Boolean

True if seek is enabled without PlaybackSeekDataProvider, false otherwise.

onActionClicked

Added in 1.2.0-alpha04
fun onActionClicked(action: Action): Unit

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

onKey

Added in 1.1.0
fun onKey(v: View!, keyCode: Int, event: KeyEvent!): Boolean

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

setControlsRow

fun setControlsRow(controlsRow: PlaybackControlsRow): Unit

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

setSeekEnabled

Added in 1.1.0
fun setSeekEnabled(seekEnabled: Boolean): Unit

Enable or disable seek when getSeekProvider is null. When true, seekTo will be called during user seeking.

Parameters
seekEnabled: Boolean

True to enable seek, false otherwise

setSeekProvider

Added in 1.1.0
fun setSeekProvider(seekProvider: PlaybackSeekDataProvider!): Unit

Set seek data provider used during user seeking.

Parameters
seekProvider: PlaybackSeekDataProvider!

Seek data provider used during user seeking.

Protected functions

onAttachedToHost

protected fun onAttachedToHost(host: PlaybackGlueHost): Unit

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

onCreatePrimaryActions

protected fun onCreatePrimaryActions(primaryActionsAdapter: ArrayObjectAdapter): Unit

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

Added in 1.2.0-alpha04
protected fun onCreateRowPresenter(): PlaybackRowPresenter

onDetachedFromHost

protected fun onDetachedFromHost(): Unit

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.

onPlayStateChanged

protected fun onPlayStateChanged(): Unit

Event when play state changed.

onUpdateProgress

protected fun onUpdateProgress(): Unit