fix: don't use scheduled messages if not in a full ghost mode

This commit is contained in:
AlexeyZavar 2024-10-05 03:14:24 +03:00
parent 1fc230624d
commit 45461836e1
10 changed files with 32 additions and 31 deletions

View file

@ -3661,9 +3661,7 @@ void ApiWrap::sendUploadedPhoto(
Api::RemoteFileInfo info, Api::RemoteFileInfo info,
Api::SendOptions options) { Api::SendOptions options) {
if (const auto item = _session->data().message(localId)) { if (const auto item = _session->data().message(localId)) {
// AyuGram useScheduledMessages if (AyuSettings::isUseScheduledMessages() && !options.scheduled) {
const auto settings = &AyuSettings::getInstance();
if (settings->useScheduledMessages && !options.scheduled) {
auto current = base::unixtime::now(); auto current = base::unixtime::now();
options.scheduled = current + 12; options.scheduled = current + 12;
} }
@ -3686,9 +3684,7 @@ void ApiWrap::sendUploadedDocument(
return; return;
} }
// AyuGram useScheduledMessages if (AyuSettings::isUseScheduledMessages() && !options.scheduled) {
const auto settings = &AyuSettings::getInstance();
if (settings->useScheduledMessages && !options.scheduled) {
auto current = base::unixtime::now(); auto current = base::unixtime::now();
options.scheduled = current + 12; options.scheduled = current + 12;
} }
@ -3979,8 +3975,7 @@ void ApiWrap::sendBotStart(
message.textWithTags.text += '@' + bot->username(); message.textWithTags.text += '@' + bot->username();
} }
const auto settings = &AyuSettings::getInstance(); if (AyuSettings::isUseScheduledMessages()) {
if (settings->useScheduledMessages) {
auto current = base::unixtime::now(); auto current = base::unixtime::now();
message.action.options.scheduled = current + 12; message.action.options.scheduled = current + 12;
} }
@ -4199,9 +4194,7 @@ void ApiWrap::sendMediaWithRandomId(
Api::SendOptions options, Api::SendOptions options,
uint64 randomId, uint64 randomId,
Fn<void(bool)> done) { Fn<void(bool)> done) {
// AyuGram useScheduledMessages if (AyuSettings::isUseScheduledMessages() && !options.scheduled) {
const auto settings = &AyuSettings::getInstance();
if (settings->useScheduledMessages && !options.scheduled) {
auto current = base::unixtime::now(); auto current = base::unixtime::now();
options.scheduled = current + 12; options.scheduled = current + 12;
} }
@ -4415,9 +4408,7 @@ void ApiWrap::sendAlbumIfReady(not_null<SendingAlbum*> album) {
return; return;
} }
// AyuGram useScheduledMessages if (AyuSettings::isUseScheduledMessages() && !album->options.scheduled) {
const auto settings = &AyuSettings::getInstance();
if (settings->useScheduledMessages && !album->options.scheduled) {
auto current = base::unixtime::now(); auto current = base::unixtime::now();
album->options.scheduled = current + 12; album->options.scheduled = current + 12;
} }

View file

@ -551,7 +551,12 @@ void AyuGramSettings::set_voiceConfirmation(bool val) {
voiceConfirmation = val; voiceConfirmation = val;
} }
bool get_ghostModeEnabled() { bool isUseScheduledMessages() {
const auto settings = &getInstance();
return isGhostModeActive() && settings->useScheduledMessages;
}
bool isGhostModeActive() {
return ghostModeEnabled.current(); return ghostModeEnabled.current();
} }

View file

@ -240,7 +240,9 @@ rpl::producer<QString> get_editedMarkReactive();
rpl::producer<int> get_showPeerIdReactive(); rpl::producer<int> get_showPeerIdReactive();
bool get_ghostModeEnabled(); bool isGhostModeActive();
bool isUseScheduledMessages();
rpl::producer<bool> get_ghostModeEnabledReactive(); rpl::producer<bool> get_ghostModeEnabledReactive();
rpl::producer<bool> get_hideFromBlockedReactive(); rpl::producer<bool> get_hideFromBlockedReactive();

View file

