From 6fd0fb97044864f4953651ca21a411bd22ba5abc Mon Sep 17 00:00:00 2001 From: AlexeyZavar Date: Tue, 2 Apr 2024 16:35:16 +0300 Subject: [PATCH] feat: simplify `markReadAfterAction` --- Telegram/SourceFiles/api/api_polls.cpp | 2 +- Telegram/SourceFiles/apiwrap.cpp | 2 +- Telegram/SourceFiles/ayu/ayu_settings.cpp | 16 +---- Telegram/SourceFiles/ayu/ayu_settings.h | 12 +--- Telegram/SourceFiles/ayu/ayu_worker.cpp | 2 +- .../ayu/ui/settings/settings_ayu.cpp | 58 ++++++++----------- Telegram/SourceFiles/boxes/share_box.cpp | 2 +- .../data/data_message_reactions.cpp | 2 +- .../SourceFiles/history/history_widget.cpp | 4 +- 9 files changed, 37 insertions(+), 63 deletions(-) diff --git a/Telegram/SourceFiles/api/api_polls.cpp b/Telegram/SourceFiles/api/api_polls.cpp index 482f23987..ef6f054a0 100644 --- a/Telegram/SourceFiles/api/api_polls.cpp +++ b/Telegram/SourceFiles/api/api_polls.cpp @@ -160,7 +160,7 @@ void Polls::sendVotes( _session->updates().applyUpdates(result); const auto settings = &AyuSettings::getInstance(); - if (!settings->sendReadMessages && settings->markReadAfterPoll && item) + if (!settings->sendReadMessages && settings->markReadAfterAction && item) { readHistory(item); } diff --git a/Telegram/SourceFiles/apiwrap.cpp b/Telegram/SourceFiles/apiwrap.cpp index 0a19f05da..6257bbd57 100644 --- a/Telegram/SourceFiles/apiwrap.cpp +++ b/Telegram/SourceFiles/apiwrap.cpp @@ -3331,7 +3331,7 @@ void ApiWrap::forwardMessages( } const auto settings = &AyuSettings::getInstance(); - if (!settings->sendReadMessages && settings->markReadAfterPoll && history->lastMessage()) + if (!settings->sendReadMessages && settings->markReadAfterAction && history->lastMessage()) { readHistory(history->lastMessage()); } diff --git a/Telegram/SourceFiles/ayu/ayu_settings.cpp b/Telegram/SourceFiles/ayu/ayu_settings.cpp index 7c02857ad..595eeb16b 100644 --- a/Telegram/SourceFiles/ayu/ayu_settings.cpp +++ b/Telegram/SourceFiles/ayu/ayu_settings.cpp @@ -188,9 +188,7 @@ AyuGramSettings::AyuGramSettings() { sendUploadProgress = true; sendOfflinePacketAfterOnline = false; - markReadAfterSend = true; - markReadAfterReaction = true; - markReadAfterPoll = true; + markReadAfterAction = true; useScheduledMessages = false; // ~ Message edits & deletion history @@ -295,16 +293,8 @@ void AyuGramSettings::set_ghostModeEnabled(bool val) { } } -void AyuGramSettings::set_markReadAfterSend(bool val) { - markReadAfterSend = val; -} - -void AyuGramSettings::set_markReadAfterReaction(bool val) { - markReadAfterReaction = val; -} - -void AyuGramSettings::set_markReadAfterPoll(bool val) { - markReadAfterPoll = val; +void AyuGramSettings::set_markReadAfterAction(bool val) { + markReadAfterAction = val; } void AyuGramSettings::set_useScheduledMessages(bool val) { diff --git a/Telegram/SourceFiles/ayu/ayu_settings.h b/Telegram/SourceFiles/ayu/ayu_settings.h index f72f5b941..1530d464c 100644 --- a/Telegram/SourceFiles/ayu/ayu_settings.h +++ b/Telegram/SourceFiles/ayu/ayu_settings.h @@ -23,9 +23,7 @@ public: bool sendUploadProgress; bool sendOfflinePacketAfterOnline; - bool markReadAfterSend; - bool markReadAfterReaction; - bool markReadAfterPoll; + bool markReadAfterAction; bool useScheduledMessages; bool saveDeletedMessages; @@ -85,9 +83,7 @@ public: void set_ghostModeEnabled(bool val); - void set_markReadAfterSend(bool val); - void set_markReadAfterReaction(bool val); - void set_markReadAfterPoll(bool val); + void set_markReadAfterAction(bool val); void set_useScheduledMessages(bool val); void set_saveDeletedMessages(bool val); @@ -147,9 +143,7 @@ NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT( sendOnlinePackets, sendUploadProgress, sendOfflinePacketAfterOnline, - markReadAfterSend, - markReadAfterReaction, - markReadAfterPoll, + markReadAfterAction, useScheduledMessages, saveDeletedMessages, saveMessagesHistory, diff --git a/Telegram/SourceFiles/ayu/ayu_worker.cpp b/Telegram/SourceFiles/ayu/ayu_worker.cpp index 712917153..3c63e433a 100644 --- a/Telegram/SourceFiles/ayu/ayu_worker.cpp +++ b/Telegram/SourceFiles/ayu/ayu_worker.cpp @@ -63,7 +63,7 @@ void runOnce() { )).send(); state[id] = false; - LOG(("[AyuGram] Sent offline for account with uid %1, invalidate %2").arg(id).arg(invalidateAll)); + DEBUG_LOG(("[AyuGram] Sent offline for account with uid %1, invalidate %2").arg(id).arg(invalidateAll)); } } } diff --git a/Telegram/SourceFiles/ayu/ui/settings/settings_ayu.cpp b/Telegram/SourceFiles/ayu/ui/settings/settings_ayu.cpp index 04620869d..3576bd417 100644 --- a/Telegram/SourceFiles/ayu/ui/settings/settings_ayu.cpp +++ b/Telegram/SourceFiles/ayu/ui/settings/settings_ayu.cpp @@ -457,42 +457,33 @@ void SetupGhostModeToggle(not_null container) { AddCollapsibleToggle(container, tr::ayu_GhostEssentialsHeader(), checkboxes, true); } -void SetupReadAfterActionToggle(not_null container) { - auto settings = &AyuSettings::getInstance(); - - std::vector checkboxes{ - NestedEntry{ - tr::ayu_MarkReadAfterSend(tr::now), settings->markReadAfterSend, [=](bool enabled) - { - settings->set_markReadAfterSend(enabled); - AyuSettings::save(); - } - }, - NestedEntry{ - tr::ayu_MarkReadAfterReaction(tr::now), settings->markReadAfterReaction, [=](bool enabled) - { - settings->set_markReadAfterReaction(enabled); - AyuSettings::save(); - } - }, - NestedEntry{ - tr::ayu_MarkReadAfterPoll(tr::now), settings->markReadAfterPoll, [=](bool enabled) - { - settings->set_markReadAfterPoll(enabled); - AyuSettings::save(); - } - }, - }; - - AddCollapsibleToggle(container, tr::ayu_MarkReadAfterAction(), checkboxes, false); -} - void SetupGhostEssentials(not_null container) { auto settings = &AyuSettings::getInstance(); SetupGhostModeToggle(container); - SetupReadAfterActionToggle(container); + AddButtonWithIcon( + container, + tr::ayu_MarkReadAfterAction(), + st::settingsButtonNoIcon + )->toggleOn( + rpl::single(settings->markReadAfterAction) + )->toggledValue( + ) | rpl::filter( + [=](bool enabled) + { + return (enabled != settings->markReadAfterAction); + }) | start_with_next( + [=](bool enabled) + { + settings->set_markReadAfterAction(enabled); + AyuSettings::save(); + }, + container->lifetime()); + AddSkip(container); + AddDividerText(container, tr::ayu_MarkReadAfterActionDescription()); + + AddSkip(container); AddButtonWithIcon( container, tr::ayu_UseScheduledMessages() | rpl::map( @@ -515,6 +506,8 @@ void SetupGhostEssentials(not_null container) { AyuSettings::save(); }, container->lifetime()); + AddSkip(container); + AddDividerText(container, tr::ayu_UseScheduledMessagesDescription()); } void SetupSpyEssentials(not_null container) { @@ -1335,9 +1328,6 @@ void SetupAyuGramSettings(not_null container, not_null controller) { AddSkip(container); SetupGhostEssentials(container); - AddSkip(container); - - AddDivider(container); AddSkip(container); SetupSpyEssentials(container); diff --git a/Telegram/SourceFiles/boxes/share_box.cpp b/Telegram/SourceFiles/boxes/share_box.cpp index 80ade57fe..13477fd58 100644 --- a/Telegram/SourceFiles/boxes/share_box.cpp +++ b/Telegram/SourceFiles/boxes/share_box.cpp @@ -1584,7 +1584,7 @@ ShareBox::SubmitCallback ShareBox::DefaultForwardCallback( } const auto settings = &AyuSettings::getInstance(); - if (!settings->sendReadMessages && settings->markReadAfterPoll && history->lastMessage()) + if (!settings->sendReadMessages && settings->markReadAfterAction && history->lastMessage()) { readHistory(history->lastMessage()); } diff --git a/Telegram/SourceFiles/data/data_message_reactions.cpp b/Telegram/SourceFiles/data/data_message_reactions.cpp index 1726e34d2..f74552066 100644 --- a/Telegram/SourceFiles/data/data_message_reactions.cpp +++ b/Telegram/SourceFiles/data/data_message_reactions.cpp @@ -1165,7 +1165,7 @@ void Reactions::send(not_null item, bool addToRecent) { _owner->session().api().applyUpdates(result); const auto settings = &AyuSettings::getInstance(); - if (!settings->sendReadMessages && settings->markReadAfterReaction && item) { + if (!settings->sendReadMessages && settings->markReadAfterAction && item) { readHistory(item); } }).fail([=](const MTP::Error &error) { diff --git a/Telegram/SourceFiles/history/history_widget.cpp b/Telegram/SourceFiles/history/history_widget.cpp index 2d47f705f..b1e74ba2a 100644 --- a/Telegram/SourceFiles/history/history_widget.cpp +++ b/Telegram/SourceFiles/history/history_widget.cpp @@ -1169,7 +1169,7 @@ void HistoryWidget::initTabbedSelector() { } } else { const auto settings = &AyuSettings::getInstance(); - if (!settings->sendReadMessages && settings->markReadAfterSend) { + if (!settings->sendReadMessages && settings->markReadAfterAction) { const auto lastMessage = history()->lastMessage(); if (lastMessage) { @@ -4142,7 +4142,7 @@ void HistoryWidget::send(Api::SendOptions options) { } auto lastMessage = _history->lastMessage(); - if (!settings->sendReadMessages && settings->markReadAfterSend && lastMessage) { + if (!settings->sendReadMessages && settings->markReadAfterAction && lastMessage) { readHistory(lastMessage); }