From 277a2edb57882869fe70068b20fe943eeb17a89d Mon Sep 17 00:00:00 2001 From: AlexeyZavar Date: Sun, 9 Mar 2025 00:53:32 +0300 Subject: [PATCH] fix: read stories crashes --- Telegram/SourceFiles/data/data_stories.cpp | 36 ++++++---------------- 1 file changed, 10 insertions(+), 26 deletions(-) diff --git a/Telegram/SourceFiles/data/data_stories.cpp b/Telegram/SourceFiles/data/data_stories.cpp index b3a539eda..dd327dd58 100644 --- a/Telegram/SourceFiles/data/data_stories.cpp +++ b/Telegram/SourceFiles/data/data_stories.cpp @@ -1120,16 +1120,8 @@ void Stories::markAsRead(FullStoryId id, bool viewed) { return; } - // AyuGram sendReadStories const auto settings = &AyuSettings::getInstance(); - if (!settings->sendReadStories) { - _markReadRequests.clear(); - _markReadPending.clear(); - - _incrementViewsRequests.clear(); - _incrementViewsPending.clear(); - return; } @@ -1278,16 +1270,8 @@ void Stories::toggleHidden( void Stories::sendMarkAsReadRequest( not_null peer, StoryId tillId) { - // AyuGram sendReadStories const auto settings = &AyuSettings::getInstance(); - if (!settings->sendReadStories) { - _markReadRequests.clear(); - _markReadPending.clear(); - - _incrementViewsRequests.clear(); - _incrementViewsPending.clear(); - return; } @@ -1320,6 +1304,12 @@ void Stories::checkQuitPreventFinished() { void Stories::sendMarkAsReadRequests() { _markReadTimer.cancel(); + + const auto settings = &AyuSettings::getInstance(); + if (!settings->sendReadStories) { + return; + } + for (auto i = begin(_markReadPending); i != end(_markReadPending);) { const auto peerId = *i; if (_markReadRequests.contains(peerId)) { @@ -1339,11 +1329,8 @@ void Stories::sendIncrementViewsRequests() { return; } - // AyuGram sendReadStories const auto settings = &AyuSettings::getInstance(); if (!settings->sendReadStories) { - _incrementViewsPending.clear(); - _incrementViewsRequests.clear(); return; } @@ -1948,17 +1935,14 @@ void Stories::togglePinnedList( bool Stories::isQuitPrevent() { if (!_markReadPending.empty()) { - // AyuGram sendReadStories - const auto settings = &AyuSettings::getInstance(); - - if (settings->sendReadStories) { - sendMarkAsReadRequests(); - } + sendMarkAsReadRequests(); } if (!_incrementViewsPending.empty()) { sendIncrementViewsRequests(); } - if (_markReadRequests.empty() && _incrementViewsRequests.empty()) { + + const auto settings = &AyuSettings::getInstance(); + if (!settings->sendReadStories || _markReadRequests.empty() && _incrementViewsRequests.empty()) { return false; } LOG(("Stories prevents quit, marking as read..."));