added in version 1.0.0
belongs to Maven artifact androidx.leanback:leanback:1.0.0-beta01

PlaybackTransportControlGlue

public class PlaybackTransportControlGlue
extends PlaybackBaseControlGlue<T extends PlayerAdapter>

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


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 PlaybackControlsRow PlaybackTransportRowPresenter 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(ArrayObjectAdapter) and / or PlaybackBaseControlGlue.onCreateSecondaryActions(ArrayObjectAdapter) and respond to actions by override onActionClicked(Action).

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

Apps calls setSeekProvider(PlaybackSeekDataProvider) 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);
         PlaybackTransportControlGlue playerGlue =
                 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();
     }
 }
 

Summary

Inherited constants

Public constructors

PlaybackTransportControlGlue(Context context, T impl)

Constructor for the glue.

Public methods

final PlaybackSeekDataProvider getSeekProvider()

Get seek data provider used during user seeking.

final boolean isSeekEnabled()
void onActionClicked(Action action)

Handles action clicks.

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

Handles key events and returns true if handled.

void setControlsRow(PlaybackControlsRow controlsRow)

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

final void setSeekEnabled(boolean seekEnabled)

Enable or disable seek when getSeekProvider() is null.

final void setSeekProvider(PlaybackSeekDataProvider seekProvider)

Set seek data provider used during user seeking.

Protected methods

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.

PlaybackRowPresenter onCreateRowPresenter()
void onDetachedFromHost()

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

void onPlayStateChanged()

Event when play state changed.

void onUpdateProgress()

Inherited methods

Public constructors

PlaybackTransportControlGlue

added in version 1.0.0
public PlaybackTransportControlGlue (Context context, 
                T impl)

Constructor for the glue.

Parameters
impl T: Implementation to underlying media player.

Public methods

getSeekProvider

added in version 1.0.0
public final PlaybackSeekDataProvider getSeekProvider ()

Get seek data provider used during user seeking.

Returns
PlaybackSeekDataProvider Seek data provider used during user seeking.

isSeekEnabled

added in version 1.0.0
public final boolean isSeekEnabled ()

Returns
boolean True if seek is enabled without PlaybackSeekDataProvider, false otherwise.

onActionClicked

added in version 1.0.0
public void onActionClicked (Action action)

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

Parameters
action Action

onKey

added in version 1.0.0
public 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

setControlsRow

added in version 1.0.0
public 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

setSeekEnabled

added in version 1.0.0
public final void setSeekEnabled (boolean seekEnabled)

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

Parameters
seekEnabled boolean: True to enable seek, false otherwise

setSeekProvider

added in version 1.0.0
public final void setSeekProvider (PlaybackSeekDataProvider seekProvider)

Set seek data provider used during user seeking.

Parameters
seekProvider PlaybackSeekDataProvider: Seek data provider used during user seeking.

Protected methods

onAttachedToHost

added in version 1.0.0
protected void onAttachedToHost (PlaybackGlueHost host)

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

Parameters
host PlaybackGlueHost

onCreatePrimaryActions

added in version 1.0.0
protected 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

added in version 1.0.0
protected PlaybackRowPresenter onCreateRowPresenter ()

Returns
PlaybackRowPresenter

onDetachedFromHost

added in version 1.0.0
protected 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.

onPlayStateChanged

added in version 1.0.0
protected void onPlayStateChanged ()

Event when play state changed.

onUpdateProgress

added in version 1.0.0
protected void onUpdateProgress ()