From e49bf706c53b8ba4200cab08dc901ca5fe9504ba Mon Sep 17 00:00:00 2001 From: AlexeyZavar Date: Thu, 19 Mar 2026 03:56:02 +0300 Subject: [PATCH] chore: adjust ttl stuff --- Telegram/SourceFiles/api/api_updates.cpp | 4 +-- .../ayu/ui/context_menu/context_menu.cpp | 2 +- Telegram/SourceFiles/ayu/utils/ayu_mapper.cpp | 2 +- .../ayu/utils/telegram_helpers.cpp | 6 ++-- .../SourceFiles/ayu/utils/telegram_helpers.h | 2 +- Telegram/SourceFiles/history/history_item.cpp | 30 ++++--------------- 6 files changed, 13 insertions(+), 33 deletions(-) diff --git a/Telegram/SourceFiles/api/api_updates.cpp b/Telegram/SourceFiles/api/api_updates.cpp index 8e475141e9..06eb2eb01d 100644 --- a/Telegram/SourceFiles/api/api_updates.cpp +++ b/Telegram/SourceFiles/api/api_updates.cpp @@ -1239,7 +1239,7 @@ void Updates::applyUpdateNoPtsCheck(const MTPUpdate &update) { auto unknownReadIds = base::flat_set(); for (const auto &msgId : d.vmessages().v) { if (const auto item = _session->data().nonChannelMessage(msgId.v)) { - if (item->isUnreadMedia() || item->isUnreadMention()) { + if (item->isUnreadMedia() || item->isUnreadMention() || (item->unsupportedTTL() && item->hasUnreadMediaFlag())) { item->markMediaAndMentionRead(); _session->data().requestItemRepaint(item); @@ -1625,7 +1625,7 @@ void Updates::feedUpdate(const MTPUpdate &update) { auto unknownReadIds = base::flat_set(); for (const auto &msgId : d.vmessages().v) { if (auto item = session().data().message(channel->id, msgId.v)) { - if (item->isUnreadMedia() || item->isUnreadMention()) { + if (item->isUnreadMedia() || item->isUnreadMention() || (item->unsupportedTTL() && item->hasUnreadMediaFlag())) { item->markMediaAndMentionRead(); session().data().requestItemRepaint(item); } diff --git a/Telegram/SourceFiles/ayu/ui/context_menu/context_menu.cpp b/Telegram/SourceFiles/ayu/ui/context_menu/context_menu.cpp index 13910c458c..6770474c4a 100644 --- a/Telegram/SourceFiles/ayu/ui/context_menu/context_menu.cpp +++ b/Telegram/SourceFiles/ayu/ui/context_menu/context_menu.cpp @@ -778,7 +778,7 @@ void AddReadUntilAction(not_null menu, HistoryItem *item) { void AddBurnAction(not_null menu, HistoryItem *item) { if (!item->media() || (item->media()->ttlSeconds() <= 0 && item->unsupportedTTL() <= 0) || item->out() || - !item->isUnreadMedia()) { + !item->hasUnreadMediaFlag()) { return; } diff --git a/Telegram/SourceFiles/ayu/utils/ayu_mapper.cpp b/Telegram/SourceFiles/ayu/utils/ayu_mapper.cpp index a58f875e99..88b92c1698 100644 --- a/Telegram/SourceFiles/ayu/utils/ayu_mapper.cpp +++ b/Telegram/SourceFiles/ayu/utils/ayu_mapper.cpp @@ -119,7 +119,7 @@ int mapItemFlagsToMTPFlags(not_null item) { flags |= kMessageFlagMention; } - if (item->isUnreadMedia()) { + if (item->hasUnreadMediaFlag()) { flags |= kMessageFlagContentUnread; } diff --git a/Telegram/SourceFiles/ayu/utils/telegram_helpers.cpp b/Telegram/SourceFiles/ayu/utils/telegram_helpers.cpp index a2af957c3d..f1603682bd 100644 --- a/Telegram/SourceFiles/ayu/utils/telegram_helpers.cpp +++ b/Telegram/SourceFiles/ayu/utils/telegram_helpers.cpp @@ -358,12 +358,12 @@ void readHistory(not_null message) { } } -QString formatTTL(int time) { +QString formatTTL(int time, bool isDoc) { if (time == 0x7FFFFFFF) { - return QString("👀 %1").arg(tr::ayu_OneViewTTL(tr::now)); + return isDoc ? tr::ayu_OnePlayTTL(tr::now) : tr::ayu_OneViewTTL(tr::now); } - return QString("🕓 %1s").arg(time); + return QString("%1s").arg(time); } QString getDCName(int dc) { diff --git a/Telegram/SourceFiles/ayu/utils/telegram_helpers.h b/Telegram/SourceFiles/ayu/utils/telegram_helpers.h index e4ea7864a1..7251a756d1 100644 --- a/Telegram/SourceFiles/ayu/utils/telegram_helpers.h +++ b/Telegram/SourceFiles/ayu/utils/telegram_helpers.h @@ -75,7 +75,7 @@ void MarkAsReadThread(not_null thread); void readHistory(not_null message); -QString formatTTL(int time); +QString formatTTL(int time, bool isDoc); QString formatDateTime(const QDateTime &date); QString formatMessageTime(const QTime &time); diff --git a/Telegram/SourceFiles/history/history_item.cpp b/Telegram/SourceFiles/history/history_item.cpp index e778092086..570cc48665 100644 --- a/Telegram/SourceFiles/history/history_item.cpp +++ b/Telegram/SourceFiles/history/history_item.cpp @@ -472,7 +472,7 @@ HistoryItem::HistoryItem( } const auto time = media.vttl_seconds()->v; - setAyuHint(formatTTL(time)); + setAyuHint(formatTTL(time, false)); _unsupportedTTL = time; }, [&](const MTPDmessageMediaDocument &media) @@ -483,30 +483,10 @@ HistoryItem::HistoryItem( } const auto time = media.vttl_seconds()->v; - setAyuHint(formatTTL(time)); + setAyuHint(formatTTL(time, true)); _unsupportedTTL = time; }, - [&](const MTPDmessageMediaWebPage &media) - { - }, - [&](const MTPDmessageMediaGame &media) - { - }, - [&](const MTPDmessageMediaInvoice &media) - { - }, - [&](const MTPDmessageMediaPoll &media) - { - }, - [&](const MTPDmessageMediaDice &media) - { - }, - [&](const MTPDmessageMediaStory &media) - { - }, - [&](const auto &) - { - }); + [](const auto &) {}); } } auto textWithEntities = TextWithEntities{ @@ -1714,7 +1694,7 @@ bool HistoryItem::markContentsRead(bool fromThisClient) { } markReactionsRead(); return true; - } else if (isUnreadMention() || isIncomingUnreadMedia()) { + } else if (isUnreadMention() || isIncomingUnreadMedia() || (unsupportedTTL() && hasUnreadMediaFlag())) { markMediaAndMentionRead(); return true; } @@ -3567,7 +3547,7 @@ bool HistoryItem::isDeleted() const { } bool HistoryItem::isBurnt() const { - return ((media() && media()->ttlSeconds()) || unsupportedTTL()) && !isUnreadMedia(); + return ((media() && media()->ttlSeconds()) || unsupportedTTL()) && !hasUnreadMediaFlag(); } bool HistoryItem::wasDeletedAnimated() const {