В моем приложении я использую эту ViewModel:
class MainViewModel : ViewModel(){
val hasMessages = MutableLiveData<Boolean>()
val messages = MutableLiveData<List<Message>>()
}
У меня есть код, подключенный так, что если у пользователя действительно есть сообщения, список будет заполнен, а логическое значение будет обновлено, что кажется излишним
это две разные переменные, потому что, когда для hasMessages установлено значение true, пользователь может видеть кнопку на своей панели инструментов, и когда они нажимают ее, они переходят к фрагменту, который показывает сообщения, чтобы они могли их видеть
есть ли способ настроить hasMessages, чтобы он стал LiveData, полученным из списка сообщений?
что-то вроде AsyncSubject RxJava будет работать в этом случае, но я не могу понять, как это сделать
Вы можете использовать Transformations.map()
val messages = MutableLiveData<List<Message>>()
val hasMessages: LiveData<Boolean> = Transformations.map(messages) {
it.isNotEmpty()
}