ifTrueOrDefault
fun <T : Any, B : Boolean?> LiveData<B>.ifTrueOrDefault(default: T, block: () -> LiveData<T>): LiveData<T>
Executes and switchMaps to block if this
has a true
value. If this
is false
or null
, it returns LiveData with value default. This can be used instead of ifTrue when the default value should be something other than null
. Note that this requires a non-null value for T in order for Kotlin's compiler to properly spot missing null
-checks.
This can be used to replace:
myLiveData.switchMap {
if (it == true) {
myNewLiveData
} else {
MutableLiveData(default)
}
}.distinctUntilChanged()
Content copied to clipboard
with a more concise syntax:
myLiveData.ifTrueOrDefault(default) { myNewLiveData }
Content copied to clipboard