SplitControllerCallbackAdapter


@ExperimentalWindowApi
class SplitControllerCallbackAdapter


An adapted interface for SplitController that provides callback shaped APIs to report the latest split information with SplitInfo list.

It should only be used if SplitController.splitInfoList is not available. For example, an app is written in Java and cannot use Flow APIs.

Summary

Public constructors

Public functions

Unit
addSplitListener(
    activity: Activity,
    executor: Executor,
    consumer: Consumer<List<SplitInfo>>
)

Registers a listener for updates about the active split state(s) that this activity is part of.

Unit

Unregisters a listener that was previously registered via addSplitListener.

Public constructors

SplitControllerCallbackAdapter

Added in 1.1.0
SplitControllerCallbackAdapter(controller: SplitController)

Public functions

addSplitListener

Added in 1.1.0
fun addSplitListener(
    activity: Activity,
    executor: Executor,
    consumer: Consumer<List<SplitInfo>>
): Unit

Registers a listener for updates about the active split state(s) that this activity is part of. An activity can be in zero, one or more active splits. More than one active split is possible if an activity created multiple containers to side, stacked on top of each other. Or it can be in two different splits at the same time - in a secondary container for one (it was launched to the side) and in the primary for another (it launched another activity to the side). The reported splits in the list are ordered from bottom to top by their z-order, more recent splits appearing later. Guaranteed to be called at least once to report the most recent state.

Parameters
activity: Activity

only split that this Activity is part of will be reported.

executor: Executor

when there is an update to the active split state(s), the consumer will be invoked on this Executor.

consumer: Consumer<List<SplitInfo>>

Consumer that will be invoked on the executor when there is an update to the active split state(s).

removeSplitListener

Added in 1.1.0
fun removeSplitListener(consumer: Consumer<List<SplitInfo>>): Unit

Unregisters a listener that was previously registered via addSplitListener.

Parameters
consumer: Consumer<List<SplitInfo>>

the previously registered Consumer to unregister.