# DownloadBuilder

Artifact: [androidx.media3:media3-test-utils](https://developer.android.com/jetpack/androidx/releases/media3) [View Source](https://cs.android.com/search?q=file:androidx/media3/test/utils/DownloadBuilder.java+class:androidx.media3.test.utils.DownloadBuilder)

*** ** * ** ***


```
@UnstableApi
public final class DownloadBuilder
```

<br />

*** ** * ** ***

Builder for `https://developer.android.com/reference/androidx/media3/exoplayer/offline/Download`.

Defines default values for each field (except `id`) to facilitate `https://developer.android.com/reference/androidx/media3/exoplayer/offline/Download` creation for tests. Tests must avoid depending on the default values but explicitly set tested parameters during test initialization.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/media3/test/utils/DownloadBuilder#DownloadBuilder(java.lang.String)(https://developer.android.com/reference/java/lang/String.html id)` Creates a download builder for "uri" and no stream keys. |
| `https://developer.android.com/reference/androidx/media3/test/utils/DownloadBuilder#DownloadBuilder(androidx.media3.exoplayer.offline.DownloadRequest)(https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloadRequest request)` Creates a download builder based on the attributes of the specified request. |

| ### Public methods |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/Download` | `https://developer.android.com/reference/androidx/media3/test/utils/DownloadBuilder#build()()` |
| `https://developer.android.com/reference/androidx/media3/test/utils/DownloadBuilder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/DownloadBuilder#setBytesDownloaded(long)(long bytesDownloaded)` |
| `https://developer.android.com/reference/androidx/media3/test/utils/DownloadBuilder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/DownloadBuilder#setCacheKey(java.lang.String)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html cacheKey)` |
| `https://developer.android.com/reference/androidx/media3/test/utils/DownloadBuilder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/DownloadBuilder#setContentLength(long)(long contentLength)` |
| `https://developer.android.com/reference/androidx/media3/test/utils/DownloadBuilder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/DownloadBuilder#setCustomMetadata(byte[])(byte[] customMetadata)` |
| `https://developer.android.com/reference/androidx/media3/test/utils/DownloadBuilder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/DownloadBuilder#setFailureReason(int)(int failureReason)` |
| `https://developer.android.com/reference/androidx/media3/test/utils/DownloadBuilder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/DownloadBuilder#setKeySetId(byte[])(byte[] keySetId)` |
| `https://developer.android.com/reference/androidx/media3/test/utils/DownloadBuilder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/DownloadBuilder#setMimeType(java.lang.String)(https://developer.android.com/reference/java/lang/String.html mimeType)` |
| `https://developer.android.com/reference/androidx/media3/test/utils/DownloadBuilder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/DownloadBuilder#setPercentDownloaded(float)(float percentDownloaded)` |
| `https://developer.android.com/reference/androidx/media3/test/utils/DownloadBuilder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/DownloadBuilder#setStartTimeMs(long)(long startTimeMs)` |
| `https://developer.android.com/reference/androidx/media3/test/utils/DownloadBuilder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/DownloadBuilder#setState(int)(@https://developer.android.com/reference/androidx/media3/exoplayer/offline/Download.State int state)` |
| `https://developer.android.com/reference/androidx/media3/test/utils/DownloadBuilder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/DownloadBuilder#setStopReason(int)(int stopReason)` |
| `https://developer.android.com/reference/androidx/media3/test/utils/DownloadBuilder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/DownloadBuilder#setStreamKeys(androidx.media3.common.StreamKey...)(StreamKey[] streamKeys)` |
| `https://developer.android.com/reference/androidx/media3/test/utils/DownloadBuilder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/DownloadBuilder#setUpdateTimeMs(long)(long updateTimeMs)` |
| `https://developer.android.com/reference/androidx/media3/test/utils/DownloadBuilder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/DownloadBuilder#setUri(java.lang.String)(https://developer.android.com/reference/java/lang/String.html uri)` |
| `https://developer.android.com/reference/androidx/media3/test/utils/DownloadBuilder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/test/utils/DownloadBuilder#setUri(android.net.Uri)(https://developer.android.com/reference/android/net/Uri.html uri)` |

## Public constructors

### DownloadBuilder

```
public DownloadBuilder(String id)
```

Creates a download builder for "uri" and no stream keys.

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/lang/String.html id` | The unique content identifier for the download. |

### DownloadBuilder

```
public DownloadBuilder(DownloadRequest request)
```

Creates a download builder based on the attributes of the specified request.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloadRequest request` | A `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloadRequest` defining the content to download. |

## Public methods

### build

```
public Download build()
```

### setBytesDownloaded

```
@CanIgnoreReturnValue
public DownloadBuilder setBytesDownloaded(long bytesDownloaded)
```

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloadProgress#bytesDownloaded()` |   |

### setCacheKey

```
@CanIgnoreReturnValue
public DownloadBuilder setCacheKey(@Nullable String cacheKey)
```

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloadRequest#customCacheKey()` |   |

### setContentLength

```
@CanIgnoreReturnValue
public DownloadBuilder setContentLength(long contentLength)
```

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/Download#contentLength()` |   |

### setCustomMetadata

```
@CanIgnoreReturnValue
public DownloadBuilder setCustomMetadata(byte[] customMetadata)
```

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloadRequest#data()` |   |

### setFailureReason

```
@CanIgnoreReturnValue
public DownloadBuilder setFailureReason(int failureReason)
```

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/Download#failureReason()` |   |

### setKeySetId

```
@CanIgnoreReturnValue
public DownloadBuilder setKeySetId(byte[] keySetId)
```

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloadRequest#keySetId()` |   |

### setMimeType

```
@CanIgnoreReturnValue
public DownloadBuilder setMimeType(String mimeType)
```

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloadRequest#mimeType()` |   |

### setPercentDownloaded

```
@CanIgnoreReturnValue
public DownloadBuilder setPercentDownloaded(float percentDownloaded)
```

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloadProgress#percentDownloaded()` |   |

### setStartTimeMs

```
@CanIgnoreReturnValue
public DownloadBuilder setStartTimeMs(long startTimeMs)
```

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/Download#startTimeMs()` |   |

### setState

```
@CanIgnoreReturnValue
public DownloadBuilder setState(@Download.State int state)
```

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/Download#state()` |   |

### setStopReason

```
@CanIgnoreReturnValue
public DownloadBuilder setStopReason(int stopReason)
```

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/Download#stopReason()` |   |

### setStreamKeys

```
@CanIgnoreReturnValue
public DownloadBuilder setStreamKeys(StreamKey[] streamKeys)
```

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloadRequest#streamKeys()` |   |

### setUpdateTimeMs

```
@CanIgnoreReturnValue
public DownloadBuilder setUpdateTimeMs(long updateTimeMs)
```

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/Download#updateTimeMs()` |   |

### setUri

```
@CanIgnoreReturnValue
public DownloadBuilder setUri(String uri)
```

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloadRequest#uri()` |   |

### setUri

```
@CanIgnoreReturnValue
public DownloadBuilder setUri(Uri uri)
```

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/offline/DownloadRequest#uri()` |   |