ObservableMutableList

class ObservableMutableList<T> @JvmOverloads constructor(initial: Iterable<T> = emptyList()) : AbstractObservable<List<T>> , ObservableList<T>

A mutable observable list implementation, which allows for observing changes to the list and provides notifications when its contents are modified. This class supports addition, removal, updates, and observation of modifications to the list.

Parameters

initial

The elements this list initially contains.

Type Parameters

T

The type of elements maintained by this list.

Constructors

Link copied to clipboard
constructor(initial: Iterable<T> = emptyList())

Types

Link copied to clipboard
object Companion

A companion object for the ObservableMutableList class, providing handy factories.

Properties

Link copied to clipboard
open override val current: List<T>

The current value: while observed, the latest value published; otherwise, a freshly computed one. Observables holding their own state may read it directly.

Link copied to clipboard

Whether any callback is currently registered.

Link copied to clipboard
override val observerCount: Int

How many callbacks are currently registered.

Link copied to clipboard
open override val size: Observable<Int>

Emits the list size whenever it changes.

Functions

Link copied to clipboard
fun add(item: T): Boolean

Adds an item to the observable list. Observers of the list will be notified of the change.

fun add(index: Int, item: T)

Adds an item at the specified index. Observers of the list will be notified of the change.

Link copied to clipboard
fun addAll(items: Collection<T>): Boolean

Appends all of the elements in the specified collection to the end of this list.

Link copied to clipboard
fun clear()

Removes all of the elements from this list.

Link copied to clipboard
fun <T, R, O> ObservableList<T>.combineLatest(transformer: (T) -> Observable<R>, aggregator: (List<R>) -> O): Observable<O>

Combines the content of an ObservableList into a single observable by applying a mapping function to each element and aggregating the results.

Link copied to clipboard
fun <T> Observable<Option<T>>.currentOrNull(): T?

Retrieves the current value of the observable if present, or null if no value is available.

Link copied to clipboard
open override fun dispose()

Unregisters every callback registered with this observable.

Link copied to clipboard
fun <T, O> ObservableList<T>.flatMap(transformer: (T) -> Observable<O>): Observable<Option<O>>

Transforms an ObservableList of type T into a single Observable of type arrow.core.Option<O> by fusing the individual observables obtained from each item in the list.

Link copied to clipboard

Converts this ObservableList of observables into a unique observable.

Link copied to clipboard
open override fun <S> map(transform: (List<T>) -> S): Observable<S>

Transforms the current observable into a new observable by applying the specified transformation function to its emitted values.

Link copied to clipboard
open override fun <O, R> mergeWith(other: Observable<O>, merge: (List<T>, O) -> R): Observable<R>

Combines the current observable with another observable, producing a new observable that emits values derived by applying the provided merge function to the current values of both observables.

Link copied to clipboard
open override fun onChange(notifyOnRegistration: Boolean = true, callback: (List<T>) -> Unit): Disposable

Registers callback to be invoked with every new value of this observable, and right away with the current one if notifyOnRegistration.

Link copied to clipboard
fun remove(item: T): Boolean

Removes the first occurrence of the specified item from the observable list, if it is present. If the list changes, observers will be notified.

Link copied to clipboard
fun removeAll(predicate: (T) -> Boolean): Boolean

Removes all the elements satisfying predicate from the observable list. If the list changes, observers will be notified once.

Link copied to clipboard
fun removeAt(index: Int): T

Removes the element at the specified position in this list.

Link copied to clipboard
operator fun set(index: Int, element: T): T

Replaces the element at the specified position in this list with the specified element.

Link copied to clipboard
fun <T, R> Observable<T>.switchMap(transform: (T) -> Observable<R>): Observable<R>

Maps the current value of this Observable to an inner observable through transform, and mirrors the inner observable of the most recent value only: whenever this observable emits, the previous inner observable is unsubscribed and the new one is followed.