From 20a9597c35ffc99d5da8eeff12bffae304e65eed Mon Sep 17 00:00:00 2001 From: Ilia Kurtov Date: Fri, 11 Aug 2017 12:14:13 +0300 Subject: [PATCH] Feature/chat merge (#80) --- src/main/java/ru/touchin/templates/chat/Chat.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/ru/touchin/templates/chat/Chat.java b/src/main/java/ru/touchin/templates/chat/Chat.java index fd32b55..f1fc182 100644 --- a/src/main/java/ru/touchin/templates/chat/Chat.java +++ b/src/main/java/ru/touchin/templates/chat/Chat.java @@ -168,6 +168,14 @@ public abstract class Chat { retrySendingRequest.onNext(null); } + /** + * Method to cancel sending current message. + */ + @NonNull + public Observable observeCancelEvent(@NonNull final TOutgoingMessage message) { + return Observable.never(); + } + /** * Deactivates chat so it will stop sending messages. */ @@ -194,6 +202,7 @@ public abstract class Chat { .first() .switchMap(shouldSendMessage -> shouldSendMessage ? createSendMessageObservable(message).ignoreElements() : Observable.empty()) + .takeUntil(observeCancelEvent(message)) .retryWhen(attempts -> attempts.switchMap(ignored -> { isSendingInError.onNext(true); return Observable