Конвертировать Single <Boolean>в Boolean (Kotlin) - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть изменяемые данные в реальном времени, которые я использую для настройки видимости (с привязкой адаптера) в моем макете. Я использую логическое значение живых данных для достижения этого с помощью приведенного ниже кода.

@BindingAdapter("viewVisibility")
fun setVisibility(view: View, visible: Boolean) {
    view.visibility = if (visible) View.VISIBLE else View.GONE
}

Для получения этих данных я использую следующий метод

   Flowable.just(
Sdk().searchContact(CHATBOT_NAME)).map {!(it.isEmpty()) }

it.isEmpty () дает мне Flowable > вместо Flowable, и я хочу преобразовать этот Single в логическое значение (чтобы передать его в качестве параметра моему адаптеру привязки), но я не смог найти способ преобразовать это. Мое временное (вероятно, плохое) решение ниже.

  it.blockingLast().isEmpty() // Blocking last gives me a list so I can get non-single boolean with isEmpty. Since I need one element from search contact method blocking last or first works same in this case.

Это приемлемое решение? Как я могу преобразовать Single в обычный Boolean?

1 Ответ

0 голосов
/ 01 ноября 2018

это снова я, попробуйте следующий код:

fun doesExist(): Flowable<Boolean> {
   return Flowable.just(Single.just(Sdk().searchContact(CHATBOT_NAME)).map{ it.isEmpty()}).map {it.blockingGet() }
}
...