From 0014fd6319aedd570fe4dad722a45d79822709b4 Mon Sep 17 00:00:00 2001 From: morethanwords Date: Wed, 15 Sep 2021 15:19:59 +0400 Subject: [PATCH] Fix instant reading voice/round messages --- src/components/chat/bubbles.ts | 4 ++-- src/lib/appManagers/appMessagesManager.ts | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/components/chat/bubbles.ts b/src/components/chat/bubbles.ts index 6e2819ff..af61f18c 100644 --- a/src/components/chat/bubbles.ts +++ b/src/components/chat/bubbles.ts @@ -776,7 +776,7 @@ export default class ChatBubbles { const readContents: number[] = []; for(const mid of this.unreadedSeen) { const message: MyMessage = this.chat.getMessage(mid); - if(message.pFlags.media_unread) { + if(this.appMessagesManager.isMentionUnread(message)) { readContents.push(mid); } } @@ -2170,7 +2170,7 @@ export default class ChatBubbles { if(!our && !message.pFlags.out && this.unreadedObserver) { //this.log('not our message', message, message.pFlags.unread); const isUnread = message.pFlags.unread || - (message.pFlags.media_unread && message.pFlags.mentioned) || + this.appMessagesManager.isMentionUnread(message) || (this.historyStorage.readMaxId !== undefined && this.historyStorage.readMaxId < message.mid); if(isUnread) { this.unreadedObserver.observe(bubble); diff --git a/src/lib/appManagers/appMessagesManager.ts b/src/lib/appManagers/appMessagesManager.ts index c9aabfd0..f69bba74 100644 --- a/src/lib/appManagers/appMessagesManager.ts +++ b/src/lib/appManagers/appMessagesManager.ts @@ -5438,6 +5438,16 @@ export class AppMessagesManager { ) ); } + + public isMentionUnread(message: MyMessage) { + const doc = ((message as Message.message).media as MessageMedia.messageMediaDocument)?.document as MyDocument; + return message.pFlags.media_unread && + message.pFlags.mentioned && + ( + !doc || + !(['voice', 'round'] as MyDocument['type'][]).includes(doc.type) + ); + } } const appMessagesManager = new AppMessagesManager();