# ContentRecommendation.Builder

Artifact: [androidx.recommendation:recommendation](https://developer.android.com/jetpack/androidx/releases/recommendation) [View Source](https://cs.android.com/search?q=file:androidx/recommendation/app/ContentRecommendation.java+class:androidx.recommendation.app.ContentRecommendation.Builder) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/recommendation#1.0.0)

*** ** * ** ***

<br />

```
public final class ContentRecommendation.Builder
```

<br />

*** ** * ** ***

Builder class for `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation` objects. Provides a convenient way to set the various fields of a `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation`.

Example:

```
ContentRecommendation rec = new ContentRecommendation.Builder()
        .setIdInfo(id, "MyTagId")
        .setTitle("My Content Recommendation")
        .setText("An example of content recommendation")
        .setContentImage(myBitmap)
        .setBadgeIcon(R.drawable.app_icon)
        .setGroup("Trending")
        .build();
```

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder#Builder()()` Constructs a new Builder. |

| ### Public methods |
|---|---|
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation` | `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder#build()()` Combine all of the options that have been set and return a new `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation` object. |
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder` | `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder#setAutoDismiss(boolean)(boolean autoDismiss)` Sets the flag indicating if the recommendation should be dismissed automatically. |
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder` | `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder#setBackgroundImageUri(java.lang.String)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html imageUri)` Sets the Content URI that will be used to retrieve the background image for the recommendation. |
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder` | `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder#setBadgeIcon(int)(@https://developer.android.com/reference/androidx/annotation/DrawableRes int iconResourceId)` Sets the resource ID for the recommendation badging icon. |
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder` | `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder#setColor(int)(@https://developer.android.com/reference/androidx/annotation/ColorInt int color)` Sets the accent color value to be used in the UI when displaying this content recommendation to the user. |
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder` | `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder#setContentImage(android.graphics.Bitmap)(https://developer.android.com/reference/android/graphics/Bitmap.html image)` Sets the recommendation image. |
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder` | `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder#setContentIntentData(int,android.content.Intent,int,android.os.Bundle)( @https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.IntentType int intentType, https://developer.android.com/reference/android/content/Intent.html intent, int requestCode, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/os/Bundle.html options )` Sets the data for the Intent that will be issued when the user clicks on the recommendation. |
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder` | `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder#setContentTypes(java.lang.String[])(String[] types)` Sets the content types associated with the content recommendation. |
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder` | `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder#setDismissIntentData(int,android.content.Intent,int,android.os.Bundle)( @https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.IntentType int intentType, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/content/Intent.html intent, int requestCode, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/os/Bundle.html options )` Sets the data for the Intent that will be issued when the recommendation gets dismissed from the Home Screen, due to an user action. |
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder` | `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder#setGenres(java.lang.String[])(String[] genres)` Sets the content genres for the recommendation. |
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder` | `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder#setGroup(java.lang.String)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html groupTag)` Sets the String group ID tag for the recommendation. |
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder` | `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder#setIdTag(java.lang.String)(https://developer.android.com/reference/java/lang/String.html idTag)` Sets the Id tag that uniquely identifies this recommendation object. |
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder` | `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder#setMaturityRating(java.lang.String)( @https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.ContentMaturity https://developer.android.com/reference/java/lang/String.html maturityRating )` Sets the maturity level rating for the content. |
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder` | `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder#setPricingInformation(java.lang.String,java.lang.String)( @https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.ContentPricing https://developer.android.com/reference/java/lang/String.html priceType, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html priceValue )` Sets the pricing and availability information for the recommendation. |
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder` | `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder#setProgress(int,int)(int max, int progress)` Sets the progress information for the content pointed to by the recommendation. |
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder` | `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder#setRunningTime(long)(long length)` Sets the running time (when applicable) for the content. |
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder` | `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder#setSortKey(java.lang.String)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html sortKey)` Sets the String sort key for the recommendation. |
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder` | `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder#setSourceName(java.lang.String)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html source)` Sets the source application name for the recommendation. |
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder` | `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder#setStatus(int)(@https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.ContentStatus int contentStatus)` Sets the availability status for the content. |
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder` | `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder#setText(java.lang.String)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html description)` Sets the description text for the recommendation. |
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder` | `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder#setTitle(java.lang.String)(https://developer.android.com/reference/java/lang/String.html title)` Sets the content title for the recommendation. |

## Public constructors

### Builder

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

```
public Builder()
```

Constructs a new Builder.

## Public methods

### build

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

```
public ContentRecommendation build()
```

Combine all of the options that have been set and return a new `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation` object.

### setAutoDismiss

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

```
public ContentRecommendation.Builder setAutoDismiss(boolean autoDismiss)
```

Sets the flag indicating if the recommendation should be dismissed automatically.

Auto-dismiss notifications are automatically removed from the Home Screen when the user clicks on them.

| Parameters |
|---|---|
| `boolean autoDismiss` | A boolean indicating if the recommendation should be auto dismissed or not. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder` | The Builder object, for chaining. |

### setBackgroundImageUri

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

```
public ContentRecommendation.Builder setBackgroundImageUri(@Nullable String imageUri)
```

Sets the Content URI that will be used to retrieve the background image for the recommendation.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html imageUri` | A Content URI pointing to the recommendation background image. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder` | The Builder object, for chaining. |

### setBadgeIcon

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

```
public ContentRecommendation.Builder setBadgeIcon(@DrawableRes int iconResourceId)
```

Sets the resource ID for the recommendation badging icon.

The resource id represents the icon resource in the source application package. If not set, or an invalid resource ID is specified, the application icon retrieved from its package will be used by default.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/DrawableRes int iconResourceId` | An integer id for the badge icon resource. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder` | The Builder object, for chaining. |

### setColor

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

```
public ContentRecommendation.Builder setColor(@ColorInt int color)
```

Sets the accent color value to be used in the UI when displaying this content recommendation to the user.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/ColorInt int color` | An integer value representing the accent color for this recommendation. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder` | The Builder object, for chaining. |

### setContentImage

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

```
public ContentRecommendation.Builder setContentImage(Bitmap image)
```

Sets the recommendation image.

| Parameters |
|---|---|
| `https://developer.android.com/reference/android/graphics/Bitmap.html image` | A Bitmap containing the recommendation image. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder` | The Builder object, for chaining. |

### setContentIntentData

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

```
public ContentRecommendation.Builder setContentIntentData(
    @ContentRecommendation.IntentType int intentType,
    Intent intent,
    int requestCode,
    @Nullable Bundle options
)
```

Sets the data for the Intent that will be issued when the user clicks on the recommendation.

The Intent data fields provided correspond to the fields passed into the `https://developer.android.com/reference/android/app/PendingIntent.html` factory methods, when creating a new PendingIntent. The actual PengindIntent object will only be created at the time a recommendation is posted to the Home Screen.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.IntentType int intentType` | The type of `https://developer.android.com/reference/android/app/PendingIntent.html` to be created when posting this recommendation. |
| `https://developer.android.com/reference/android/content/Intent.html intent` | The Intent which to be issued when the recommendation is clicked on. |
| `int requestCode` | The private request code to be used when creating the `https://developer.android.com/reference/android/app/PendingIntent.html` |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/os/Bundle.html options` | Only used for the Activity Intent type. Additional options for how the Activity should be started. May be null if there are no options. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder` | The Builder object, for chaining. |

### setContentTypes

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

```
public ContentRecommendation.Builder setContentTypes(String[] types)
```

Sets the content types associated with the content recommendation. The first tag entry will be considered the primary type for the content and will be used for ranking purposes. Other secondary type tags may be provided, if applicable, and may be used for filtering purposes.

| Parameters |
|---|---|
| `String[] types` | Array of predefined type tags (see the `CONTENT_TYPE_*`constants) that describe the recommended content. |

### setDismissIntentData

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

```
public ContentRecommendation.Builder setDismissIntentData(
    @ContentRecommendation.IntentType int intentType,
    @Nullable Intent intent,
    int requestCode,
    @Nullable Bundle options
)
```

Sets the data for the Intent that will be issued when the recommendation gets dismissed from the Home Screen, due to an user action.

The Intent data fields provided correspond to the fields passed into the `https://developer.android.com/reference/android/app/PendingIntent.html` factory methods, when creating a new PendingIntent. The actual PengindIntent object will only be created at the time a recommendation is posted to the Home Screen.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.IntentType int intentType` | The type of `https://developer.android.com/reference/android/app/PendingIntent.html` to be created when posting this recommendation. |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/content/Intent.html intent` | The Intent which gets issued when the recommendation is dismissed from the Home Screen. |
| `int requestCode` | The private request code to be used when creating the `https://developer.android.com/reference/android/app/PendingIntent.html` |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/os/Bundle.html options` | Only used for the Activity Intent type. Additional options for how the Activity should be started. May be null if there are no options. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder` | The Builder object, for chaining. |

### setGenres

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

```
public ContentRecommendation.Builder setGenres(String[] genres)
```

Sets the content genres for the recommendation. These genres may be used for content ranking. Genres are open ended String tags.

Some examples: "comedy", "action", "dance", "electronica", "racing", etc.

| Parameters |
|---|---|
| `String[] genres` | Array of genre string tags that describe the recommended content. |

### setGroup

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

```
public ContentRecommendation.Builder setGroup(@Nullable String groupTag)
```

Sets the String group ID tag for the recommendation.

Recommendations in the same group are ranked by the Home Screen together, and the sort order within a group is respected. This can be useful if the application has different sources for recommendations, like "trending", "subscriptions", and "new music" categories for YouTube, where the user can be more interested in recommendations from one group than another.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html groupTag` | A String containing the group ID tag for this recommendation. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder` | The Builder object, for chaining. |

### setIdTag

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

```
public ContentRecommendation.Builder setIdTag(String idTag)
```

Sets the Id tag that uniquely identifies this recommendation object.

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/lang/String.html idTag` | A String tag identifier for this recommendation. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder` | The Builder object, for chaining. |

### setMaturityRating

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

```
public ContentRecommendation.Builder setMaturityRating(
    @ContentRecommendation.ContentMaturity String maturityRating
)
```

Sets the maturity level rating for the content.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.ContentMaturity https://developer.android.com/reference/java/lang/String.html maturityRating` | A tag indicating the maturity level rating for the content. This tag must be one of the predefined maturity rating tags (see the `CONTENT_MATURITY_*` constants). |

### setPricingInformation

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

```
public ContentRecommendation.Builder setPricingInformation(
    @ContentRecommendation.ContentPricing String priceType,
    @Nullable String priceValue
)
```

Sets the pricing and availability information for the recommendation. The provided information will indicate the access model for the content (free, rental, purchase or subscription) and the price value (if not free).

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.ContentPricing https://developer.android.com/reference/java/lang/String.html priceType` | Pricing type for this content. Must be one of the predefined pricing type tags (see the `CONTENT_PRICING_*` constants). |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html priceValue` | A string containing a representation of the content price in the current locale and currency. |

### setProgress

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

```
public ContentRecommendation.Builder setProgress(int max, int progress)
```

Sets the progress information for the content pointed to by the recommendation.

| Parameters |
|---|---|
| `int max` | The maximum value for the progress of this content. |
| `int progress` | The progress amount for this content. Must be in the range (0 - max). |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder` | The Builder object, for chaining. |

### setRunningTime

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

```
public ContentRecommendation.Builder setRunningTime(long length)
```

Sets the running time (when applicable) for the content.

| Parameters |
|---|---|
| `long length` | The running time, in seconds, of the content. |

### setSortKey

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

```
public ContentRecommendation.Builder setSortKey(@Nullable String sortKey)
```

Sets the String sort key for the recommendation.

The sort key must be a String representation of a float number between 0.0 and 1.0, and is used to indicate the relative importance (and sort order) of a single recommendation within its specified group. The recommendations will be ordered in decreasing order of importance within a given group.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html sortKey` | A String containing the sort key for this recommendation. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder` | The Builder object, for chaining. |

### setSourceName

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

```
public ContentRecommendation.Builder setSourceName(@Nullable String source)
```

Sets the source application name for the recommendation.

If the source name is never set, or set to null, the application name retrieved from its package will be used by default.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html source` | A String containing the recommendation source name. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder` | The Builder object, for chaining. |

### setStatus

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

```
public ContentRecommendation.Builder setStatus(@ContentRecommendation.ContentStatus int contentStatus)
```

Sets the availability status for the content. This status indicates whether the referred content is ready to be consumed on the device, or if the user must first purchase, rent, subscribe to, or download the content.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.ContentStatus int contentStatus` | The status value for this content. Must be one of the predefined content status values (see the `CONTENT_STATUS_*` constants). |

### setText

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

```
public ContentRecommendation.Builder setText(@Nullable String description)
```

Sets the description text for the recommendation.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html description` | A String containing the recommendation description text. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder` | The Builder object, for chaining. |

### setTitle

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

```
public ContentRecommendation.Builder setTitle(String title)
```

Sets the content title for the recommendation.

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/lang/String.html title` | A String containing the recommendation content title. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/recommendation/app/ContentRecommendation.Builder` | The Builder object, for chaining. |