Added ability to hide every sponsored message to premium users.

This commit is contained in:
23rd 2024-05-28 19:06:48 +03:00 committed by John Preston
parent f6b849e4f7
commit 3b6870396c
2 changed files with 16 additions and 2 deletions

View File

@ -161,7 +161,13 @@ void FillSponsoredMessagesMenu(
menu->addSeparator(&st::expandedMenuSeparator);
}
menu->addAction(tr::lng_sponsored_hide_ads(tr::now), [=] {
ShowPremiumPreviewBox(controller, PremiumFeature::NoAds);
if (controller->session().premium()) {
using Result = Data::SponsoredReportResult;
controller->session().sponsoredMessages().createReportCallback(
itemId)(Result::Id("-1"), [](const auto &) {});
} else {
ShowPremiumPreviewBox(controller, PremiumFeature::NoAds);
}
}, &st::menuIconCancel);
}

View File

@ -10,6 +10,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "api/api_text_entities.h"
#include "boxes/premium_preview_box.h"
#include "calls/calls_instance.h"
#include "data/components/sponsored_messages.h"
#include "data/stickers/data_custom_emoji.h"
#include "data/notify/data_notify_settings.h"
#include "data/data_channel.h"
@ -363,7 +364,14 @@ ClickHandlerPtr HideSponsoredClickHandler() {
return std::make_shared<LambdaClickHandler>([=](ClickContext context) {
const auto my = context.other.value<ClickHandlerContext>();
if (const auto controller = my.sessionWindow.get()) {
ShowPremiumPreviewBox(controller, PremiumFeature::NoAds);
const auto &session = controller->session();
if (session.premium()) {
using Result = Data::SponsoredReportResult;
session.sponsoredMessages().createReportCallback(
my.itemId)(Result::Id("-1"), [](const auto &) {});
} else {
ShowPremiumPreviewBox(controller, PremiumFeature::NoAds);
}
}
});
}