diff --git a/src/main/java/ru/touchin/templates/chat/Chat.java b/src/main/java/ru/touchin/templates/chat/Chat.java index 6b800a0..d20f59a 100644 --- a/src/main/java/ru/touchin/templates/chat/Chat.java +++ b/src/main/java/ru/touchin/templates/chat/Chat.java @@ -175,6 +175,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. */ @@ -201,6 +209,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