# ExtensionSessionConfig.Builder

Artifact: [androidx.camera:camera-extensions](https://developer.android.com/jetpack/androidx/releases/camera) [View Source](https://cs.android.com/search?q=file:androidx/camera/extensions/ExtensionSessionConfig.kt+class:androidx.camera.extensions.ExtensionSessionConfig.Builder) Added in [1.6.0](https://developer.android.com/jetpack/androidx/releases/camera#1.6.0)

*** ** * ** ***


```
public final class ExtensionSessionConfig.Builder
```

<br />

*** ** * ** ***

Builder for `https://developer.android.com/reference/androidx/camera/extensions/ExtensionSessionConfig`.

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/camera/extensions/ExtensionsManager#getInstanceAsync(android.content.Context,androidx.camera.core.CameraProvider)` |   |

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/camera/extensions/ExtensionSessionConfig.Builder#Builder(kotlin.Int,androidx.camera.extensions.ExtensionsManager)(int mode, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/camera/extensions/ExtensionsManager extensionsManager)` |

| ### Public methods |
|---|---|
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/camera/extensions/ExtensionSessionConfig.Builder` | `https://developer.android.com/reference/androidx/camera/extensions/ExtensionSessionConfig.Builder#addEffect(androidx.camera.core.CameraEffect)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/camera/core/CameraEffect effect)` Adds a `https://developer.android.com/reference/androidx/camera/core/CameraEffect` for the session. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/camera/extensions/ExtensionSessionConfig.Builder` | `https://developer.android.com/reference/androidx/camera/extensions/ExtensionSessionConfig.Builder#addUseCase(androidx.camera.core.UseCase)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/camera/core/UseCase useCase)` Adds a `https://developer.android.com/reference/androidx/camera/core/UseCase` to the session. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/camera/extensions/ExtensionSessionConfig` | `https://developer.android.com/reference/androidx/camera/extensions/ExtensionSessionConfig.Builder#build()()` Builds an `https://developer.android.com/reference/androidx/camera/extensions/ExtensionSessionConfig` from the current configuration. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/camera/extensions/ExtensionSessionConfig.Builder` | `https://developer.android.com/reference/androidx/camera/extensions/ExtensionSessionConfig.Builder#setAutoRotationEnabled(kotlin.Boolean)(boolean autoRotationEnabled)` Sets whether to use auto rotation. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/camera/extensions/ExtensionSessionConfig.Builder` | `https://developer.android.com/reference/androidx/camera/extensions/ExtensionSessionConfig.Builder#setViewPort(androidx.camera.core.ViewPort)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/camera/core/ViewPort viewPort)` Sets the `https://developer.android.com/reference/androidx/camera/core/ViewPort` for the session. |

## Public constructors

### Builder

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

```
public Builder(int mode, @NonNull ExtensionsManager extensionsManager)
```

| Parameters |
|---|---|
| `int mode` | The extension mode. See `https://developer.android.com/reference/androidx/camera/extensions/ExtensionMode` for the list of available modes. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/camera/extensions/ExtensionsManager extensionsManager` | The `https://developer.android.com/reference/androidx/camera/extensions/ExtensionsManager` instance. |

## Public methods

### addEffect

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

```
public final @NonNull ExtensionSessionConfig.Builder addEffect(@NonNull CameraEffect effect)
```

Adds a `https://developer.android.com/reference/androidx/camera/core/CameraEffect` for the session.

### addUseCase

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

```
public final @NonNull ExtensionSessionConfig.Builder addUseCase(@NonNull UseCase useCase)
```

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

### build

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

```
public final @NonNull ExtensionSessionConfig build()
```

Builds an `https://developer.android.com/reference/androidx/camera/extensions/ExtensionSessionConfig` from the current configuration.

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` | if the given mode is not a valid extension mode. |

### setAutoRotationEnabled

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

```
public final @NonNull ExtensionSessionConfig.Builder setAutoRotationEnabled(boolean autoRotationEnabled)
```

Sets whether to use auto rotation.

When enabled, CameraX will monitor the device motion sensor and set the target rotation for ImageCapture and VideoCapture.

### setViewPort

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

```
public final @NonNull ExtensionSessionConfig.Builder setViewPort(@NonNull ViewPort viewPort)
```

Sets the `https://developer.android.com/reference/androidx/camera/core/ViewPort` for the session.