ReadWritePropertyDefaultSubject

class ReadWritePropertyDefaultSubject<R : T?, T>(defaultValue: R, readWriteProperty: ReadWriteProperty<Any?, T?>, initialValue: ObservableOptional.Value<T?> = Value( run { val v by readWriteProperty v }, ), coroutineScope: CoroutineScope?, context: CoroutineContext? = coroutineScope?.coroutineContext, observation: ObservationDefault<R, T?> = ObservationDefault(defaultValue, initialValue)) : BaseDefaultSubject<R, T> , SuspendableSetter<T?>

A BaseDefaultSubject that matches its value to a ReadWriteProperty. When the ReadWriteProperty updates, changes to the property are not immediately delegated back to the subject. Use a Flow based subject if synchronized values are required

Parameters

T

the type of value to expect.

R

the type of result to expect. Must be a subclass of T

defaultValue

The default R to return if the value of the ReadWriteProperty is null.

readWriteProperty

The ReadWriteProperty to track.

initialValue

The initial value of T. Defaults to the current value of the ReadWriteProperty.

coroutineScope

The CoroutineScope on which to emit changes to the ReadWriteProperty

context

The CoroutineContext in which to emit changes to the ReadWriteProperty

observation

The ObservationInitialized to handle observation.

Constructors

Link copied to clipboard
constructor(defaultValue: R, readWriteProperty: ReadWriteProperty<Any?, T?>, initialValue: ObservableOptional.Value<T?> = Value( run { val v by readWriteProperty v }, ), coroutineScope: CoroutineScope?, context: CoroutineContext? = coroutineScope?.coroutineContext, observation: ObservationDefault<R, T?> = ObservationDefault(defaultValue, initialValue))

Properties

Link copied to clipboard
open override val current: R

The current value of R

Link copied to clipboard
open override val currentOrNull: T?

The current value T or null being observed

Link copied to clipboard

The default Value of R. Can be used in case Nothing is Initial.initialValue

Link copied to clipboard

The initial ObservableOptional value of T.

Link copied to clipboard

The Observer that observes the observable value.

Link copied to clipboard
open override val stateFlow: MutableStateFlow<R>

StateFlow that expresses the content from the observable.

Link copied to clipboard
open override val valueDelegate: ReadWriteProperty<Any?, R>

A ReadOnlyProperty of T

Functions

Link copied to clipboard
expect override fun bind(coroutineScope: CoroutineScope, context: CoroutineContext)

Bind changes in value to a CoroutineScope in a CoroutineContext

Link copied to clipboard
fun <R : T, T, OO : ObservableOptional<R>> BasicSubject<R, T, OO>.bind(coroutineScope: CoroutineScope)

Convenience method for BasicSubject that calls BasicSubject.bind using the CoroutineContext of the provided CoroutineScope

Link copied to clipboard
open operator override fun getValue(thisRef: Any?, property: KProperty<*>): ObservableOptional.Value<R>
Link copied to clipboard
open override fun observe(onNext: (R?) -> Unit): Disposable

Creates an observation that calls onNext each time a new value is observed until the resulting Disposable is disposed

Link copied to clipboard
open override fun observeInitialized(onNext: (R) -> Unit): Disposable
Link copied to clipboard
fun <T> WithState<T?>.observeNotNullOnLifecycle(lifecycleOwner: LifecycleOwner, filter: suspend (T) -> Boolean = { true }, onNext: (T) -> Unit): Job

Observes WithState of a nullable value on the lifecycle of a LifecycleOwner

Link copied to clipboard
fun <T> WithState<T>.observeOnLifecycle(lifecycleOwner: LifecycleOwner, filter: suspend (T) -> Boolean = { true }, onNext: (T) -> Unit): Job

Observes WithState on the lifecycle of a LifecycleOwner

fun <T, R> WithState<T>.observeOnLifecycle(lifecycleOwner: LifecycleOwner, filter: suspend (T) -> Boolean = { true }, transform: suspend (T) -> R, onNext: (R) -> Unit): Job

Observes WithState on the lifecycle of a LifecycleOwner by transforming the observed value.

Link copied to clipboard
open override fun post(newValue: T?)

Updates the value of this Postable

Link copied to clipboard
open suspend override fun set(newValue: T?)

Updates the value of this Postable in a suspended manner.