From 2819a5ab7358950a988cf4ce699d2ceed8d219c5 Mon Sep 17 00:00:00 2001 From: Gavriil Sitnikov Date: Tue, 18 Oct 2016 21:24:36 +0300 Subject: [PATCH] also error sending fixed --- src/main/java/ru/touchin/templates/chat/Chat.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/java/ru/touchin/templates/chat/Chat.java b/src/main/java/ru/touchin/templates/chat/Chat.java index 42437d3..b1233b2 100644 --- a/src/main/java/ru/touchin/templates/chat/Chat.java +++ b/src/main/java/ru/touchin/templates/chat/Chat.java @@ -188,12 +188,15 @@ public abstract class Chat { .subscribeOn(Schedulers.computation()) .first() .switchMap(shouldSendMessage -> shouldSendMessage ? createSendMessageObservable(message).ignoreElements() : Observable.empty()) - .retryWhen(attempts -> attempts.switchMap(ignored -> Observable - .merge(retrySendingRequest, Observable.timer(RETRY_SENDING_DELAY, TimeUnit.MILLISECONDS)) - .first() - .doOnCompleted(() -> isSendingInError.onNext(false)))) + .retryWhen(attempts -> attempts.switchMap(ignored -> { + isSendingInError.onNext(true); + return Observable + .merge(retrySendingRequest, Observable.timer(RETRY_SENDING_DELAY, TimeUnit.MILLISECONDS)) + .first() + .doOnCompleted(() -> isSendingInError.onNext(false)); + })) .doOnUnsubscribe(blocker::countDown) - .subscribe(Actions.empty(), throwable -> isSendingInError.onNext(true), () -> sendingMessages.remove(message)); + .subscribe(Actions.empty(), Lc::assertion, () -> sendingMessages.remove(message)); try { blocker.await(); } catch (final InterruptedException exception) {