Вы можете использовать две наблюдаемые.Первый будет использовать .delay()
, чтобы показать диалог прогресса.Второй вы будете использовать, чтобы сделать запрос.Если запрос заканчивается через 2 секунды - отмените первый с помощью .dispose()
.
Вот пример (это Котлин, но вы поймете идею):
val dialogObservable = Single.just(true)
.observeOn(Schedulers.computation())
.subscribeOn(AndroidSchedulers.mainThread())
.delay(2, TimeUnit.SECONDS)
.subscribe({
// show dialog
}, {
// do something with the error
})
val startTime = System.currentTimeMillis()
mRemoteUseCase.sendData(profileInfo)
.subscribeOn(scheduler)
.observeOn(androidSchedulers)
.subscribe({
val endTime = System.currentTimeMillis()
if(TimeUnit.MILLISECONDS.toSeconds(endTime - startTime) <= 2){
dialogObservable.dispose()
}
// do something else
}, {
// do something with the error
})