из Maybe можно Observable, но не Completable, во всяком случаи хз как
Да и merge пробовал, но в нём все потоки объединяются, а мне нужно знать какой поток что вернул
Neonoviiwolf, разворачивай тогда вопрос. Сколько их, что должно случиться, если кто-то из них ничего не вернет, и просто завершится? subscribe это не complete, туда может несколько значений прилетать.
maybe.toObservable().toCompletable()
maybe.toObservable() - можно
maybe.toObservable().toCompletable() - нельзя
Нету в выборе
Что хочу: показывать экран загрузки, пока получаю данные с сервера.
Что делаю:
Есть Room, спрашиваю когда было последнее обновление, если бд пустая, то дата по умолчанию
/* дата последнейзаписи */
@Query("Select date_write from title_product where date_write = (select max(date_write) " +
"from title_product)")
Maybe<String> getLastDate();
таких запросов несколько соответственно. Когда данные будут получены, мне нужно сообщить презентору, что данные загружены и он должен показать новое View. Но вот тут 2 проблемы - не факт, что я получу дату, до того, как будет отправлен запрос на сервер, второе, мне нужно показать, что загрузка завершена или ошибка, когда отработают все.
пока стоит заглушка для модели
public class ModelMainActivity implements iModelMainActivity {
private static final String TAG = "ModelMainActivity";
public ModelMainActivity() {
MainApp.app().appComponent().inject(this);
/**тут качаем с сервера - нужно сделать это нормально**/
new DownloadDataServer();
}
@Override
public Observable updateDB() {
return Observable.create(new ObservableOnSubscribe<Object>() {
@Override
public void subscribe(ObservableEmitter<Object> emitter) throws Exception {
Thread.sleep(2000);
emitter.onNext("");
}
}).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread());
}
}
по поводу жизни презентера, то стоит Moxy, так что всё должно работать нормально
п.с. знаю, что многое можно сделать лучше, но пока не могу