I have two variables in my ViewModel which are controlled by user with buttons. He can decrement or increment value by click on proper button.
val age = MutableLiveData<Int>().apply { value = 0 }
val weight = MutableLiveData<Double>().apply { value = 0.0 }
Now I want enable save button only if value of both variables are greater than 0. How to do that? I thought about create another LiveData variable in ViewModel correctData
or observe age and weight variable in Activity in some way, but I need help, because I don't know how to do it.
Thank you for help.
UPDATE
I created MediatorLiveData and it's almost working, almost because it doesn't detect if both sources give true value but if there is any true value.
private val _correctData = MediatorLiveData<Boolean>().apply {
value = false
addSource(age) { x -> x?.let { value = x > 0 } }
addSource(repeats) { x -> x?.let { value = x > 0 } }
}
Any ideas?