# Program

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) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/tvprovider#1.1.0)

*** ** * ** ***


```
class Program : Comparable<Program!>
```

<br />

*** ** * ** ***

A convenience class to access `https://developer.android.com/reference/kotlin/androidx/tvprovider/media/tv/TvContractCompat.Programs` entries in the system content provider.

This class makes it easy to insert or retrieve a program from the system content provider, which is defined in `https://developer.android.com/reference/kotlin/androidx/tvprovider/media/tv/TvContractCompat`.

Usage example when inserting a program:

```kotlin
Program program = new Program.Builder()
        .setChannelId(channel.getId())
        .setTitle("Program Title")
        .setDescription("Program Description")
        .setPosterArtUri(Uri.parse("http://example.com/poster_art.png"))
        // Set more attributes...
        .build();
Uri programUri = getContentResolver().insert(Programs.CONTENT_URI, program.toContentValues());
```

Usage example when retrieving a program:

```kotlin
Program program;
try (Cursor cursor = resolver.query(programUri, null, null, null, null)) {
    if (cursor != null && cursor.getCount() != 0) {
        cursor.moveToNext();
        program = Program.fromCursor(cursor);
    }
}
```

Usage example when updating an existing program:

```kotlin
Program updatedProgram = new Program.Builder(program)
        .setEndTimeUtcMillis(newProgramEndTime)
        .build();
getContentResolver().update(TvContractCompat.buildProgramUri(updatedProgram.getId()),
        updatedProgram.toContentValues(), null, null);
```

Usage example when deleting a program:

```kotlin
getContentResolver().delete(TvContractCompat.buildProgramUri(existingProgram.getId()),
        null, null);
```

## Summary

| ### Nested types |
|---|
| `class https://developer.android.com/reference/kotlin/androidx/tvprovider/media/tv/Program.Builder` This Builder class simplifies the creation of a `https://developer.android.com/reference/kotlin/androidx/tvprovider/media/tv/Program` object. |

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/tvprovider/media/tv/Program#compareTo(androidx.tvprovider.media.tv.Program)(other: https://developer.android.com/reference/kotlin/androidx/tvprovider/media/tv/Program)` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/tvprovider/media/tv/Program#equals(java.lang.Object)(other: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html!)` |
| `java-static https://developer.android.com/reference/kotlin/androidx/tvprovider/media/tv/Program!` | `https://developer.android.com/reference/kotlin/androidx/tvprovider/media/tv/Program#fromCursor(android.database.Cursor)(cursor: https://developer.android.com/reference/android/database/Cursor.html!)` Creates a Program object from a cursor including the fields defined in `https://developer.android.com/reference/kotlin/androidx/tvprovider/media/tv/TvContractCompat.Programs`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!>!` | `https://developer.android.com/reference/kotlin/androidx/tvprovider/media/tv/Program#getBroadcastGenres()()` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `https://developer.android.com/reference/kotlin/androidx/tvprovider/media/tv/Program#getChannelId()()` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `https://developer.android.com/reference/kotlin/androidx/tvprovider/media/tv/Program#getEndTimeUtcMillis()()` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/tvprovider/media/tv/Program#getEventId()()` Returns the value of `https://developer.android.com/reference/kotlin/androidx/tvprovider/media/tv/TvContractCompat.Programs#COLUMN_EVENT_ID()` for the program. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?` | `https://developer.android.com/reference/kotlin/androidx/tvprovider/media/tv/Program#getGlobalContentId()()` Returns the value of `https://developer.android.com/reference/kotlin/androidx/tvprovider/media/tv/TvContractCompat.Programs#COLUMN_GLOBAL_CONTENT_ID()` for the program. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `https://developer.android.com/reference/kotlin/androidx/tvprovider/media/tv/Program#getStartTimeUtcMillis()()` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/tvprovider/media/tv/Program#hashCode()()` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/tvprovider/media/tv/Program#isRecordingProhibited()()` |
| `https://developer.android.com/reference/android/content/ContentValues.html!` | `https://developer.android.com/reference/kotlin/androidx/tvprovider/media/tv/Program#toContentValues()()` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!` | `https://developer.android.com/reference/kotlin/androidx/tvprovider/media/tv/Program#toString()()` |

## Public functions

### compareTo

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

```
fun compareTo(other: Program): Int
```

| Parameters |
|---|---|
| `other: https://developer.android.com/reference/kotlin/androidx/tvprovider/media/tv/Program` | The program you're comparing to. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The chronological order of the programs. |

### equals

```
fun equals(other: Any!): Boolean
```

### fromCursor

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

```
java-static fun fromCursor(cursor: Cursor!): Program!
```

Creates a Program object from a cursor including the fields defined in `https://developer.android.com/reference/kotlin/androidx/tvprovider/media/tv/TvContractCompat.Programs`.

| Parameters |
|---|---|
| `cursor: https://developer.android.com/reference/android/database/Cursor.html!` | A row from the TV Input Framework database. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/tvprovider/media/tv/Program!` | A Program with the values taken from the cursor. |

### getBroadcastGenres

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

```
fun getBroadcastGenres(): Array<String!>!
```

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-array/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!>!` | The value of `https://developer.android.com/reference/kotlin/androidx/tvprovider/media/tv/TvContractCompat.Programs#COLUMN_BROADCAST_GENRE()` for the program. |

### getChannelId

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

```
fun getChannelId(): Long
```

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The value of `https://developer.android.com/reference/kotlin/androidx/tvprovider/media/tv/TvContractCompat.Programs#COLUMN_CHANNEL_ID()` for the program. |

### getEndTimeUtcMillis

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

```
fun getEndTimeUtcMillis(): Long
```

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The value of `https://developer.android.com/reference/kotlin/androidx/tvprovider/media/tv/TvContractCompat.Programs#COLUMN_END_TIME_UTC_MILLIS()` for the program. |

### getEventId

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

```
fun getEventId(): Int
```

Returns the value of `https://developer.android.com/reference/kotlin/androidx/tvprovider/media/tv/TvContractCompat.Programs#COLUMN_EVENT_ID()` for the program.

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

### getGlobalContentId

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

```
fun getGlobalContentId(): String?
```

Returns the value of `https://developer.android.com/reference/kotlin/androidx/tvprovider/media/tv/TvContractCompat.Programs#COLUMN_GLOBAL_CONTENT_ID()` for the program.

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

### getStartTimeUtcMillis

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

```
fun getStartTimeUtcMillis(): Long
```

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The value of `https://developer.android.com/reference/kotlin/androidx/tvprovider/media/tv/TvContractCompat.Programs#COLUMN_START_TIME_UTC_MILLIS()` for the program. |

### hashCode

```
fun hashCode(): Int
```

### isRecordingProhibited

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

```
fun isRecordingProhibited(): Boolean
```

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | The value of `https://developer.android.com/reference/kotlin/androidx/tvprovider/media/tv/TvContractCompat.Programs#COLUMN_RECORDING_PROHIBITED()` for the program. |

### toContentValues

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

```
fun toContentValues(): ContentValues!
```

| Returns |
|---|---|
| `https://developer.android.com/reference/android/content/ContentValues.html!` | The fields of the Program in the ContentValues format to be easily inserted into the TV Input Framework database. |

### toString

```
fun toString(): String!
```