# SessionObserverFactoryRegistry

# SessionObserverFactoryRegistry

Artifact:[androidx.privacysandbox.ui:ui-provider](https://developer.android.com/jetpack/androidx/releases/privacysandbox-ui)  
[View Source](https://cs.android.com/search?q=file:androidx/privacysandbox/ui/provider/SessionObserverFactoryRegistry.kt+class:androidx.privacysandbox.ui.provider.SessionObserverFactoryRegistry)  
Added in[1.0.0-alpha16](https://developer.android.com/jetpack/androidx/releases/privacysandbox-ui#1.0.0-alpha16)

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/privacysandbox/ui/provider/SessionObserverFactoryRegistry "View this page in Java")

<br />

```
interface SessionObserverFactoryRegistry
```

<br />

Known direct subclasses  
[AbstractSandboxedUiAdapter](https://developer.android.com/reference/kotlin/androidx/privacysandbox/ui/provider/AbstractSandboxedUiAdapter)  

|---------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [AbstractSandboxedUiAdapter](https://developer.android.com/reference/kotlin/androidx/privacysandbox/ui/provider/AbstractSandboxedUiAdapter) | An abstract class that implements[SandboxedUiAdapter](https://developer.android.com/reference/kotlin/androidx/privacysandbox/ui/core/SandboxedUiAdapter)while abstracting away methods that do not need to be implemented by a UI provider. |

*** ** * ** ***

## Summary

|                             ### Public functions                              |
|-------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html) | [addObserverFactory](https://developer.android.com/reference/kotlin/androidx/privacysandbox/ui/provider/SessionObserverFactoryRegistry#addObserverFactory(androidx.privacysandbox.ui.core.SessionObserverFactory))`(sessionObserverFactory: `[SessionObserverFactory](https://developer.android.com/reference/kotlin/androidx/privacysandbox/ui/core/SessionObserverFactory)`)` Adds a[SessionObserverFactory](https://developer.android.com/reference/kotlin/androidx/privacysandbox/ui/core/SessionObserverFactory)for tracking UI presentation state across UI sessions.                                                                                                                                                                                                             |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html) | [removeObserverFactory](https://developer.android.com/reference/kotlin/androidx/privacysandbox/ui/provider/SessionObserverFactoryRegistry#removeObserverFactory(androidx.privacysandbox.ui.core.SessionObserverFactory))`(sessionObserverFactory: `[SessionObserverFactory](https://developer.android.com/reference/kotlin/androidx/privacysandbox/ui/core/SessionObserverFactory)`)` Removes a[SessionObserverFactory](https://developer.android.com/reference/kotlin/androidx/privacysandbox/ui/core/SessionObserverFactory), if it has been previously added with[addObserverFactory](https://developer.android.com/reference/kotlin/androidx/privacysandbox/ui/provider/SessionObserverFactoryRegistry#addObserverFactory(androidx.privacysandbox.ui.core.SessionObserverFactory)). |

|                                                                                                     ### Public properties                                                                                                      |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [List](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html)`<`[SessionObserverFactory](https://developer.android.com/reference/kotlin/androidx/privacysandbox/ui/core/SessionObserverFactory)`>` | [sessionObserverFactories](https://developer.android.com/reference/kotlin/androidx/privacysandbox/ui/provider/SessionObserverFactoryRegistry#sessionObserverFactories()) |

## Public functions

### addObserverFactory

Added in[1.0.0-alpha16](https://developer.android.com/jetpack/androidx/releases/privacysandbox-ui#1.0.0-alpha16)  

```
fun addObserverFactory(sessionObserverFactory: SessionObserverFactory): Unit
```

Adds a[SessionObserverFactory](https://developer.android.com/reference/kotlin/androidx/privacysandbox/ui/core/SessionObserverFactory)for tracking UI presentation state across UI sessions. This has no effect on already open sessions.

For each session that is created for the adapter after this call returns,[SessionObserverFactory.create](https://developer.android.com/reference/kotlin/androidx/privacysandbox/ui/core/SessionObserverFactory#create())will be invoked to allow a new[SessionObserver](https://developer.android.com/reference/kotlin/androidx/privacysandbox/ui/core/SessionObserver)instance to be attached to the UI session. This[SessionObserver](https://developer.android.com/reference/kotlin/androidx/privacysandbox/ui/core/SessionObserver)will receive UI updates for the lifetime of the session. A separate[SessionObserverFactory.create](https://developer.android.com/reference/kotlin/androidx/privacysandbox/ui/core/SessionObserverFactory#create())call will be made for each UI session.  

### removeObserverFactory

Added in[1.0.0-alpha16](https://developer.android.com/jetpack/androidx/releases/privacysandbox-ui#1.0.0-alpha16)  

```
fun removeObserverFactory(sessionObserverFactory: SessionObserverFactory): Unit
```

Removes a[SessionObserverFactory](https://developer.android.com/reference/kotlin/androidx/privacysandbox/ui/core/SessionObserverFactory), if it has been previously added with[addObserverFactory](https://developer.android.com/reference/kotlin/androidx/privacysandbox/ui/provider/SessionObserverFactoryRegistry#addObserverFactory(androidx.privacysandbox.ui.core.SessionObserverFactory)).

If the[SessionObserverFactory](https://developer.android.com/reference/kotlin/androidx/privacysandbox/ui/core/SessionObserverFactory)was not previously added, no action is performed. Any existing[SessionObserver](https://developer.android.com/reference/kotlin/androidx/privacysandbox/ui/core/SessionObserver)instances that have been created by the[SessionObserverFactory](https://developer.android.com/reference/kotlin/androidx/privacysandbox/ui/core/SessionObserverFactory)will continue to receive updates until their corresponding UI session has been closed. For any subsequent sessions created\], no call to[SessionObserverFactory.create](https://developer.android.com/reference/kotlin/androidx/privacysandbox/ui/core/SessionObserverFactory#create())will be made.  

## Public properties

### sessionObserverFactories

Added in[1.0.0-alpha16](https://developer.android.com/jetpack/androidx/releases/privacysandbox-ui#1.0.0-alpha16)  

```
val sessionObserverFactories: List<SessionObserverFactory>
```