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