# AuthTabCallback

Artifact: [androidx.browser:browser](https://developer.android.com/jetpack/androidx/releases/browser) [View Source](https://cs.android.com/search?q=file:androidx/browser/auth/AuthTabCallback.java+class:androidx.browser.auth.AuthTabCallback) Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/browser#1.9.0)

*** ** * ** ***

<br />

```
interface AuthTabCallback
```

<br />

*** ** * ** ***

A callback class for Auth Tab clients to get messages regarding events in their Auth Tabs. In the implementation, all callbacks are sent to the `https://developer.android.com/reference/java/util/concurrent/Executor.html` provided by the client to `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsClient#newAuthTabSession(androidx.browser.auth.AuthTabCallback,java.util.concurrent.Executor)` or its UI thread if one is not provided.

## Summary

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/browser/auth/AuthTabCallback#onExtraCallback(java.lang.String,android.os.Bundle)(callbackName: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, args: https://developer.android.com/reference/android/os/Bundle.html)` Unsupported callbacks that may be provided by the implementation. |
| `https://developer.android.com/reference/android/os/Bundle.html` | `https://developer.android.com/reference/kotlin/androidx/browser/auth/AuthTabCallback#onExtraCallbackWithResult(java.lang.String,android.os.Bundle)(callbackName: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, args: https://developer.android.com/reference/android/os/Bundle.html)` The same as `https://developer.android.com/reference/kotlin/androidx/browser/auth/AuthTabCallback#onExtraCallback(java.lang.String,android.os.Bundle)`, except that this method allows the Auth Tab provider to return a result. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/browser/auth/AuthTabCallback#onNavigationEvent(int,android.os.Bundle)(navigationEvent: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, extras: https://developer.android.com/reference/android/os/Bundle.html)` To be called when a navigation event happens. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/browser/auth/AuthTabCallback#onWarmupCompleted(android.os.Bundle)(extras: https://developer.android.com/reference/android/os/Bundle.html)` Called when the browser process finished warming up initiated by warmup. |

## Public functions

### onExtraCallback

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

```
fun onExtraCallback(callbackName: String, args: Bundle): Unit
```

Unsupported callbacks that may be provided by the implementation.

**Note:** Clients should **never** rely on this callback to be called and/or to have a defined behavior, as it is entirely implementation-defined and not supported.

This can be used by implementations to add extra callbacks, for testing or experimental purposes.

| Parameters |
|---|---|
| `callbackName: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | Name of the extra callback. |
| `args: https://developer.android.com/reference/android/os/Bundle.html` | Arguments for the callback |

### onExtraCallbackWithResult

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

```
fun onExtraCallbackWithResult(callbackName: String, args: Bundle): Bundle
```

The same as `https://developer.android.com/reference/kotlin/androidx/browser/auth/AuthTabCallback#onExtraCallback(java.lang.String,android.os.Bundle)`, except that this method allows the Auth Tab provider to return a result. A return value of `https://developer.android.com/reference/android/os/Bundle.html#EMPTY` will be used to signify that the client does not know how to handle the callback. As optional best practices, `https://developer.android.com/reference/kotlin/androidx/browser/customtabs/CustomTabsService#KEY_SUCCESS()` could be use to identify that callback was \*successfully\* handled. For example, when returning a message with result:

```kotlin
    Bundle result = new Bundle();
    result.putString("message", message);
    if (success)
        result.putBoolean(CustomTabsService#KEY_SUCCESS, true);
    return result;
```
The caller side:

```kotlin
    Bundle result = extraCallbackWithResult(callbackName, args);
    if (result.getBoolean(CustomTabsService#KEY_SUCCESS)) {
        // callback was successfully handled
    }
```

### onNavigationEvent

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

```
fun onNavigationEvent(navigationEvent: Int, extras: Bundle): Unit
```

To be called when a navigation event happens.

| Parameters |
|---|---|
| `navigationEvent: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The code corresponding to the navigation event. |
| `extras: https://developer.android.com/reference/android/os/Bundle.html` | Reserved for future use. |

### onWarmupCompleted

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

```
fun onWarmupCompleted(extras: Bundle): Unit
```

Called when the browser process finished warming up initiated by warmup.

| Parameters |
|---|---|
| `extras: https://developer.android.com/reference/android/os/Bundle.html` | Reserved for future use. |