# ActivityEmbeddingControllerCallbackAdapter

# ActivityEmbeddingControllerCallbackAdapter

Artifact:[androidx.window:window-java](https://developer.android.com/jetpack/androidx/releases/window)  
[View Source](https://cs.android.com/search?q=file:androidx/window/java/embedding/ActivityEmbeddingControllerCallbackAdapter.kt+class:androidx.window.java.embedding.ActivityEmbeddingControllerCallbackAdapter)  
Added in[1.4.0](https://developer.android.com/jetpack/androidx/releases/window#1.4.0)

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/window/java/embedding/ActivityEmbeddingControllerCallbackAdapter "View this page in Java")

<br />

```
class ActivityEmbeddingControllerCallbackAdapter
```

<br />

*** ** * ** ***

An adapted interface for[ActivityEmbeddingController](https://developer.android.com/reference/kotlin/androidx/window/embedding/ActivityEmbeddingController)that provides callback shaped APIs to report the latest[EmbeddedActivityWindowInfo](https://developer.android.com/reference/kotlin/androidx/window/embedding/EmbeddedActivityWindowInfo).

It should only be used if[ActivityEmbeddingController.embeddedActivityWindowInfo](https://developer.android.com/reference/kotlin/androidx/window/embedding/ActivityEmbeddingController#embeddedActivityWindowInfo(android.app.Activity))is not available. For example, an app is written in Java and cannot use Flow APIs.

## Summary

|                                                                                                                                                                                                                                                                                                                                 ### Public constructors                                                                                                                                                                                                                                                                                                                                  |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [ActivityEmbeddingControllerCallbackAdapter](https://developer.android.com/reference/kotlin/androidx/window/java/embedding/ActivityEmbeddingControllerCallbackAdapter#ActivityEmbeddingControllerCallbackAdapter(androidx.window.embedding.ActivityEmbeddingController))`(` ` controller: `[ActivityEmbeddingController](https://developer.android.com/reference/kotlin/androidx/window/embedding/ActivityEmbeddingController) `)` creates a callback adapter of[ActivityEmbeddingController.embeddedActivityWindowInfo](https://developer.android.com/reference/kotlin/androidx/window/embedding/ActivityEmbeddingController#embeddedActivityWindowInfo(android.app.Activity))flow API. |

|                             ### Public functions                              |
|-------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html) | `@`[RequiresWindowSdkExtension](https://developer.android.com/reference/kotlin/androidx/window/RequiresWindowSdkExtension)`(version = 6)` [addEmbeddedActivityWindowInfoListener](https://developer.android.com/reference/kotlin/androidx/window/java/embedding/ActivityEmbeddingControllerCallbackAdapter#addEmbeddedActivityWindowInfoListener(android.app.Activity,java.util.concurrent.Executor,androidx.core.util.Consumer))`(` ` activity: `[Activity](https://developer.android.com/reference/android/app/Activity.html)`,` ` executor: `[Executor](https://developer.android.com/reference/java/util/concurrent/Executor.html)`,` ` listener: `[Consumer](https://developer.android.com/reference/kotlin/androidx/core/util/Consumer)`<`[EmbeddedActivityWindowInfo](https://developer.android.com/reference/kotlin/androidx/window/embedding/EmbeddedActivityWindowInfo)`>` `)` Registers a listener for updates of[EmbeddedActivityWindowInfo](https://developer.android.com/reference/kotlin/androidx/window/embedding/EmbeddedActivityWindowInfo)of[activity](https://developer.android.com/reference/kotlin/androidx/window/java/embedding/ActivityEmbeddingControllerCallbackAdapter#addEmbeddedActivityWindowInfoListener(android.app.Activity,java.util.concurrent.Executor,androidx.core.util.Consumer)). |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html) | `@`[RequiresWindowSdkExtension](https://developer.android.com/reference/kotlin/androidx/window/RequiresWindowSdkExtension)`(version = 6)` [removeEmbeddedActivityWindowInfoListener](https://developer.android.com/reference/kotlin/androidx/window/java/embedding/ActivityEmbeddingControllerCallbackAdapter#removeEmbeddedActivityWindowInfoListener(androidx.core.util.Consumer))`(` ` listener: `[Consumer](https://developer.android.com/reference/kotlin/androidx/core/util/Consumer)`<`[EmbeddedActivityWindowInfo](https://developer.android.com/reference/kotlin/androidx/window/embedding/EmbeddedActivityWindowInfo)`>` `)` Unregisters a listener that was previously registered via[addEmbeddedActivityWindowInfoListener](https://developer.android.com/reference/kotlin/androidx/window/java/embedding/ActivityEmbeddingControllerCallbackAdapter#addEmbeddedActivityWindowInfoListener(android.app.Activity,java.util.concurrent.Executor,androidx.core.util.Consumer)).                                                                                                                                                                                                                                                                                                                                   |

## Public constructors

### ActivityEmbeddingControllerCallbackAdapter

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

```
ActivityEmbeddingControllerCallbackAdapter(
    controller: ActivityEmbeddingController
)
```

creates a callback adapter of[ActivityEmbeddingController.embeddedActivityWindowInfo](https://developer.android.com/reference/kotlin/androidx/window/embedding/ActivityEmbeddingController#embeddedActivityWindowInfo(android.app.Activity))flow API.  

|                                                                    Parameters                                                                     |
|---------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `controller: `[ActivityEmbeddingController](https://developer.android.com/reference/kotlin/androidx/window/embedding/ActivityEmbeddingController) | an[ActivityEmbeddingController](https://developer.android.com/reference/kotlin/androidx/window/embedding/ActivityEmbeddingController)that can be obtained by[ActivityEmbeddingController.getInstance](https://developer.android.com/reference/kotlin/androidx/window/embedding/ActivityEmbeddingController#getInstance(android.content.Context)). |

## Public functions

### addEmbeddedActivityWindowInfoListener

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

```
@RequiresWindowSdkExtension(version = 6)
fun addEmbeddedActivityWindowInfoListener(
    activity: Activity,
    executor: Executor,
    listener: Consumer<EmbeddedActivityWindowInfo>
): Unit
```

Registers a listener for updates of[EmbeddedActivityWindowInfo](https://developer.android.com/reference/kotlin/androidx/window/embedding/EmbeddedActivityWindowInfo)of[activity](https://developer.android.com/reference/kotlin/androidx/window/java/embedding/ActivityEmbeddingControllerCallbackAdapter#addEmbeddedActivityWindowInfoListener(android.app.Activity,java.util.concurrent.Executor,androidx.core.util.Consumer)).

The[listener](https://developer.android.com/reference/kotlin/androidx/window/java/embedding/ActivityEmbeddingControllerCallbackAdapter#addEmbeddedActivityWindowInfoListener(android.app.Activity,java.util.concurrent.Executor,androidx.core.util.Consumer))will immediately be invoked with the latest value upon registration if the[activity](https://developer.android.com/reference/kotlin/androidx/window/java/embedding/ActivityEmbeddingControllerCallbackAdapter#addEmbeddedActivityWindowInfoListener(android.app.Activity,java.util.concurrent.Executor,androidx.core.util.Consumer))is currently embedded as[EmbeddedActivityWindowInfo.isEmbedded](https://developer.android.com/reference/kotlin/androidx/window/embedding/EmbeddedActivityWindowInfo#isEmbedded())is`true`.

When the[activity](https://developer.android.com/reference/kotlin/androidx/window/java/embedding/ActivityEmbeddingControllerCallbackAdapter#addEmbeddedActivityWindowInfoListener(android.app.Activity,java.util.concurrent.Executor,androidx.core.util.Consumer))is embedded, the[listener](https://developer.android.com/reference/kotlin/androidx/window/java/embedding/ActivityEmbeddingControllerCallbackAdapter#addEmbeddedActivityWindowInfoListener(android.app.Activity,java.util.concurrent.Executor,androidx.core.util.Consumer))will be invoked when[EmbeddedActivityWindowInfo](https://developer.android.com/reference/kotlin/androidx/window/embedding/EmbeddedActivityWindowInfo)is changed. When the[activity](https://developer.android.com/reference/kotlin/androidx/window/java/embedding/ActivityEmbeddingControllerCallbackAdapter#addEmbeddedActivityWindowInfoListener(android.app.Activity,java.util.concurrent.Executor,androidx.core.util.Consumer))is not embedded, the[listener](https://developer.android.com/reference/kotlin/androidx/window/java/embedding/ActivityEmbeddingControllerCallbackAdapter#addEmbeddedActivityWindowInfoListener(android.app.Activity,java.util.concurrent.Executor,androidx.core.util.Consumer))will not be triggered unless the[activity](https://developer.android.com/reference/kotlin/androidx/window/java/embedding/ActivityEmbeddingControllerCallbackAdapter#addEmbeddedActivityWindowInfoListener(android.app.Activity,java.util.concurrent.Executor,androidx.core.util.Consumer))is becoming non-embedded from embedded.

Note that this API is only supported on the device with[WindowSdkExtensions.extensionVersion](https://developer.android.com/reference/kotlin/androidx/window/WindowSdkExtensions#extensionVersion())equal to or larger than 6. If[WindowSdkExtensions.extensionVersion](https://developer.android.com/reference/kotlin/androidx/window/WindowSdkExtensions#extensionVersion())is less than 6, this[listener](https://developer.android.com/reference/kotlin/androidx/window/java/embedding/ActivityEmbeddingControllerCallbackAdapter#addEmbeddedActivityWindowInfoListener(android.app.Activity,java.util.concurrent.Executor,androidx.core.util.Consumer))will not be invoked.  

|                                                                                                                Parameters                                                                                                                 |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `activity: `[Activity](https://developer.android.com/reference/android/app/Activity.html)                                                                                                                                                 | the[Activity](https://developer.android.com/reference/android/app/Activity.html)that is interested in getting the embedded window info.                                                                                                                                                                                                                                                                                                                                                                                                    |
| `executor: `[Executor](https://developer.android.com/reference/java/util/concurrent/Executor.html)                                                                                                                                        | the[Executor](https://developer.android.com/reference/java/util/concurrent/Executor.html)to dispatch the[EmbeddedActivityWindowInfo](https://developer.android.com/reference/kotlin/androidx/window/embedding/EmbeddedActivityWindowInfo)change.                                                                                                                                                                                                                                                                                           |
| `listener: `[Consumer](https://developer.android.com/reference/kotlin/androidx/core/util/Consumer)`<`[EmbeddedActivityWindowInfo](https://developer.android.com/reference/kotlin/androidx/window/embedding/EmbeddedActivityWindowInfo)`>` | the[Consumer](https://developer.android.com/reference/kotlin/androidx/core/util/Consumer)that will be invoked on the[executor](https://developer.android.com/reference/kotlin/androidx/window/java/embedding/ActivityEmbeddingControllerCallbackAdapter#addEmbeddedActivityWindowInfoListener(android.app.Activity,java.util.concurrent.Executor,androidx.core.util.Consumer))when there is an update to[EmbeddedActivityWindowInfo](https://developer.android.com/reference/kotlin/androidx/window/embedding/EmbeddedActivityWindowInfo). |

### removeEmbeddedActivityWindowInfoListener

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

```
@RequiresWindowSdkExtension(version = 6)
fun removeEmbeddedActivityWindowInfoListener(
    listener: Consumer<EmbeddedActivityWindowInfo>
): Unit
```

Unregisters a listener that was previously registered via[addEmbeddedActivityWindowInfoListener](https://developer.android.com/reference/kotlin/androidx/window/java/embedding/ActivityEmbeddingControllerCallbackAdapter#addEmbeddedActivityWindowInfoListener(android.app.Activity,java.util.concurrent.Executor,androidx.core.util.Consumer)).

It's no-op if the[listener](https://developer.android.com/reference/kotlin/androidx/window/java/embedding/ActivityEmbeddingControllerCallbackAdapter#removeEmbeddedActivityWindowInfoListener(androidx.core.util.Consumer))has not been registered.  

|                                                                                                                Parameters                                                                                                                 |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------|
| `listener: `[Consumer](https://developer.android.com/reference/kotlin/androidx/core/util/Consumer)`<`[EmbeddedActivityWindowInfo](https://developer.android.com/reference/kotlin/androidx/window/embedding/EmbeddedActivityWindowInfo)`>` | the previously registered[Consumer](https://developer.android.com/reference/kotlin/androidx/core/util/Consumer)to unregister. |