SingleSelector

class SingleSelector<T>(selectedItem: T? = null, safeChanges: Boolean = true) : Selector<T>

Realization of Selector with one or without selected element. This realization will always have empty selectedItems when nothing selected and one element in selectedItems when something selected. Contains selectedItem value for simple access to currently selected item.

On calling of toggleSelection previous selection will be erased and itemUnselected will emit this element.

Parameters

safeChanges

Set to false to disable using of mutex for synchronizing changes on toggleSelection

Constructors

Link copied to clipboard
fun <T> SingleSelector(selectedItem: T? = null, safeChanges: Boolean = true)

Functions

Link copied to clipboard
open suspend override fun clearSelection()
Link copied to clipboard
open suspend override fun forceDeselect(element: T)
Link copied to clipboard
open suspend override fun forceSelect(element: T)
Link copied to clipboard
open suspend override fun toggleSelection(element: T)

Properties

Link copied to clipboard
open override val itemSelected: SharedFlow<T>
Link copied to clipboard
open override val itemUnselected: SharedFlow<T>
Link copied to clipboard
Link copied to clipboard
open override val selectedItems: List<T>

Extensions

contains
Link copied to clipboard
inline operator fun <T> Selector<T>.contains(element: T): Boolean
inline operator fun <T> Selector<T>.contains(element: T): Boolean
inline operator fun <T> Selector<T>.contains(element: T): Boolean
forceDeselect
Link copied to clipboard
inline suspend fun <T> Selector<T>.forceDeselect(elements: List<T>)
inline suspend fun <T> Selector<T>.forceDeselect(firstElement: T, vararg elements: T)
inline suspend fun <T> Selector<T>.forceDeselect(elements: List<T>)
inline suspend fun <T> Selector<T>.forceDeselect(firstElement: T, vararg elements: T)
inline suspend fun <T> Selector<T>.forceDeselect(elements: List<T>)
inline suspend fun <T> Selector<T>.forceDeselect(firstElement: T, vararg elements: T)
forceSelect
Link copied to clipboard
inline suspend fun <T> Selector<T>.forceSelect(elements: List<T>)
inline suspend fun <T> Selector<T>.forceSelect(firstElement: T, vararg elements: T)
inline suspend fun <T> Selector<T>.forceSelect(elements: List<T>)
inline suspend fun <T> Selector<T>.forceSelect(firstElement: T, vararg elements: T)
inline suspend fun <T> Selector<T>.forceSelect(elements: List<T>)
inline suspend fun <T> Selector<T>.forceSelect(firstElement: T, vararg elements: T)
itemSelectionFlow
Link copied to clipboard
fun <T> Selector<T>.itemSelectionFlow(element: T, scope: CoroutineScope): SharedFlow<Boolean>
fun <T> Selector<T>.itemSelectionFlow(element: T, scope: CoroutineScope): SharedFlow<Boolean>
fun <T> Selector<T>.itemSelectionFlow(element: T, scope: CoroutineScope): SharedFlow<Boolean>
nothingSelected
Link copied to clipboard
toggleSelection
Link copied to clipboard
inline suspend fun <T> Selector<T>.toggleSelection(elements: List<T>)
inline suspend fun <T> Selector<T>.toggleSelection(firstElement: T, vararg elements: T)
inline suspend fun <T> Selector<T>.toggleSelection(elements: List<T>)
inline suspend fun <T> Selector<T>.toggleSelection(firstElement: T, vararg elements: T)
inline suspend fun <T> Selector<T>.toggleSelection(elements: List<T>)
inline suspend fun <T> Selector<T>.toggleSelection(firstElement: T, vararg elements: T)