From cab19a141fcd1b3a010a2925118e985092892034 Mon Sep 17 00:00:00 2001 From: John Preston Date: Mon, 14 Mar 2016 08:54:24 +0300 Subject: [PATCH] no report spam if history is empty or there are out messages --- Telegram/SourceFiles/historywidget.cpp | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/Telegram/SourceFiles/historywidget.cpp b/Telegram/SourceFiles/historywidget.cpp index 1a6e8e947d..6523f1235d 100644 --- a/Telegram/SourceFiles/historywidget.cpp +++ b/Telegram/SourceFiles/historywidget.cpp @@ -3796,6 +3796,13 @@ void HistoryWidget::updateReportSpamStatus() { if (!_peer || (_peer->isUser() && (peerToUser(_peer->id) == MTP::authedId() || isNotificationsUser(_peer->id) || isServiceUser(_peer->id) || _peer->asUser()->botInfo))) { _reportSpamStatus = dbiprsHidden; return; + } else if (!_firstLoadRequest && _history->isEmpty()) { + _reportSpamStatus = dbiprsNoButton; + if (cReportSpamStatuses().contains(_peer->id)) { + cRefReportSpamStatuses().remove(_peer->id); + Local::writeReportSpamStatuses(); + } + return; } else { ReportSpamStatuses::const_iterator i = cReportSpamStatuses().constFind(_peer->id); if (i != cReportSpamStatuses().cend()) { @@ -3833,7 +3840,7 @@ void HistoryWidget::updateReportSpamStatus() { } } } - if (!cContactsReceived()) { + if (!cContactsReceived() || _firstLoadRequest) { _reportSpamStatus = dbiprsUnknown; } else if (_peer->isUser() && _peer->asUser()->contact > 0) { _reportSpamStatus = dbiprsHidden; @@ -3851,7 +3858,20 @@ void HistoryWidget::updateReportSpamStatus() { void HistoryWidget::requestReportSpamSetting() { if (_reportSpamSettingRequestId >= 0 || !_peer) return; - _reportSpamSettingRequestId = MTP::send(MTPmessages_GetPeerSettings(_peer->input), rpcDone(&HistoryWidget::reportSpamSettingDone), rpcFail(&HistoryWidget::reportSpamSettingFail)); + bool outFound = false; + for (auto i : _history->blocks) { + for (auto j : i->items) { + if (j->out()) { + outFound = true; + break; + } + } + } + if (outFound) { + _reportSpamStatus = dbiprsNoButton; + } else { + _reportSpamSettingRequestId = MTP::send(MTPmessages_GetPeerSettings(_peer->input), rpcDone(&HistoryWidget::reportSpamSettingDone), rpcFail(&HistoryWidget::reportSpamSettingFail)); + } } void HistoryWidget::reportSpamSettingDone(const MTPPeerSettings &result, mtpRequestId req) {