To hide the controls when the video first starts you need to tell both the glue and the fragment not to show them.
If you look at the source of PlaybackTransportControls, on line 317, the controls check if fading is enabled and there is a host. If so, then it updates the visibility of the controls based on if the player is playing.
To test, in the leanback sample, look for the initializePlayer()
method in the playback fragment. On line 166, it starts the player. When play happens, the glue tells the host (who talks to the fragment) and shows the controls. To prevent the controls being shown, setup the glue and the fragment to not show them:
private void initializePlayer() {
...
// Setup the glue and fragment to not show controls when play starts.
mPlayerGlue.setControlsOverlayAutoHideEnabled(false);
hideControlsOverlay(false);
play(mVideo);
...
}