From b5c769196a28ce05d21edc4e2ca9997f4e02eaf5 Mon Sep 17 00:00:00 2001 From: AlexeyZavar Date: Wed, 5 Jun 2024 03:36:18 +0300 Subject: [PATCH] fix: channel badge --- .../history/view/history_view_message.cpp | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/Telegram/SourceFiles/history/view/history_view_message.cpp b/Telegram/SourceFiles/history/view/history_view_message.cpp index 1683af9ae5..facc0a193b 100644 --- a/Telegram/SourceFiles/history/view/history_view_message.cpp +++ b/Telegram/SourceFiles/history/view/history_view_message.cpp @@ -479,6 +479,22 @@ void Message::setReactions(std::unique_ptr list) { void Message::refreshRightBadge() { const auto item = data(); + const auto drawChannelBadge = [&] + { + if (item->isDiscussionPost()) { + return (delegate()->elementContext() != Context::Replies); + } else if (item->author()->isMegagroup()) { + if (const auto msgsigned = item->Get()) { + if (!msgsigned->viaBusinessBot) { + Assert(msgsigned->isAnonymousRank); + return false; + } + } + } else if (data()->history()->peer->isMegagroup() && data()->author()->isChannel() && !data()->out()) { + return true; + } + return false; + }(); const auto text = [&] { if (item->isDiscussionPost()) { return (delegate()->elementContext() == Context::Replies) @@ -537,10 +553,7 @@ void Message::refreshRightBadge() { badge.append(' ').append(Ui::Text::Colorized(added, 1)); } _rightBadgeIsChannel = 0; - if ( - item->isDiscussionPost() && delegate()->elementContext() != Context::Replies || - data()->history()->peer->isMegagroup() && data()->author()->isChannel() && !data()->out() - ) { + if (drawChannelBadge) { _rightBadgeIsChannel = 1; } if (badge.empty()) {