Thomas Nordmeyer
01/17/2020, 11:19 AMwasyl
01/17/2020, 11:25 AMif I should observe repository members at allIs your doubt whether you should observe changes, or whether you should be accessing repository?
wasyl
01/17/2020, 11:25 AMThomas Nordmeyer
01/17/2020, 12:28 PMThomas Nordmeyer
01/17/2020, 12:32 PMThomas Nordmeyer
01/17/2020, 12:33 PMwasyl
01/17/2020, 12:41 PMwasyl
01/17/2020, 12:42 PMvar
or miss some case, because the only way to get anything is to subscribe to a streambhatnagarm
01/17/2020, 1:27 PMbhatnagarm
01/17/2020, 1:28 PMThomas Nordmeyer
01/17/2020, 3:53 PMwasyl
01/17/2020, 9:46 PMThomas Nordmeyer
01/21/2020, 8:16 AMThomas Nordmeyer
03/09/2020, 8:17 AMclass Observable<T> {
private val listeners = mutableListOf<(T?) -> Unit>()
/**
* Holds value and notifies listeners when value is modified
*/
var value: T? = null
set(value) {
val touched = field != value
field = value
if (touched) callObservers()
}
/**
* registers observer
*/
fun observe(listener: (T?) -> Unit) = listeners.add(listener)
/**
* unregisters observer
*/
fun removeObserver(listener: (T?) -> Unit) = listeners.remove(listener)
/**
* calls all observers with current value
*/
fun callObservers() = listeners.forEach { it(value) }
}