# CallControlResult

# CallControlResult

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

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/core/telecom/CallControlResult "View this page in Java")

<br />

```
sealed class CallControlResult
```

<br />

Known direct subclasses  
[CallControlResult.Error](https://developer.android.com/reference/kotlin/androidx/core/telecom/CallControlResult.Error),[CallControlResult.Success](https://developer.android.com/reference/kotlin/androidx/core/telecom/CallControlResult.Success)  

|-----------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------|
| [CallControlResult.Error](https://developer.android.com/reference/kotlin/androidx/core/telecom/CallControlResult.Error)     | The associated[CallControlScope](https://developer.android.com/reference/kotlin/androidx/core/telecom/CallControlScope)method failed.         |
| [CallControlResult.Success](https://developer.android.com/reference/kotlin/androidx/core/telecom/CallControlResult.Success) | The associated[CallControlScope](https://developer.android.com/reference/kotlin/androidx/core/telecom/CallControlScope)method was successful. |

*** ** * ** ***

CallControlResult is a return value that represents the result of one of the following[CallControlScope](https://developer.android.com/reference/kotlin/androidx/core/telecom/CallControlScope)methods:

- [CallControlScope.setActive](https://developer.android.com/reference/kotlin/androidx/core/telecom/CallControlScope#setActive())

- [CallControlScope.answer](https://developer.android.com/reference/kotlin/androidx/core/telecom/CallControlScope#answer(kotlin.Int))

- [CallControlScope.disconnect](https://developer.android.com/reference/kotlin/androidx/core/telecom/CallControlScope#disconnect(android.telecom.DisconnectCause))

- [CallControlScope.setInactive](https://developer.android.com/reference/kotlin/androidx/core/telecom/CallControlScope#setInactive())

- [CallControlScope.requestEndpointChange](https://developer.android.com/reference/kotlin/androidx/core/telecom/CallControlScope#requestEndpointChange(androidx.core.telecom.CallEndpointCompat))

Each of the above listed methods has the ability to fail and if it does, this will be represented by a[CallControlResult.Error](https://developer.android.com/reference/kotlin/androidx/core/telecom/CallControlResult.Error)(e.g. Telecom was not able to change the call route via requestEndpointChange). Otherwise,[CallControlResult.Success](https://developer.android.com/reference/kotlin/androidx/core/telecom/CallControlResult.Success)is returned to represent the operation succeeded (e.g Telecom was able to set the call active).

Example usage:  

```kotlin
launch {
    when(val result = setActive()) {
      is CallControlResult.Success -> {
          Log.d(TAG, "onSetActive - ${result}")
          // move call to active state locally
      }
      is CallControlResult.Failure -> {
          Log.w(TAG, "onSetActive - ${result}")
         // surface error to user if required
      }
}
```

## Summary

|                                                                                                                                                                                         ### Nested types                                                                                                                                                                                          |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `class `[CallControlResult.Error](https://developer.android.com/reference/kotlin/androidx/core/telecom/CallControlResult.Error)` : `[CallControlResult](https://developer.android.com/reference/kotlin/androidx/core/telecom/CallControlResult) The associated[CallControlScope](https://developer.android.com/reference/kotlin/androidx/core/telecom/CallControlScope)method failed.             |
| `class `[CallControlResult.Success](https://developer.android.com/reference/kotlin/androidx/core/telecom/CallControlResult.Success)` : `[CallControlResult](https://developer.android.com/reference/kotlin/androidx/core/telecom/CallControlResult) The associated[CallControlScope](https://developer.android.com/reference/kotlin/androidx/core/telecom/CallControlScope)method was successful. |

|                                                     ### Protected constructors                                                      |
|-------------------------------------------------------------------------------------------------------------------------------------|
| [CallControlResult](https://developer.android.com/reference/kotlin/androidx/core/telecom/CallControlResult#CallControlResult())`()` |

## Protected constructors

### CallControlResult

```
protected CallControlResult()
```