# UseCaseGroup.Builder

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

*** ** * ** ***


```
class UseCaseGroup.Builder
```

<br />

*** ** * ** ***

A builder for generating `https://developer.android.com/reference/kotlin/androidx/camera/core/UseCaseGroup`.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/camera/core/UseCaseGroup.Builder#Builder()()` |

| ### Public functions |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/camera/core/UseCaseGroup.Builder` | `https://developer.android.com/reference/kotlin/androidx/camera/core/UseCaseGroup.Builder#addEffect(androidx.camera.core.CameraEffect)(cameraEffect: https://developer.android.com/reference/kotlin/androidx/camera/core/CameraEffect)` Adds a `https://developer.android.com/reference/kotlin/androidx/camera/core/CameraEffect` to the collection. |
| `https://developer.android.com/reference/kotlin/androidx/camera/core/UseCaseGroup.Builder` | `https://developer.android.com/reference/kotlin/androidx/camera/core/UseCaseGroup.Builder#addUseCase(androidx.camera.core.UseCase)(useCase: https://developer.android.com/reference/kotlin/androidx/camera/core/UseCase)` Adds `https://developer.android.com/reference/kotlin/androidx/camera/core/UseCase` to the collection. |
| `https://developer.android.com/reference/kotlin/androidx/camera/core/UseCaseGroup` | `https://developer.android.com/reference/kotlin/androidx/camera/core/UseCaseGroup.Builder#build()()` Builds a `https://developer.android.com/reference/kotlin/androidx/camera/core/UseCaseGroup` from the current state. |
| `https://developer.android.com/reference/kotlin/androidx/camera/core/UseCaseGroup.Builder` | `https://developer.android.com/reference/kotlin/androidx/camera/core/UseCaseGroup.Builder#setViewPort(androidx.camera.core.ViewPort)(viewPort: https://developer.android.com/reference/kotlin/androidx/camera/core/ViewPort)` Sets `https://developer.android.com/reference/kotlin/androidx/camera/core/ViewPort` shared by the `https://developer.android.com/reference/kotlin/androidx/camera/core/UseCase`s. |

## Public constructors

### Builder

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

```
Builder()
```

## Public functions

### addEffect

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

```
fun addEffect(cameraEffect: CameraEffect): UseCaseGroup.Builder
```

Adds a `https://developer.android.com/reference/kotlin/androidx/camera/core/CameraEffect` to the collection.

The value of `https://developer.android.com/reference/kotlin/androidx/camera/core/CameraEffect#getTargets()` must be one of the supported values below:

- `https://developer.android.com/reference/kotlin/androidx/camera/core/CameraEffect#PREVIEW()`
- `https://developer.android.com/reference/kotlin/androidx/camera/core/CameraEffect#VIDEO_CAPTURE()`
- `https://developer.android.com/reference/kotlin/androidx/camera/core/CameraEffect#IMAGE_CAPTURE()`
- `https://developer.android.com/reference/kotlin/androidx/camera/core/CameraEffect#VIDEO_CAPTURE()` \| `https://developer.android.com/reference/kotlin/androidx/camera/core/CameraEffect#PREVIEW()`
- `https://developer.android.com/reference/kotlin/androidx/camera/core/CameraEffect#VIDEO_CAPTURE()` \| `https://developer.android.com/reference/kotlin/androidx/camera/core/CameraEffect#PREVIEW()` \| `https://developer.android.com/reference/kotlin/androidx/camera/core/CameraEffect#IMAGE_CAPTURE()`

The targets must be mutually exclusive of each other, otherwise, the `https://developer.android.com/reference/kotlin/androidx/camera/core/UseCaseGroup.Builder#build()` method will throw `https://developer.android.com/reference/java/lang/IllegalArgumentException.html`. For example, it's invalid to have one `https://developer.android.com/reference/kotlin/androidx/camera/core/CameraEffect` with target `https://developer.android.com/reference/kotlin/androidx/camera/core/CameraEffect#PREVIEW()` and another `https://developer.android.com/reference/kotlin/androidx/camera/core/CameraEffect` with target `https://developer.android.com/reference/kotlin/androidx/camera/core/CameraEffect#PREVIEW()` \| `https://developer.android.com/reference/kotlin/androidx/camera/core/CameraEffect#VIDEO_CAPTURE()`, since they both target `https://developer.android.com/reference/kotlin/androidx/camera/core/Preview`.

Once added, CameraX will use the `https://developer.android.com/reference/kotlin/androidx/camera/core/CameraEffect`s to process the outputs of the `https://developer.android.com/reference/kotlin/androidx/camera/core/UseCase`s.

### addUseCase

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

```
fun addUseCase(useCase: UseCase): UseCaseGroup.Builder
```

Adds `https://developer.android.com/reference/kotlin/androidx/camera/core/UseCase` to the collection.

### build

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

```
fun build(): UseCaseGroup
```

Builds a `https://developer.android.com/reference/kotlin/androidx/camera/core/UseCaseGroup` from the current state.

### setViewPort

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

```
fun setViewPort(viewPort: ViewPort): UseCaseGroup.Builder
```

Sets `https://developer.android.com/reference/kotlin/androidx/camera/core/ViewPort` shared by the `https://developer.android.com/reference/kotlin/androidx/camera/core/UseCase`s.