@ -57,6 +57,7 @@
#include <QtGui/QClipboard> #include <QtGui/QClipboard>
#include <QtWidgets/QApplication> #include <QtWidgets/QApplication>
#include "history/view/history_view_context_menu.h"
#include "ui/ui_utility.h" #include "ui/ui_utility.h"
namespace MessageHistory { namespace MessageHistory {
@ -332,7 +333,6 @@ InnerWidget::InnerWidget(
const Data::Session::ItemVisibilityQuery &query) const Data::Session::ItemVisibilityQuery &query)
{ {
return (_history == query.item->history()) return (_history == query.item->history())
&& query.item->isAdminLogEntry()
&& isVisible(); && isVisible();
}) | rpl::start_with_next([=]( }) | rpl::start_with_next([=](
const Data::Session::ItemVisibilityQuery &query) const Data::Session::ItemVisibilityQuery &query)
@ -651,6 +651,7 @@ void InnerWidget::restoreState(not_null<SectionMemento*> memento) {
_messageIds = memento->takeMessageIds(); _messageIds = memento->takeMessageIds();
_upLoaded = memento->upLoaded(); _upLoaded = memento->upLoaded();
_downLoaded = memento->downLoaded(); _downLoaded = memento->downLoaded();
updateMinMaxIds();
updateSize(); updateSize();
} }
@ -1171,6 +1172,13 @@ void InnerWidget::showContextMenu(QContextMenuEvent *e, bool showFromTouch) {
saveDocumentToFile(lnkDocument); saveDocumentToFile(lnkDocument);
}), }),
&st::menuIconDownload); &st::menuIconDownload);
HistoryView::AddCopyFilename(
_menu,
lnkDocument,
[] { return false; });
if (lnkDocument->hasAttachedStickers()) { if (lnkDocument->hasAttachedStickers()) {
const auto controller = _controller; const auto controller = _controller;
auto callback = [=] auto callback = [=]

View file

@ -1728,10 +1728,7 @@ bool SendFilesBox::validateLength(const QString &text) const {
void SendFilesBox::send( void SendFilesBox::send(
Api::SendOptions options, Api::SendOptions options,
bool ctrlShiftEnter) { bool ctrlShiftEnter) {
// AyuGram useScheduledMessages if (AyuSettings::isUseScheduledMessages() && !options.scheduled) {
const auto settings = &AyuSettings::getInstance();
if (settings->useScheduledMessages && !options.scheduled) {
DEBUG_LOG(("[AyuGram] Scheduling files"));
const auto sumSize = ranges::accumulate( const auto sumSize = ranges::accumulate(
_list.files, _list.files,
0, 0,

View file

@ -490,7 +490,7 @@ void GifsListWidget::selectInlineResult(
} }
auto settings = &AyuSettings::getInstance(); auto settings = &AyuSettings::getInstance();
if (settings->useScheduledMessages) { if (AyuSettings::isUseScheduledMessages()) {
auto current = base::unixtime::now(); auto current = base::unixtime::now();
options.scheduled = current + 12; options.scheduled = current + 12;
} }

View file

@ -1903,7 +1903,7 @@ void StickersListWidget::mouseReleaseEvent(QMouseEvent *e) {
document document
); );
auto options = Api::SendOptions(); auto options = Api::SendOptions();
if (settings->useScheduledMessages) { if (AyuSettings::isUseScheduledMessages()) {
auto current = base::unixtime::now(); auto current = base::unixtime::now();
options.scheduled = current + 12; options.scheduled = current + 12;
} }

View file

@ -1042,8 +1042,7 @@ HistoryWidget::HistoryWidget(
if (action.replaceMediaOf) { if (action.replaceMediaOf) {
} else if (action.options.scheduled) { } else if (action.options.scheduled) {
cancelReply(lastKeyboardUsed); cancelReply(lastKeyboardUsed);
const auto settings = &AyuSettings::getInstance(); if (!AyuSettings::isUseScheduledMessages()) {
if (!settings->useScheduledMessages) {
crl::on_main(this, [=, history = action.history] crl::on_main(this, [=, history = action.history]
{ {
controller->showSection( controller->showSection(
@ -4294,9 +4293,8 @@ Api::SendAction HistoryWidget::prepareSendAction(
} }
void HistoryWidget::send(Api::SendOptions options) { void HistoryWidget::send(Api::SendOptions options) {
// AyuGram useScheduledMessages
const auto settings = &AyuSettings::getInstance(); const auto settings = &AyuSettings::getInstance();
if (settings->useScheduledMessages && !options.scheduled) { if (AyuSettings::isUseScheduledMessages() && !options.scheduled) {
auto current = base::unixtime::now(); auto current = base::unixtime::now();
options.scheduled = current + 12; options.scheduled = current + 12;
} }

View file

@ -1817,7 +1817,7 @@ void VoiceRecordBar::stopRecording(StopType type, bool ttlBeforeHide) {
}; };
auto settings = &AyuSettings::getInstance(); auto settings = &AyuSettings::getInstance();
if (settings->useScheduledMessages) { if (AyuSettings::isUseScheduledMessages()) {
auto current = base::unixtime::now(); auto current = base::unixtime::now();
options.scheduled = current + 12 + 5; options.scheduled = current + 12 + 5;
} }
@ -1909,7 +1909,7 @@ void VoiceRecordBar::requestToSendWithOptions(Api::SendOptions options) {
} }
auto settings = &AyuSettings::getInstance(); auto settings = &AyuSettings::getInstance();
if (settings->useScheduledMessages) { if (AyuSettings::isUseScheduledMessages()) {
auto current = base::unixtime::now(); auto current = base::unixtime::now();
options.scheduled = current + 12 + 5; options.scheduled = current + 12 + 5;
} }

View file

@ -109,7 +109,7 @@ void Tray::rebuildMenu() {
) | rpl::map( ) | rpl::map(
[=] [=]
{ {
bool ghostModeEnabled = AyuSettings::get_ghostModeEnabled(); bool ghostModeEnabled = AyuSettings::isGhostModeActive();
return ghostModeEnabled return ghostModeEnabled
? tr::ayu_DisableGhostModeTray(tr::now) ? tr::ayu_DisableGhostModeTray(tr::now)
@ -119,7 +119,7 @@ void Tray::rebuildMenu() {
std::move(turnGhostModeText), std::move(turnGhostModeText),
[=] [=]
{ {
bool ghostMode = AyuSettings::get_ghostModeEnabled(); bool ghostMode = AyuSettings::isGhostModeActive();
settings->set_ghostModeEnabled(!ghostMode); settings->set_ghostModeEnabled(!ghostMode);