Я рефакторинг кода для использования RoomDataBase и RxJava2.У меня есть DataSource, который выбирает строку по id и возвращает Maybe
override fun getByAppWidgetId(appWidgetId: Int): Maybe<LocationWidget> {
return mDB.locationDao().getByAppWidgetId(appWidgetId)
}
. В другом месте я получаю массив из appWidgetId
s, для которого я хочу получить записи строки для каждого из идентификаторов.Я хочу объединить все Maybes в один Observable и
private fun hasCurrentLocationWidget(appWidgetIds: IntArray): Single<Boolean> {
observableOfMaybes: Observable // something to hold the maybes we're about to get
for (appWidgetId in appWidgetIds) {
locationMaybe: Maybe<LocationWidget> = dataSource.getByAppWidgetId(appWidgetId)
// -> add each Maybe to `observableOfMaybes`
}
return observableOfMaybes
.subscribeOn(Schedulers.newThread())
// somehow return if any of the `isCurrentLocation` are true
.filter({ location -> location.isCurrentLocation == true })
.toSingle()
}