# PlaybackGlueHost

Artifact: [androidx.leanback:leanback](https://developer.android.com/jetpack/androidx/releases/leanback) [View Source](https://cs.android.com/search?q=file:androidx/leanback/media/PlaybackGlueHost.java+class:androidx.leanback.media.PlaybackGlueHost) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

*** ** * ** ***


```
public abstract class PlaybackGlueHost
```

<br />

Known direct subclasses [PlaybackFragmentGlueHost](https://developer.android.com/reference/androidx/leanback/app/PlaybackFragmentGlueHost), [PlaybackSupportFragmentGlueHost](https://developer.android.com/reference/androidx/leanback/app/PlaybackSupportFragmentGlueHost)

|---|---|
| `https://developer.android.com/reference/androidx/leanback/app/PlaybackFragmentGlueHost` | **This class is deprecated.** use `https://developer.android.com/reference/androidx/leanback/app/PlaybackSupportFragmentGlueHost` <br /> |
| `https://developer.android.com/reference/androidx/leanback/app/PlaybackSupportFragmentGlueHost` | `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost` implementation the interaction between this class and `https://developer.android.com/reference/androidx/leanback/app/PlaybackSupportFragment`. |

Known indirect subclasses [VideoFragmentGlueHost](https://developer.android.com/reference/androidx/leanback/app/VideoFragmentGlueHost), [VideoSupportFragmentGlueHost](https://developer.android.com/reference/androidx/leanback/app/VideoSupportFragmentGlueHost)

|---|---|
| `https://developer.android.com/reference/androidx/leanback/app/VideoFragmentGlueHost` | **This class is deprecated.** use `https://developer.android.com/reference/androidx/leanback/app/VideoSupportFragmentGlueHost` <br /> |
| `https://developer.android.com/reference/androidx/leanback/app/VideoSupportFragmentGlueHost` | `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost` implementation the interaction between `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlue` and `https://developer.android.com/reference/androidx/leanback/app/VideoSupportFragment`. |

*** ** * ** ***

This class represents the UI (e.g. Fragment/Activity) hosting playback controls and defines the interaction between `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlue` and the host. PlaybackGlueHost provides the following functions:

- Render UI of PlaybackGlue: `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost#setPlaybackRow(androidx.leanback.widget.Row)`, `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost#setPlaybackRowPresenter(androidx.leanback.widget.PlaybackRowPresenter)`.
- Client for fragment/activity onStart/onStop: `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost#setHostCallback(androidx.leanback.media.PlaybackGlueHost.HostCallback)`.
- Auto fade out controls after a short period: `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost#setFadingEnabled(boolean)`.
- Key listener and ActionListener. `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost#setOnKeyInterceptListener(android.view.View.OnKeyListener)`, `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost#setOnActionClickedListener(androidx.leanback.widget.OnActionClickedListener)`.

Subclass of PlaybackGlueHost may implement optional interfaces:

<!-- -->

- `https://developer.android.com/reference/androidx/leanback/media/SurfaceHolderGlueHost` to provide SurfaceView for video playback.
- `https://developer.android.com/reference/androidx/leanback/widget/PlaybackSeekUi` to provide seek UI to glue

These optional interfaces should be accessed by glue in `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlue#onAttachedToHost(androidx.leanback.media.PlaybackGlueHost)`.

## Summary

| ### Nested types |
|---|
| `public abstract class https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost.HostCallback` Callbacks triggered by the host(e.g. fragment) hosting the video controls/surface. |
| `public class https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost.PlayerCallback` Optional Client that implemented by PlaybackGlueHost to respond to player event. |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost#PlaybackGlueHost()()` |

| ### Public methods |
|---|---|
| `void` | `[fadeOut](https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost#fadeOut())()` **This method is deprecated.** Call `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost#hideControlsOverlay(boolean)` <br /> |
| `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost.PlayerCallback` | `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost#getPlayerCallback()()` Implemented by PlaybackGlueHost for responding to player events. |
| `void` | `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost#hideControlsOverlay(boolean)(boolean runAnimation)` Hide controls overlay. |
| `boolean` | `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost#isControlsOverlayAutoHideEnabled()()` Returns true if auto hides controls overlay. |
| `boolean` | `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost#isControlsOverlayVisible()()` Returns true if controls overlay is visible, false otherwise. |
| `void` | `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost#notifyPlaybackRowChanged()()` Notifies host about a change so it can update the view. |
| `void` | `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost#setControlsOverlayAutoHideEnabled(boolean)(boolean enabled)` Enables or disables controls overlay auto hidden. |
| `void` | `[setFadingEnabled](https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost#setFadingEnabled(boolean))(boolean enable)` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost#setControlsOverlayAutoHideEnabled(boolean)` <br /> |
| `void` | `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost#setHostCallback(androidx.leanback.media.PlaybackGlueHost.HostCallback)(https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost.HostCallback callback)` Sets the host `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost.HostCallback` callback on the host. |
| `void` | `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost#setOnActionClickedListener(androidx.leanback.widget.OnActionClickedListener)(https://developer.android.com/reference/androidx/leanback/widget/OnActionClickedListener listener)` Sets the `https://developer.android.com/reference/android/view/View.OnClickListener.html` on this fragment. |
| `void` | `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost#setOnKeyInterceptListener(android.view.View.OnKeyListener)(https://developer.android.com/reference/android/view/View.OnKeyListener.html onKeyListener)` Sets the `https://developer.android.com/reference/android/view/View.OnKeyListener.html` on the host. |
| `void` | `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost#setPlaybackRow(androidx.leanback.widget.Row)(https://developer.android.com/reference/androidx/leanback/widget/Row row)` Sets the `https://developer.android.com/reference/androidx/leanback/widget/Row` that represents the information on control items that needs to be rendered. |
| `void` | `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost#setPlaybackRowPresenter(androidx.leanback.widget.PlaybackRowPresenter)(https://developer.android.com/reference/androidx/leanback/widget/PlaybackRowPresenter presenter)` Sets `https://developer.android.com/reference/androidx/leanback/widget/PlaybackRowPresenter` for rendering the playback controls. |
| `void` | `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost#showControlsOverlay(boolean)(boolean runAnimation)` Show controls overlay. |

## Public constructors

### PlaybackGlueHost

Added in 1.1.0

```
public PlaybackGlueHost()
```

## Public methods

### fadeOut

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
public void [fadeOut](https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost#fadeOut())()
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Call `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost#hideControlsOverlay(boolean)`

Fades out the playback overlay immediately.

### getPlayerCallback

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
public PlaybackGlueHost.PlayerCallback getPlayerCallback()
```

Implemented by PlaybackGlueHost for responding to player events. Such as showing a spinning wheel progress bar when `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost.PlayerCallback#onBufferingStateChanged(boolean)`.

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost.PlayerCallback` | PlayerEventCallback that Host supports, null if not supported. |

### hideControlsOverlay

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
public void hideControlsOverlay(boolean runAnimation)
```

Hide controls overlay.

| Parameters |
|---|---|
| `boolean runAnimation` | True to run animation, false otherwise. |

### isControlsOverlayAutoHideEnabled

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
public boolean isControlsOverlayAutoHideEnabled()
```

Returns true if auto hides controls overlay.

| Returns |
|---|---|
| `boolean` | True if auto hiding controls overlay. |

### isControlsOverlayVisible

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
public boolean isControlsOverlayVisible()
```

Returns true if controls overlay is visible, false otherwise.

| Returns |
|---|---|
| `boolean` | True if controls overlay is visible, false otherwise. |

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost#showControlsOverlay(boolean)` |   |
| `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost#hideControlsOverlay(boolean)` |   |

### notifyPlaybackRowChanged

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
public void notifyPlaybackRowChanged()
```

Notifies host about a change so it can update the view.

### setControlsOverlayAutoHideEnabled

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
public void setControlsOverlayAutoHideEnabled(boolean enabled)
```

Enables or disables controls overlay auto hidden. If enabled, the view will be faded out after a time period.

| Parameters |
|---|---|
| `boolean enabled` | True to enable auto hidden of controls overlay. |

### setFadingEnabled

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0) Deprecated in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
public void [setFadingEnabled](https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost#setFadingEnabled(boolean))(boolean enable)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost#setControlsOverlayAutoHideEnabled(boolean)`

Enables or disables view fading. If enabled, the view will be faded in when the fragment starts and will fade out after a time period.

### setHostCallback

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
public void setHostCallback(PlaybackGlueHost.HostCallback callback)
```

Sets the host `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlueHost.HostCallback` callback on the host. This method should only be called by `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlue`. App should not directly call this method, app should override `https://developer.android.com/reference/androidx/leanback/media/PlaybackGlue#onHostStart()` etc.

### setOnActionClickedListener

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
public void setOnActionClickedListener(OnActionClickedListener listener)
```

Sets the `https://developer.android.com/reference/android/view/View.OnClickListener.html` on this fragment.

### setOnKeyInterceptListener

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
public void setOnKeyInterceptListener(View.OnKeyListener onKeyListener)
```

Sets the `https://developer.android.com/reference/android/view/View.OnKeyListener.html` on the host. This would trigger the listener when a `https://developer.android.com/reference/android/view/KeyEvent.html` is unhandled by the host.

### setPlaybackRow

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
public void setPlaybackRow(Row row)
```

Sets the `https://developer.android.com/reference/androidx/leanback/widget/Row` that represents the information on control items that needs to be rendered.

### setPlaybackRowPresenter

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
public void setPlaybackRowPresenter(PlaybackRowPresenter presenter)
```

Sets `https://developer.android.com/reference/androidx/leanback/widget/PlaybackRowPresenter` for rendering the playback controls.

### showControlsOverlay

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/leanback#1.1.0)

```
public void showControlsOverlay(boolean runAnimation)
```

Show controls overlay.

| Parameters |
|---|---|
| `boolean runAnimation` | True to run animation, false otherwise. |