From 45461836e1e6a2fd4ae5cf9826c4b0ed545e50ac Mon Sep 17 00:00:00 2001 From: AlexeyZavar Date: Sat, 5 Oct 2024 03:14:24 +0300 Subject: [PATCH] fix: don't use scheduled messages if not in a full ghost mode --- Telegram/SourceFiles/apiwrap.cpp | 19 +++++-------------- Telegram/SourceFiles/ayu/ayu_settings.cpp | 7 ++++++- Telegram/SourceFiles/ayu/ayu_settings.h | 4 +++- .../ayu/ui/message_history/history_inner.cpp | 10 +++++++++- Telegram/SourceFiles/boxes/send_files_box.cpp | 5 +---- .../chat_helpers/gifs_list_widget.cpp | 2 +- .../chat_helpers/stickers_list_widget.cpp | 2 +- .../SourceFiles/history/history_widget.cpp | 6 ++---- .../history_view_voice_record_bar.cpp | 4 ++-- Telegram/SourceFiles/tray.cpp | 4 ++-- 10 files changed, 32 insertions(+), 31 deletions(-) diff --git a/Telegram/SourceFiles/apiwrap.cpp b/Telegram/SourceFiles/apiwrap.cpp index 63e1b6604..a91296d2d 100644 --- a/Telegram/SourceFiles/apiwrap.cpp +++ b/Telegram/SourceFiles/apiwrap.cpp @@ -3661,9 +3661,7 @@ void ApiWrap::sendUploadedPhoto( Api::RemoteFileInfo info, Api::SendOptions options) { if (const auto item = _session->data().message(localId)) { - // AyuGram useScheduledMessages - const auto settings = &AyuSettings::getInstance(); - if (settings->useScheduledMessages && !options.scheduled) { + if (AyuSettings::isUseScheduledMessages() && !options.scheduled) { auto current = base::unixtime::now(); options.scheduled = current + 12; } @@ -3686,9 +3684,7 @@ void ApiWrap::sendUploadedDocument( return; } - // AyuGram useScheduledMessages - const auto settings = &AyuSettings::getInstance(); - if (settings->useScheduledMessages && !options.scheduled) { + if (AyuSettings::isUseScheduledMessages() && !options.scheduled) { auto current = base::unixtime::now(); options.scheduled = current + 12; } @@ -3979,8 +3975,7 @@ void ApiWrap::sendBotStart( message.textWithTags.text += '@' + bot->username(); } - const auto settings = &AyuSettings::getInstance(); - if (settings->useScheduledMessages) { + if (AyuSettings::isUseScheduledMessages()) { auto current = base::unixtime::now(); message.action.options.scheduled = current + 12; } @@ -4199,9 +4194,7 @@ void ApiWrap::sendMediaWithRandomId( Api::SendOptions options, uint64 randomId, Fn done) { - // AyuGram useScheduledMessages - const auto settings = &AyuSettings::getInstance(); - if (settings->useScheduledMessages && !options.scheduled) { + if (AyuSettings::isUseScheduledMessages() && !options.scheduled) { auto current = base::unixtime::now(); options.scheduled = current + 12; } @@ -4415,9 +4408,7 @@ void ApiWrap::sendAlbumIfReady(not_null album) { return; } - // AyuGram useScheduledMessages - const auto settings = &AyuSettings::getInstance(); - if (settings->useScheduledMessages && !album->options.scheduled) { + if (AyuSettings::isUseScheduledMessages() && !album->options.scheduled) { auto current = base::unixtime::now(); album->options.scheduled = current + 12; } diff --git a/Telegram/SourceFiles/ayu/ayu_settings.cpp b/Telegram/SourceFiles/ayu/ayu_settings.cpp index ba32e257a..5ccef65dc 100644 --- a/Telegram/SourceFiles/ayu/ayu_settings.cpp +++ b/Telegram/SourceFiles/ayu/ayu_settings.cpp @@ -551,7 +551,12 @@ void AyuGramSettings::set_voiceConfirmation(bool val) { voiceConfirmation = val; } -bool get_ghostModeEnabled() { +bool isUseScheduledMessages() { + const auto settings = &getInstance(); + return isGhostModeActive() && settings->useScheduledMessages; +} + +bool isGhostModeActive() { return ghostModeEnabled.current(); } diff --git a/Telegram/SourceFiles/ayu/ayu_settings.h b/Telegram/SourceFiles/ayu/ayu_settings.h index 793a28491..831b76525 100644 --- a/Telegram/SourceFiles/ayu/ayu_settings.h +++ b/Telegram/SourceFiles/ayu/ayu_settings.h @@ -240,7 +240,9 @@ rpl::producer get_editedMarkReactive(); rpl::producer get_showPeerIdReactive(); -bool get_ghostModeEnabled(); +bool isGhostModeActive(); +bool isUseScheduledMessages(); + rpl::producer get_ghostModeEnabledReactive(); rpl::producer get_hideFromBlockedReactive(); diff --git a/Telegram/SourceFiles/ayu/ui/message_history/history_inner.cpp b/Telegram/SourceFiles/ayu/ui/message_history/history_inner.cpp index 837f5487c..4509fbdee 100644 --- a/Telegram/SourceFiles/ayu/ui/message_history/history_inner.cpp +++ b/Telegram/SourceFiles/ayu/ui/message_history/history_inner.cpp @@ -57,6 +57,7 @@ #include #include +#include "history/view/history_view_context_menu.h" #include "ui/ui_utility.h" namespace MessageHistory { @@ -332,7 +333,6 @@ InnerWidget::InnerWidget( const Data::Session::ItemVisibilityQuery &query) { return (_history == query.item->history()) - && query.item->isAdminLogEntry() && isVisible(); }) | rpl::start_with_next([=]( const Data::Session::ItemVisibilityQuery &query) @@ -651,6 +651,7 @@ void InnerWidget::restoreState(not_null memento) { _messageIds = memento->takeMessageIds(); _upLoaded = memento->upLoaded(); _downLoaded = memento->downLoaded(); + updateMinMaxIds(); updateSize(); } @@ -1171,6 +1172,13 @@ void InnerWidget::showContextMenu(QContextMenuEvent *e, bool showFromTouch) { saveDocumentToFile(lnkDocument); }), &st::menuIconDownload); + + HistoryView::AddCopyFilename( + _menu, + lnkDocument, + [] { return false; }); + + if (lnkDocument->hasAttachedStickers()) { const auto controller = _controller; auto callback = [=] diff --git a/Telegram/SourceFiles/boxes/send_files_box.cpp b/Telegram/SourceFiles/boxes/send_files_box.cpp index bcece8cc3..0ec8a2692 100644 --- a/Telegram/SourceFiles/boxes/send_files_box.cpp +++ b/Telegram/SourceFiles/boxes/send_files_box.cpp @@ -1728,10 +1728,7 @@ bool SendFilesBox::validateLength(const QString &text) const { void SendFilesBox::send( Api::SendOptions options, bool ctrlShiftEnter) { - // AyuGram useScheduledMessages - const auto settings = &AyuSettings::getInstance(); - if (settings->useScheduledMessages && !options.scheduled) { - DEBUG_LOG(("[AyuGram] Scheduling files")); + if (AyuSettings::isUseScheduledMessages() && !options.scheduled) { const auto sumSize = ranges::accumulate( _list.files, 0, diff --git a/Telegram/SourceFiles/chat_helpers/gifs_list_widget.cpp b/Telegram/SourceFiles/chat_helpers/gifs_list_widget.cpp index 1f5a978ab..ceddbea5f 100644 --- a/Telegram/SourceFiles/chat_helpers/gifs_list_widget.cpp +++ b/Telegram/SourceFiles/chat_helpers/gifs_list_widget.cpp @@ -490,7 +490,7 @@ void GifsListWidget::selectInlineResult( } auto settings = &AyuSettings::getInstance(); - if (settings->useScheduledMessages) { + if (AyuSettings::isUseScheduledMessages()) { auto current = base::unixtime::now(); options.scheduled = current + 12; } diff --git a/Telegram/SourceFiles/chat_helpers/stickers_list_widget.cpp b/Telegram/SourceFiles/chat_helpers/stickers_list_widget.cpp index a581df43f..d046244f3 100644 --- a/Telegram/SourceFiles/chat_helpers/stickers_list_widget.cpp +++ b/Telegram/SourceFiles/chat_helpers/stickers_list_widget.cpp @@ -1903,7 +1903,7 @@ void StickersListWidget::mouseReleaseEvent(QMouseEvent *e) { document ); auto options = Api::SendOptions(); - if (settings->useScheduledMessages) { + if (AyuSettings::isUseScheduledMessages()) { auto current = base::unixtime::now(); options.scheduled = current + 12; } diff --git a/Telegram/SourceFiles/history/history_widget.cpp b/Telegram/SourceFiles/history/history_widget.cpp index 5bab52a2d..2b99ff45c 100644 --- a/Telegram/SourceFiles/history/history_widget.cpp +++ b/Telegram/SourceFiles/history/history_widget.cpp @@ -1042,8 +1042,7 @@ HistoryWidget::HistoryWidget( if (action.replaceMediaOf) { } else if (action.options.scheduled) { cancelReply(lastKeyboardUsed); - const auto settings = &AyuSettings::getInstance(); - if (!settings->useScheduledMessages) { + if (!AyuSettings::isUseScheduledMessages()) { crl::on_main(this, [=, history = action.history] { controller->showSection( @@ -4294,9 +4293,8 @@ Api::SendAction HistoryWidget::prepareSendAction( } void HistoryWidget::send(Api::SendOptions options) { - // AyuGram useScheduledMessages const auto settings = &AyuSettings::getInstance(); - if (settings->useScheduledMessages && !options.scheduled) { + if (AyuSettings::isUseScheduledMessages() && !options.scheduled) { auto current = base::unixtime::now(); options.scheduled = current + 12; } diff --git a/Telegram/SourceFiles/history/view/controls/history_view_voice_record_bar.cpp b/Telegram/SourceFiles/history/view/controls/history_view_voice_record_bar.cpp index 14d94a20b..9d2999960 100644 --- a/Telegram/SourceFiles/history/view/controls/history_view_voice_record_bar.cpp +++ b/Telegram/SourceFiles/history/view/controls/history_view_voice_record_bar.cpp @@ -1817,7 +1817,7 @@ void VoiceRecordBar::stopRecording(StopType type, bool ttlBeforeHide) { }; auto settings = &AyuSettings::getInstance(); - if (settings->useScheduledMessages) { + if (AyuSettings::isUseScheduledMessages()) { auto current = base::unixtime::now(); options.scheduled = current + 12 + 5; } @@ -1909,7 +1909,7 @@ void VoiceRecordBar::requestToSendWithOptions(Api::SendOptions options) { } auto settings = &AyuSettings::getInstance(); - if (settings->useScheduledMessages) { + if (AyuSettings::isUseScheduledMessages()) { auto current = base::unixtime::now(); options.scheduled = current + 12 + 5; } diff --git a/Telegram/SourceFiles/tray.cpp b/Telegram/SourceFiles/tray.cpp index 19bab4dc5..a80ee1b72 100644 --- a/Telegram/SourceFiles/tray.cpp +++ b/Telegram/SourceFiles/tray.cpp @@ -109,7 +109,7 @@ void Tray::rebuildMenu() { ) | rpl::map( [=] { - bool ghostModeEnabled = AyuSettings::get_ghostModeEnabled(); + bool ghostModeEnabled = AyuSettings::isGhostModeActive(); return ghostModeEnabled ? tr::ayu_DisableGhostModeTray(tr::now) @@ -119,7 +119,7 @@ void Tray::rebuildMenu() { std::move(turnGhostModeText), [=] { - bool ghostMode = AyuSettings::get_ghostModeEnabled(); + bool ghostMode = AyuSettings::isGhostModeActive(); settings->set_ghostModeEnabled(!ghostMode);