# Program.Builder

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

*** ** * ** ***


```
public class Program.Builder
```

<br />

*** ** * ** ***

This Builder class simplifies the creation of a `https://developer.android.com/reference/androidx/tvprovider/media/tv/Program` object.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/tvprovider/media/tv/Program.Builder#Builder()()` Creates a new Builder object. |
| `https://developer.android.com/reference/androidx/tvprovider/media/tv/Program.Builder#Builder(androidx.tvprovider.media.tv.Program)(https://developer.android.com/reference/androidx/tvprovider/media/tv/Program other)` Creates a new Builder object with values copied from another Program. |

| ### Public methods |
|---|---|
| `https://developer.android.com/reference/androidx/tvprovider/media/tv/Program` | `https://developer.android.com/reference/androidx/tvprovider/media/tv/Program.Builder#build()()` |
| `https://developer.android.com/reference/androidx/tvprovider/media/tv/Program.Builder` | `https://developer.android.com/reference/androidx/tvprovider/media/tv/Program.Builder#setBroadcastGenres(java.lang.String[])(String[] genres)` Sets the broadcast-specified genres of the program. |
| `https://developer.android.com/reference/androidx/tvprovider/media/tv/Program.Builder` | `https://developer.android.com/reference/androidx/tvprovider/media/tv/Program.Builder#setChannelId(long)(long channelId)` Sets the ID of the `https://developer.android.com/reference/androidx/tvprovider/media/tv/Channel` that contains this program. |
| `https://developer.android.com/reference/androidx/tvprovider/media/tv/Program.Builder` | `https://developer.android.com/reference/androidx/tvprovider/media/tv/Program.Builder#setEndTimeUtcMillis(long)(long endTimeUtcMillis)` Sets the time when this program is going to end in milliseconds since the epoch. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/tvprovider/media/tv/Program.Builder` | `https://developer.android.com/reference/androidx/tvprovider/media/tv/Program.Builder#setEventId(int)(int eventId)` Sets the event ID for this program. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/tvprovider/media/tv/Program.Builder` | `https://developer.android.com/reference/androidx/tvprovider/media/tv/Program.Builder#setGlobalContentId(java.lang.String)(@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/String.html globalContentId)` Sets the global content ID for this program. |
| `https://developer.android.com/reference/androidx/tvprovider/media/tv/Program.Builder` | `https://developer.android.com/reference/androidx/tvprovider/media/tv/Program.Builder#setRecordingProhibited(boolean)(boolean prohibited)` Sets whether this program cannot be recorded. |
| `https://developer.android.com/reference/androidx/tvprovider/media/tv/Program.Builder` | `https://developer.android.com/reference/androidx/tvprovider/media/tv/Program.Builder#setStartTimeUtcMillis(long)(long startTimeUtcMillis)` Sets the time when the program is going to begin in milliseconds since the epoch. |

## Public constructors

### Builder

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

```
public Builder()
```

Creates a new Builder object.

### Builder

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

```
public Builder(Program other)
```

Creates a new Builder object with values copied from another Program.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/tvprovider/media/tv/Program other` | The Program you're copying from. |

## Public methods

### build

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

```
public Program build()
```

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/tvprovider/media/tv/Program` | A new Program with values supplied by the Builder. |

### setBroadcastGenres

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

```
public Program.Builder setBroadcastGenres(String[] genres)
```

Sets the broadcast-specified genres of the program.

| Parameters |
|---|---|
| `String[] genres` | Array of genres that apply to the program based on the broadcast standard which will be flattened to a String to store in a database. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/tvprovider/media/tv/Program.Builder` | This Builder object to allow for chaining of calls to builder methods. |

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/tvprovider/media/tv/TvContractCompat.Programs#COLUMN_BROADCAST_GENRE()` |   |

### setChannelId

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

```
public Program.Builder setChannelId(long channelId)
```

Sets the ID of the `https://developer.android.com/reference/androidx/tvprovider/media/tv/Channel` that contains this program.

| Parameters |
|---|---|
| `long channelId` | The value of `https://developer.android.com/reference/androidx/tvprovider/media/tv/TvContractCompat.Programs#COLUMN_CHANNEL_ID()` |

### setEndTimeUtcMillis

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

```
public Program.Builder setEndTimeUtcMillis(long endTimeUtcMillis)
```

Sets the time when this program is going to end in milliseconds since the epoch.

| Parameters |
|---|---|
| `long endTimeUtcMillis` | The value of `https://developer.android.com/reference/androidx/tvprovider/media/tv/TvContractCompat.Programs#COLUMN_END_TIME_UTC_MILLIS()` for the program. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/tvprovider/media/tv/Program.Builder` | This Builder object to allow for chaining of calls to builder methods. |

### setEventId

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

```
public @NonNull Program.Builder setEventId(int eventId)
```

Sets the event ID for this program.

No-op on devices prior to `https://developer.android.com/reference/android/os/Build.VERSION_CODES.html#R`.

| Parameters |
|---|---|
| `int eventId` | The value of `https://developer.android.com/reference/androidx/tvprovider/media/tv/TvContractCompat.Programs#COLUMN_EVENT_ID()` for the program. |

| Returns |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/tvprovider/media/tv/Program.Builder` | This Builder object to allow for chaining of calls to builder methods. |

### setGlobalContentId

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

```
public @NonNull Program.Builder setGlobalContentId(@Nullable String globalContentId)
```

Sets the global content ID for this program.

No-op on devices prior to `https://developer.android.com/reference/android/os/Build.VERSION_CODES.html#R`.

| Parameters |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/java/lang/String.html globalContentId` | The value of `https://developer.android.com/reference/androidx/tvprovider/media/tv/TvContractCompat.Programs#COLUMN_GLOBAL_CONTENT_ID()` for the program. |

| Returns |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/tvprovider/media/tv/Program.Builder` | This Builder object to allow for chaining of calls to builder methods. |

### setRecordingProhibited

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

```
public Program.Builder setRecordingProhibited(boolean prohibited)
```

Sets whether this program cannot be recorded.

| Parameters |
|---|---|
| `boolean prohibited` | The value of `https://developer.android.com/reference/androidx/tvprovider/media/tv/TvContractCompat.Programs#COLUMN_RECORDING_PROHIBITED()` for the program. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/tvprovider/media/tv/Program.Builder` | This Builder object to allow for chaining of calls to builder methods. |

### setStartTimeUtcMillis

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

```
public Program.Builder setStartTimeUtcMillis(long startTimeUtcMillis)
```

Sets the time when the program is going to begin in milliseconds since the epoch.

| Parameters |
|---|---|
| `long startTimeUtcMillis` | The value of `https://developer.android.com/reference/androidx/tvprovider/media/tv/TvContractCompat.Programs#COLUMN_START_TIME_UTC_MILLIS()` for the program. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/tvprovider/media/tv/Program.Builder` | This Builder object to allow for chaining of calls to builder methods. |