# DetailsOverviewLogoPresenter

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

*** ** * ** ***


```
public class DetailsOverviewLogoPresenter extends Presenter
```

<br />

|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object.html) |||
| ↳ | [androidx.leanback.widget.Presenter](https://developer.android.com/reference/androidx/leanback/widget/Presenter) ||
|   | ↳ | [androidx.leanback.widget.DetailsOverviewLogoPresenter](https://developer.android.com/reference/androidx/leanback/widget/DetailsOverviewLogoPresenter) |

*** ** * ** ***

Presenter that responsible to create a ImageView and bind to DetailsOverviewRow. The default implementation uses `https://developer.android.com/reference/androidx/leanback/widget/DetailsOverviewRow#getImageDrawable()` and binds to `https://developer.android.com/reference/android/widget/ImageView.html`.

Default implementation assumes no scaleType on ImageView and uses intrinsic width and height of `https://developer.android.com/reference/androidx/leanback/widget/DetailsOverviewRow#getImageDrawable()` to initialize ImageView's layout params. To specify a fixed size and/or specify a scapeType, subclass should change ImageView's layout params and scaleType in `https://developer.android.com/reference/androidx/leanback/widget/DetailsOverviewLogoPresenter#onCreateView(android.view.ViewGroup)`.

Subclass may override and has its own image view. Subclass may also download image from URL instead of using `https://developer.android.com/reference/androidx/leanback/widget/DetailsOverviewRow#getImageDrawable()`. It's subclass's responsibility to call `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#notifyOnBindLogo(androidx.leanback.widget.FullWidthDetailsOverviewRowPresenter.ViewHolder)` whenever `https://developer.android.com/reference/androidx/leanback/widget/DetailsOverviewLogoPresenter#isBoundToImage(androidx.leanback.widget.DetailsOverviewLogoPresenter.ViewHolder,androidx.leanback.widget.DetailsOverviewRow)` turned to true so that activity transition can be started.

## Summary

| ### Nested types |
|---|
| `public class https://developer.android.com/reference/androidx/leanback/widget/DetailsOverviewLogoPresenter.ViewHolder extends https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder` ViewHolder for Logo view of DetailsOverviewRow. |

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

| ### Public methods |
|---|---|
| `boolean` | `https://developer.android.com/reference/androidx/leanback/widget/DetailsOverviewLogoPresenter#isBoundToImage(androidx.leanback.widget.DetailsOverviewLogoPresenter.ViewHolder,androidx.leanback.widget.DetailsOverviewRow)( @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/DetailsOverviewLogoPresenter.ViewHolder viewHolder, @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/androidx/leanback/widget/DetailsOverviewRow row )` Returns true if the logo view is bound to image. |
| `void` | `https://developer.android.com/reference/androidx/leanback/widget/DetailsOverviewLogoPresenter#onBindViewHolder(androidx.leanback.widget.Presenter.ViewHolder,java.lang.Object)( @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder viewHolder, @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/Object.html item )` Bind logo View to drawable of DetailsOverviewRow and call notifyOnBindLogo(). |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/view/View.html` | `https://developer.android.com/reference/androidx/leanback/widget/DetailsOverviewLogoPresenter#onCreateView(android.view.ViewGroup)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/view/ViewGroup.html parent)` Create a View for the Logo, default implementation loads from . |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder` | `https://developer.android.com/reference/androidx/leanback/widget/DetailsOverviewLogoPresenter#onCreateViewHolder(android.view.ViewGroup)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/view/ViewGroup.html parent)` Creates a new `https://developer.android.com/reference/android/view/View.html`. |
| `void` | `https://developer.android.com/reference/androidx/leanback/widget/DetailsOverviewLogoPresenter#onUnbindViewHolder(androidx.leanback.widget.Presenter.ViewHolder)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder viewHolder)` Unbinds a `https://developer.android.com/reference/android/view/View.html` from an item. |
| `void` | `https://developer.android.com/reference/androidx/leanback/widget/DetailsOverviewLogoPresenter#setContext(androidx.leanback.widget.DetailsOverviewLogoPresenter.ViewHolder,androidx.leanback.widget.FullWidthDetailsOverviewRowPresenter.ViewHolder,androidx.leanback.widget.FullWidthDetailsOverviewRowPresenter)( @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/DetailsOverviewLogoPresenter.ViewHolder viewHolder, @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter.ViewHolder parentViewHolder, @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter parentPresenter )` Called from `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter` to setup FullWidthDetailsOverviewRowPresenter and FullWidthDetailsOverviewRowPresenter.ViewHolder that hosts the logo. |

### Inherited methods

From [androidx.leanback.widget.FacetProvider](https://developer.android.com/reference/androidx/leanback/widget/FacetProvider) `abstract @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/Object.html` `https://developer.android.com/reference/androidx/leanback/widget/FacetProvider#getFacet(java.lang.Class<?>)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/Class.html<@https://developer.android.com/reference/androidx/annotation/NonNull ?> facetClass)`

Queries optional implemented facet.
From [androidx.leanback.widget.Presenter](https://developer.android.com/reference/androidx/leanback/widget/Presenter) `static void` `https://developer.android.com/reference/androidx/leanback/widget/Presenter#cancelAnimationsRecursive(android.view.View)(https://developer.android.com/reference/android/view/View.html view)`

Utility method for removing all running animations on a view.
`final https://developer.android.com/reference/java/lang/Object.html` `https://developer.android.com/reference/androidx/leanback/widget/Presenter#getFacet(java.lang.Class<?>)(https://developer.android.com/reference/java/lang/Class.html<@https://developer.android.com/reference/androidx/annotation/NonNull ?> facetClass)`

Queries optional implemented facet.
`void` `https://developer.android.com/reference/androidx/leanback/widget/Presenter#onBindViewHolder(androidx.leanback.widget.Presenter.ViewHolder,java.lang.Object,java.util.List<java.lang.Object>)(
@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder viewHolder,
@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/Object.html item,
@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/java/lang/Object.html> payloads
)`

Binds a `https://developer.android.com/reference/android/view/View.html` to an item with a list of payloads.
`void` `https://developer.android.com/reference/androidx/leanback/widget/Presenter#onViewAttachedToWindow(androidx.leanback.widget.Presenter.ViewHolder)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder holder)`

Called when a view created by this presenter has been attached to a window.
`void` `https://developer.android.com/reference/androidx/leanback/widget/Presenter#onViewDetachedFromWindow(androidx.leanback.widget.Presenter.ViewHolder)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder holder)`

Called when a view created by this presenter has been detached from its window.
`final void` `https://developer.android.com/reference/androidx/leanback/widget/Presenter#setFacet(java.lang.Class<?>,java.lang.Object)(https://developer.android.com/reference/java/lang/Class.html<@https://developer.android.com/reference/androidx/annotation/NonNull ?> facetClass, https://developer.android.com/reference/java/lang/Object.html facetImpl)`

Sets dynamic implemented facet in addition to basic Presenter functions.
`void` `https://developer.android.com/reference/androidx/leanback/widget/Presenter#setOnClickListener(androidx.leanback.widget.Presenter.ViewHolder,android.view.View.OnClickListener)(
https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder holder,
https://developer.android.com/reference/android/view/View.OnClickListener.html listener
)`

Called to set a click listener for the given view holder.

## Public constructors

### DetailsOverviewLogoPresenter

Added in 1.1.0

```
public DetailsOverviewLogoPresenter()
```

## Public methods

### isBoundToImage

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

```
public boolean isBoundToImage(
    @NonNull DetailsOverviewLogoPresenter.ViewHolder viewHolder,
    @Nullable DetailsOverviewRow row
)
```

Returns true if the logo view is bound to image. Subclass may override. The default implementation returns true when `https://developer.android.com/reference/androidx/leanback/widget/DetailsOverviewRow#getImageDrawable()` is not null. If subclass of DetailsOverviewLogoPresenter manages its own image drawable, it should override this function to report status correctly and invoke `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter#notifyOnBindLogo(androidx.leanback.widget.FullWidthDetailsOverviewRowPresenter.ViewHolder)` when image view is bound to the drawable.

### onBindViewHolder

```
public void onBindViewHolder(
    @NonNull Presenter.ViewHolder viewHolder,
    @Nullable Object item
)
```

Bind logo View to drawable of DetailsOverviewRow and call notifyOnBindLogo(). The default implementation assumes the Logo View is an ImageView and change layout size to intrinsic size of ImageDrawable if `https://developer.android.com/reference/androidx/leanback/widget/DetailsOverviewLogoPresenter.ViewHolder#isSizeFromDrawableIntrinsic()` is true.

| Parameters |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/Presenter.ViewHolder viewHolder` | ViewHolder to bind. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/Object.html item` | DetailsOverviewRow object to bind. |

### onCreateView

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

```
public @NonNull View onCreateView(@NonNull ViewGroup parent)
```

Create a View for the Logo, default implementation loads from . Subclass may override this method to use a fixed layout size and change ImageView scaleType. If the layout params is WRAP_CONTENT for both width and size, the ViewHolder would be using intrinsic size of Drawable in `https://developer.android.com/reference/androidx/leanback/widget/DetailsOverviewLogoPresenter#onBindViewHolder(androidx.leanback.widget.Presenter.ViewHolder,java.lang.Object)`.

| Parameters |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/view/ViewGroup.html parent` | Parent view. |

| Returns |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/view/View.html` | View created for the logo. |

### onCreateViewHolder

```
public @NonNull Presenter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent)
```

Creates a new `https://developer.android.com/reference/android/view/View.html`.

### onUnbindViewHolder

```
public void onUnbindViewHolder(@NonNull Presenter.ViewHolder viewHolder)
```

Unbinds a `https://developer.android.com/reference/android/view/View.html` from an item. Any expensive references may be released here, and any fields that are not bound for every item should be cleared here.

### setContext

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

```
public void setContext(
    @NonNull DetailsOverviewLogoPresenter.ViewHolder viewHolder,
    @Nullable FullWidthDetailsOverviewRowPresenter.ViewHolder parentViewHolder,
    @Nullable FullWidthDetailsOverviewRowPresenter parentPresenter
)
```

Called from `https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter` to setup FullWidthDetailsOverviewRowPresenter and FullWidthDetailsOverviewRowPresenter.ViewHolder that hosts the logo.

| Parameters |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/leanback/widget/DetailsOverviewLogoPresenter.ViewHolder viewHolder` |   |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter.ViewHolder parentViewHolder` |   |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/androidx/leanback/widget/FullWidthDetailsOverviewRowPresenter parentPresenter` |   |