From f06747f2a1fe648df315a77c7e45e03cf8fc8db6 Mon Sep 17 00:00:00 2001 From: ZavaruKitsu Date: Sun, 17 Dec 2023 22:52:00 +0300 Subject: [PATCH] fix: don't mark contents read fix: crash if config is not a valid json --- Telegram/SourceFiles/apiwrap.cpp | 11 +++++++++++ Telegram/SourceFiles/ayu/ayu_settings.cpp | 20 ++++++++++++-------- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/Telegram/SourceFiles/apiwrap.cpp b/Telegram/SourceFiles/apiwrap.cpp index b36ea563a..5c92b2566 100644 --- a/Telegram/SourceFiles/apiwrap.cpp +++ b/Telegram/SourceFiles/apiwrap.cpp @@ -1318,6 +1318,11 @@ void ApiWrap::migrateFail(not_null peer, const QString &error) { void ApiWrap::markContentsRead( const base::flat_set> &items) { + const auto settings = &AyuSettings::getInstance(); + if (!settings->sendReadMessages) { + return; + } + auto markedIds = QVector(); auto channelMarkedIds = base::flat_map< not_null, @@ -1352,6 +1357,12 @@ void ApiWrap::markContentsRead(not_null item) { if (!item->markContentsRead(true) || !item->isRegular()) { return; } + + const auto settings = &AyuSettings::getInstance(); + if (!settings->sendReadMessages) { + return; + } + const auto ids = MTP_vector(1, MTP_int(item->id)); if (const auto channel = item->history()->peer->asChannel()) { request(MTPchannels_ReadMessageContents( diff --git a/Telegram/SourceFiles/ayu/ayu_settings.cpp b/Telegram/SourceFiles/ayu/ayu_settings.cpp index 82b1574b5..a380a6de3 100644 --- a/Telegram/SourceFiles/ayu/ayu_settings.cpp +++ b/Telegram/SourceFiles/ayu/ayu_settings.cpp @@ -139,15 +139,19 @@ void load() initialize(); - json p; - file >> p; - file.close(); - try { - settings = p.get(); - } - catch (...) { - LOG(("AyuGramSettings: failed to parse settings file")); + json p; + file >> p; + file.close(); + + try { + settings = p.get(); + } + catch (...) { + LOG(("AyuGramSettings: failed to parse settings file")); + } + } catch (...) { + LOG(("AyuGramSettings: failed to read settings file (not json-like)")); } postinitialize(); }