Суть: нужно загрузить изображение, сохранить его и отобразить. Всё работает, но текущий код мне не нравится:
Single.fromCallable { call.execute() }
.map { it.body?.byteStream() }
.map { BitmapFactory.decodeStream(it) }
.map {//это мне не нравится
it.compress(Bitmap.CompressFormat.JPEG, 90, getOutPutStream())
it
}
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeBy({ it.printStackTrace() }, {
imageView.setImageBitmap(it)
})
У меня слабые знания Rx, но мне кажется такой подход не правильный. Вопрос как это красиво записать. Не выносить же полученный bitmap отдельную переменную и потом создавать с ним новый конвейер ? Как вообще выполнять в одном конвейере несколько не связанных операций ?