diff --git a/Telegram/SourceFiles/history/history_item_helpers.cpp b/Telegram/SourceFiles/history/history_item_helpers.cpp index dabd0ee83..ea8f19eda 100644 --- a/Telegram/SourceFiles/history/history_item_helpers.cpp +++ b/Telegram/SourceFiles/history/history_item_helpers.cpp @@ -409,7 +409,7 @@ ClickHandlerPtr ReportSponsoredClickHandler(not_null item) { Menu::ShowSponsored( controller->widget(), controller->uiShow(), - item); + item->fullId()); } }); } diff --git a/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp b/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp index 9362819b3..96dcdc445 100644 --- a/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp +++ b/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp @@ -1574,7 +1574,8 @@ void OverlayWidget::fillContextMenuActions( if (_message && _message->isSponsored()) { if (const auto window = findWindow()) { const auto show = window->uiShow(); - Menu::FillSponsored(_body, addAction, show, _message, true); + const auto fullId = _message->fullId(); + Menu::FillSponsored(_body, addAction, show, fullId, true); } return; } diff --git a/Telegram/SourceFiles/menu/menu_sponsored.cpp b/Telegram/SourceFiles/menu/menu_sponsored.cpp index 7e4927544..4d5564793 100644 --- a/Telegram/SourceFiles/menu/menu_sponsored.cpp +++ b/Telegram/SourceFiles/menu/menu_sponsored.cpp @@ -218,10 +218,8 @@ void AboutBox( void ShowReportSponsoredBox( std::shared_ptr show, - not_null item) { - const auto peer = item->history()->peer; - auto &sponsoredMessages = peer->session().sponsoredMessages(); - const auto fullId = item->fullId(); + const FullMsgId &fullId) { + auto &sponsoredMessages = show->session().sponsoredMessages(); const auto report = sponsoredMessages.createReportCallback(fullId); const auto guideLink = Ui::Text::Link( tr::lng_report_sponsored_reported_link(tr::now), @@ -306,18 +304,16 @@ void FillSponsored( not_null parent, const Ui::Menu::MenuCallback &addAction, std::shared_ptr show, - not_null item, + const FullMsgId &fullId, bool mediaViewer) { - Expects(item->isSponsored()); - - const auto session = &item->history()->session(); + const auto session = &show->session(); addAction(tr::lng_sponsored_menu_revenued_about(tr::now), [=] { show->show(Box(AboutBox, show)); }, (mediaViewer ? &st::mediaMenuIconInfo : &st::menuIconInfo)); addAction(tr::lng_sponsored_menu_revenued_report(tr::now), [=] { - ShowReportSponsoredBox(show, item); + ShowReportSponsoredBox(show, fullId); }, (mediaViewer ? &st::mediaMenuIconBlock : &st::menuIconBlock)); addAction({ @@ -331,7 +327,7 @@ void FillSponsored( if (session->premium()) { using Result = Data::SponsoredReportResult; session->sponsoredMessages().createReportCallback( - item->fullId())(Result::Id("-1"), [](const auto &) {}); + fullId)(Result::Id("-1"), [](const auto &) {}); } else { ShowPremiumPreviewBox(show, PremiumFeature::NoAds); } @@ -341,9 +337,7 @@ void FillSponsored( void ShowSponsored( not_null parent, std::shared_ptr show, - not_null item) { - Expects(item->isSponsored()); - + const FullMsgId &fullId) { const auto menu = Ui::CreateChild( parent.get(), st::popupMenuWithIcons); @@ -352,7 +346,7 @@ void ShowSponsored( parent, Ui::Menu::CreateAddActionCallback(menu), show, - item, + fullId, false); menu->popup(QCursor::pos()); diff --git a/Telegram/SourceFiles/menu/menu_sponsored.h b/Telegram/SourceFiles/menu/menu_sponsored.h index 3085aad95..a1dc05be3 100644 --- a/Telegram/SourceFiles/menu/menu_sponsored.h +++ b/Telegram/SourceFiles/menu/menu_sponsored.h @@ -26,13 +26,13 @@ void FillSponsored( not_null parent, const Ui::Menu::MenuCallback &addAction, std::shared_ptr show, - not_null item, + const FullMsgId &fullId, bool mediaViewer); void ShowSponsored( not_null parent, std::shared_ptr show, - not_null item); + const FullMsgId &fullId); void ShowSponsoredAbout(std::shared_ptr show);