mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-04-14 21:27:07 +02:00
Moved out SponsoredMessages module to components submodule.
This commit is contained in:
parent
39ed7d7f4c
commit
3d48111368
19 changed files with 46 additions and 55 deletions
|
@ -460,6 +460,8 @@ PRIVATE
|
|||
data/business/data_business_info.h
|
||||
data/business/data_shortcut_messages.cpp
|
||||
data/business/data_shortcut_messages.h
|
||||
data/components/sponsored_messages.cpp
|
||||
data/components/sponsored_messages.h
|
||||
data/notify/data_notify_settings.cpp
|
||||
data/notify/data_notify_settings.h
|
||||
data/notify/data_peer_notify_settings.cpp
|
||||
|
@ -583,8 +585,6 @@ PRIVATE
|
|||
data/data_shared_media.h
|
||||
data/data_sparse_ids.cpp
|
||||
data/data_sparse_ids.h
|
||||
data/data_sponsored_messages.cpp
|
||||
data/data_sponsored_messages.h
|
||||
data/data_statistics.h
|
||||
data/data_stories.cpp
|
||||
data/data_stories.h
|
||||
|
|
|
@ -13,9 +13,9 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|||
#include "core/application.h"
|
||||
#include "core/sandbox.h"
|
||||
#include "core/click_handler_types.h"
|
||||
#include "data/components/sponsored_messages.h"
|
||||
#include "data/stickers/data_custom_emoji.h"
|
||||
#include "data/data_session.h"
|
||||
#include "data/data_sponsored_messages.h"
|
||||
#include "iv/iv_instance.h"
|
||||
#include "ui/text/text_custom_emoji.h"
|
||||
#include "ui/basic_click_handlers.h"
|
||||
|
@ -295,7 +295,7 @@ bool UiIntegration::allowClickHandlerActivation(
|
|||
const ClickContext &context) {
|
||||
const auto my = context.other.value<ClickHandlerContext>();
|
||||
if (const auto window = my.sessionWindow.get()) {
|
||||
window->session().data().sponsoredMessages().clicked(my.itemId);
|
||||
window->session().sponsoredMessages().clicked(my.itemId);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@ the official desktop application for the Telegram messaging service.
|
|||
For license and copyright information please follow this link:
|
||||
https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||
*/
|
||||
#include "data/data_sponsored_messages.h"
|
||||
#include "data/components/sponsored_messages.h"
|
||||
|
||||
#include "api/api_text_entities.h"
|
||||
#include "apiwrap.h"
|
||||
|
@ -30,8 +30,8 @@ constexpr auto kRequestTimeLimit = 5 * 60 * crl::time(1000);
|
|||
|
||||
} // namespace
|
||||
|
||||
SponsoredMessages::SponsoredMessages(not_null<Session*> owner)
|
||||
: _session(&owner->session())
|
||||
SponsoredMessages::SponsoredMessages(not_null<Main::Session*> session)
|
||||
: _session(session)
|
||||
, _clearTimer([=] { clearOldRequests(); }) {
|
||||
}
|
||||
|
|
@ -20,8 +20,6 @@ class Session;
|
|||
|
||||
namespace Data {
|
||||
|
||||
class Session;
|
||||
|
||||
struct SponsoredReportResult final {
|
||||
using Id = QByteArray;
|
||||
struct Option final {
|
||||
|
@ -89,7 +87,7 @@ public:
|
|||
bool canReport = false;
|
||||
};
|
||||
using RandomId = QByteArray;
|
||||
explicit SponsoredMessages(not_null<Session*> owner);
|
||||
explicit SponsoredMessages(not_null<Main::Session*> session);
|
||||
SponsoredMessages(const SponsoredMessages &other) = delete;
|
||||
SponsoredMessages &operator=(const SponsoredMessages &other) = delete;
|
||||
~SponsoredMessages();
|
|
@ -58,7 +58,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|||
#include "data/data_chat_filters.h"
|
||||
#include "data/data_scheduled_messages.h"
|
||||
#include "data/data_send_action.h"
|
||||
#include "data/data_sponsored_messages.h"
|
||||
#include "data/data_message_reactions.h"
|
||||
#include "data/data_emoji_statuses.h"
|
||||
#include "data/data_forum_icons.h"
|
||||
|
@ -273,8 +272,7 @@ Session::Session(not_null<Main::Session*> session)
|
|||
, _chatbots(std::make_unique<Chatbots>(this))
|
||||
, _businessInfo(std::make_unique<BusinessInfo>(this))
|
||||
, _scheduledMessages(std::make_unique<ScheduledMessages>(this))
|
||||
, _shortcutMessages(std::make_unique<ShortcutMessages>(this))
|
||||
, _sponsoredMessages(std::make_unique<SponsoredMessages>(this)) {
|
||||
, _shortcutMessages(std::make_unique<ShortcutMessages>(this)) {
|
||||
_cache->open(_session->local().cacheKey());
|
||||
_bigFileCache->open(_session->local().cacheBigFileKey());
|
||||
|
||||
|
@ -399,7 +397,6 @@ void Session::clear() {
|
|||
_histories->unloadAll();
|
||||
_scheduledMessages = nullptr;
|
||||
_shortcutMessages = nullptr;
|
||||
_sponsoredMessages = nullptr;
|
||||
_dependentMessages.clear();
|
||||
base::take(_messages);
|
||||
base::take(_nonChannelMessages);
|
||||
|
|
|
@ -50,7 +50,6 @@ class WallPaper;
|
|||
class ScheduledMessages;
|
||||
class ShortcutMessages;
|
||||
class SendActionManager;
|
||||
class SponsoredMessages;
|
||||
class Reactions;
|
||||
class EmojiStatuses;
|
||||
class ForumIcons;
|
||||
|
@ -128,9 +127,6 @@ public:
|
|||
[[nodiscard]] Stickers &stickers() const {
|
||||
return *_stickers;
|
||||
}
|
||||
[[nodiscard]] SponsoredMessages &sponsoredMessages() const {
|
||||
return *_sponsoredMessages;
|
||||
}
|
||||
[[nodiscard]] Reactions &reactions() const {
|
||||
return *_reactions;
|
||||
}
|
||||
|
@ -1086,7 +1082,6 @@ private:
|
|||
const std::unique_ptr<BusinessInfo> _businessInfo;
|
||||
std::unique_ptr<ScheduledMessages> _scheduledMessages;
|
||||
std::unique_ptr<ShortcutMessages> _shortcutMessages;
|
||||
std::unique_ptr<SponsoredMessages> _sponsoredMessages;
|
||||
|
||||
MsgId _nonHistoryEntryId = ShortcutMaxMsgId;
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|||
#include "history/history_unread_things.h"
|
||||
#include "dialogs/ui/dialogs_layout.h"
|
||||
#include "data/business/data_shortcut_messages.h"
|
||||
#include "data/components/sponsored_messages.h"
|
||||
#include "data/notify/data_notify_settings.h"
|
||||
#include "data/stickers/data_stickers.h"
|
||||
#include "data/data_drafts.h"
|
||||
|
@ -29,7 +30,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|||
#include "data/data_changes.h"
|
||||
#include "data/data_chat_filters.h"
|
||||
#include "data/data_scheduled_messages.h"
|
||||
#include "data/data_sponsored_messages.h"
|
||||
#include "data/data_send_action.h"
|
||||
#include "data/data_folder.h"
|
||||
#include "data/data_forum.h"
|
||||
|
|
|
@ -25,10 +25,6 @@ struct HistoryMessageMarkupData;
|
|||
class HistoryMainElementDelegateMixin;
|
||||
struct LanguageId;
|
||||
|
||||
namespace Main {
|
||||
class Session;
|
||||
} // namespace Main
|
||||
|
||||
namespace Data {
|
||||
struct Draft;
|
||||
class Session;
|
||||
|
|
|
@ -68,6 +68,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|||
#include "api/api_who_reacted.h"
|
||||
#include "api/api_views.h"
|
||||
#include "lang/lang_keys.h"
|
||||
#include "data/components/sponsored_messages.h"
|
||||
#include "data/data_session.h"
|
||||
#include "data/data_document.h"
|
||||
#include "data/data_channel.h"
|
||||
|
@ -79,7 +80,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|||
#include "data/data_file_click_handler.h"
|
||||
#include "data/data_histories.h"
|
||||
#include "data/data_changes.h"
|
||||
#include "data/data_sponsored_messages.h"
|
||||
#include "dialogs/ui/dialogs_video_userpic.h"
|
||||
#include "styles/style_chat.h"
|
||||
#include "styles/style_menu_icons.h"
|
||||
|
@ -118,7 +118,7 @@ void FillSponsoredMessagesMenu(
|
|||
not_null<Window::SessionController*> controller,
|
||||
FullMsgId itemId,
|
||||
not_null<Ui::PopupMenu*> menu) {
|
||||
const auto &data = controller->session().data().sponsoredMessages();
|
||||
const auto &data = controller->session().sponsoredMessages();
|
||||
const auto info = data.lookupDetails(itemId).info;
|
||||
const auto show = controller->uiShow();
|
||||
if (!info.empty()) {
|
||||
|
@ -979,7 +979,7 @@ void HistoryInner::paintEvent(QPaintEvent *e) {
|
|||
: yShown(top + height / 2);
|
||||
if (markShown) {
|
||||
if (isSponsored) {
|
||||
session().data().sponsoredMessages().view(item->fullId());
|
||||
session().sponsoredMessages().view(item->fullId());
|
||||
} else if (isUnread) {
|
||||
readTill = item;
|
||||
}
|
||||
|
|
|
@ -40,6 +40,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|||
#include "base/timer_rpl.h"
|
||||
#include "api/api_text_entities.h"
|
||||
#include "api/api_updates.h"
|
||||
#include "data/components/sponsored_messages.h"
|
||||
#include "data/notify/data_notify_settings.h"
|
||||
#include "data/data_bot_app.h"
|
||||
#include "data/data_saved_messages.h"
|
||||
|
@ -57,7 +58,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|||
#include "data/data_user.h"
|
||||
#include "data/data_group_call.h" // Data::GroupCall::id().
|
||||
#include "data/data_poll.h" // PollData::publicVotes.
|
||||
#include "data/data_sponsored_messages.h"
|
||||
#include "data/data_stories.h"
|
||||
#include "data/data_web_page.h"
|
||||
#include "chat_helpers/stickers_gift_box_pack.h"
|
||||
|
|
|
@ -54,6 +54,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|||
#include "base/unixtime.h"
|
||||
#include "base/call_delayed.h"
|
||||
#include "data/business/data_shortcut_messages.h"
|
||||
#include "data/components/sponsored_messages.h"
|
||||
#include "data/notify/data_notify_settings.h"
|
||||
#include "data/data_changes.h"
|
||||
#include "data/data_drafts.h"
|
||||
|
@ -69,7 +70,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|||
#include "data/data_user.h"
|
||||
#include "data/data_chat_filters.h"
|
||||
#include "data/data_scheduled_messages.h"
|
||||
#include "data/data_sponsored_messages.h"
|
||||
#include "data/data_file_origin.h"
|
||||
#include "data/data_histories.h"
|
||||
#include "data/data_group_call.h"
|
||||
|
@ -311,7 +311,7 @@ HistoryWidget::HistoryWidget(
|
|||
) | rpl::start_with_next([=] {
|
||||
if (_history
|
||||
&& _history->loadedAtBottom()
|
||||
&& session().data().sponsoredMessages().append(_history)) {
|
||||
&& session().sponsoredMessages().append(_history)) {
|
||||
_scroll->contentAdded();
|
||||
}
|
||||
}, lifetime());
|
||||
|
@ -2216,7 +2216,7 @@ void HistoryWidget::showHistory(
|
|||
return;
|
||||
} else {
|
||||
_sponsoredMessagesStateKnown = false;
|
||||
session().data().sponsoredMessages().clearItems(_history);
|
||||
session().sponsoredMessages().clearItems(_history);
|
||||
session().data().hideShownSpoilers();
|
||||
_composeSearch = nullptr;
|
||||
}
|
||||
|
@ -2466,20 +2466,18 @@ void HistoryWidget::showHistory(
|
|||
if (history != _history) {
|
||||
return;
|
||||
}
|
||||
auto &sponsored = session().data().sponsoredMessages();
|
||||
using State = Data::SponsoredMessages::State;
|
||||
const auto state = sponsored.state(_history);
|
||||
const auto state = session().sponsoredMessages().state(
|
||||
_history);
|
||||
_sponsoredMessagesStateKnown = (state != State::None);
|
||||
if (state == State::AppendToEnd) {
|
||||
_scroll->setTrackingContent(
|
||||
sponsored.canHaveFor(_history));
|
||||
session().sponsoredMessages().canHaveFor(_history));
|
||||
} else if (state == State::InjectToMiddle) {
|
||||
injectSponsoredMessages();
|
||||
}
|
||||
});
|
||||
session().data().sponsoredMessages().request(
|
||||
_history,
|
||||
checkState);
|
||||
session().sponsoredMessages().request(_history, checkState);
|
||||
checkState();
|
||||
}
|
||||
} else {
|
||||
|
@ -2583,7 +2581,7 @@ void HistoryWidget::setupPreview() {
|
|||
}
|
||||
|
||||
void HistoryWidget::injectSponsoredMessages() const {
|
||||
session().data().sponsoredMessages().inject(
|
||||
session().sponsoredMessages().inject(
|
||||
_history,
|
||||
_showAtMsgId,
|
||||
_scroll->height() * 2,
|
||||
|
@ -3631,7 +3629,7 @@ void HistoryWidget::loadMessagesDown() {
|
|||
auto from = loadMigrated ? _migrated : _history;
|
||||
if (from->loadedAtBottom()) {
|
||||
if (_sponsoredMessagesStateKnown) {
|
||||
session().data().sponsoredMessages().request(_history, nullptr);
|
||||
session().sponsoredMessages().request(_history, nullptr);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -39,10 +39,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|||
#include "ui/text/text_utilities.h"
|
||||
#include "ui/item_text_options.h"
|
||||
#include "ui/painter.h"
|
||||
#include "data/components/sponsored_messages.h"
|
||||
#include "data/data_session.h"
|
||||
#include "data/data_forum.h"
|
||||
#include "data/data_forum_topic.h"
|
||||
#include "data/data_sponsored_messages.h"
|
||||
#include "data/data_message_reactions.h"
|
||||
#include "data/data_user.h"
|
||||
#include "lang/lang_keys.h"
|
||||
|
@ -1108,7 +1108,7 @@ ClickHandlerPtr Element::fromLink() const {
|
|||
}
|
||||
const auto my = context.other.value<ClickHandlerContext>();
|
||||
if (const auto window = ContextOrSessionWindow(my, session)) {
|
||||
auto &sponsored = session->data().sponsoredMessages();
|
||||
auto &sponsored = session->sponsoredMessages();
|
||||
const auto itemId = my.itemId ? my.itemId : item->fullId();
|
||||
const auto details = sponsored.lookupDetails(itemId);
|
||||
if (!details.externalLink.isEmpty()) {
|
||||
|
|
|
@ -56,8 +56,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|||
#include "boxes/premium_preview_box.h"
|
||||
#include "boxes/peers/edit_participant_box.h"
|
||||
#include "core/crash_reports.h"
|
||||
#include "data/components/sponsored_messages.h"
|
||||
#include "data/data_session.h"
|
||||
#include "data/data_sponsored_messages.h"
|
||||
#include "data/data_changes.h"
|
||||
#include "data/data_folder.h"
|
||||
#include "data/data_media_types.h"
|
||||
|
@ -2138,8 +2138,7 @@ void ListWidget::paintEvent(QPaintEvent *e) {
|
|||
: yShown(top + height / 2);
|
||||
if (markShown) {
|
||||
if (isSponsored) {
|
||||
session->data().sponsoredMessages().view(
|
||||
item->fullId());
|
||||
session->sponsoredMessages().view(item->fullId());
|
||||
} else if (isUnread) {
|
||||
readTill = item;
|
||||
}
|
||||
|
|
|
@ -27,12 +27,12 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|||
#include "ui/round_rect.h"
|
||||
#include "ui/text/text_utilities.h"
|
||||
#include "ui/power_saving.h"
|
||||
#include "data/components/sponsored_messages.h"
|
||||
#include "data/data_session.h"
|
||||
#include "data/data_user.h"
|
||||
#include "data/data_channel.h"
|
||||
#include "data/data_forum_topic.h"
|
||||
#include "data/data_message_reactions.h"
|
||||
#include "data/data_sponsored_messages.h"
|
||||
#include "lang/lang_keys.h"
|
||||
#include "mainwidget.h"
|
||||
#include "main/main_session.h"
|
||||
|
@ -435,8 +435,9 @@ Message::Message(
|
|||
}
|
||||
}
|
||||
if (data->isSponsored()) {
|
||||
const auto &messages = data->history()->owner().sponsoredMessages();
|
||||
const auto details = messages.lookupDetails(data->fullId());
|
||||
const auto &session = data->history()->session();
|
||||
const auto details = session.sponsoredMessages().lookupDetails(
|
||||
data->fullId());
|
||||
if (details.canReport) {
|
||||
_rightAction = std::make_unique<RightAction>();
|
||||
_rightAction->second = std::make_unique<SecondRightAction>();
|
||||
|
|
|
@ -10,8 +10,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|||
#include "api/api_chat_invite.h"
|
||||
#include "core/click_handler_types.h"
|
||||
#include "core/file_utilities.h"
|
||||
#include "data/components/sponsored_messages.h"
|
||||
#include "data/data_session.h"
|
||||
#include "data/data_sponsored_messages.h"
|
||||
#include "main/main_session.h"
|
||||
#include "window/window_session_controller.h"
|
||||
|
||||
|
@ -37,8 +37,8 @@ ClickHandlerPtr SponsoredLink(const QString &externalLink) {
|
|||
if (!controller) {
|
||||
return;
|
||||
}
|
||||
const auto &data = controller->session().data();
|
||||
const auto details = data.sponsoredMessages().lookupDetails(
|
||||
const auto &session = controller->session();
|
||||
const auto details = session.sponsoredMessages().lookupDetails(
|
||||
my.itemId);
|
||||
if (!details.externalLink.isEmpty()) {
|
||||
File::OpenUrl(details.externalLink);
|
||||
|
|
|
@ -13,11 +13,11 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|||
#include "iv/iv_instance.h"
|
||||
#include "core/click_handler_types.h"
|
||||
#include "core/ui_integration.h"
|
||||
#include "data/components/sponsored_messages.h"
|
||||
#include "data/stickers/data_custom_emoji.h"
|
||||
#include "data/data_file_click_handler.h"
|
||||
#include "data/data_photo_media.h"
|
||||
#include "data/data_session.h"
|
||||
#include "data/data_sponsored_messages.h"
|
||||
#include "data/data_web_page.h"
|
||||
#include "history/history.h"
|
||||
#include "history/history_item_components.h"
|
||||
|
@ -227,8 +227,8 @@ WebPage::WebPage(
|
|||
if (!(flags & MediaWebPageFlag::Sponsored)) {
|
||||
return std::nullopt;
|
||||
}
|
||||
const auto &data = _parent->data()->history()->owner();
|
||||
const auto details = data.sponsoredMessages().lookupDetails(
|
||||
const auto &session = _parent->data()->history()->session();
|
||||
const auto details = session.sponsoredMessages().lookupDetails(
|
||||
_parent->data()->fullId());
|
||||
auto result = std::make_optional<SponsoredData>();
|
||||
result->buttonText = details.buttonText;
|
||||
|
|
|
@ -28,6 +28,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|||
#include "storage/file_upload.h"
|
||||
#include "storage/storage_account.h"
|
||||
#include "storage/storage_facade.h"
|
||||
#include "data/components/sponsored_messages.h"
|
||||
#include "data/data_session.h"
|
||||
#include "data/data_changes.h"
|
||||
#include "data/data_user.h"
|
||||
|
@ -96,6 +97,7 @@ Session::Session(
|
|||
, _giftBoxStickersPacks(std::make_unique<Stickers::GiftBoxPack>(this))
|
||||
, _sendAsPeers(std::make_unique<SendAsPeers>(this))
|
||||
, _attachWebView(std::make_unique<InlineBots::AttachWebView>(this))
|
||||
, _sponsoredMessages(std::make_unique<Data::SponsoredMessages>(this))
|
||||
, _supportHelper(Support::Helper::Create(this))
|
||||
, _saveSettingsTimer([=] { saveSettings(); }) {
|
||||
Expects(_settings != nullptr);
|
||||
|
|
|
@ -31,6 +31,7 @@ class Templates;
|
|||
namespace Data {
|
||||
class Session;
|
||||
class Changes;
|
||||
class SponsoredMessages;
|
||||
} // namespace Data
|
||||
|
||||
namespace Storage {
|
||||
|
@ -104,6 +105,9 @@ public:
|
|||
[[nodiscard]] Data::Changes &changes() const {
|
||||
return *_changes;
|
||||
}
|
||||
[[nodiscard]] Data::SponsoredMessages &sponsoredMessages() const {
|
||||
return *_sponsoredMessages;
|
||||
}
|
||||
[[nodiscard]] Api::Updates &updates() const {
|
||||
return *_updates;
|
||||
}
|
||||
|
@ -224,6 +228,7 @@ private:
|
|||
const std::unique_ptr<Stickers::GiftBoxPack> _giftBoxStickersPacks;
|
||||
const std::unique_ptr<SendAsPeers> _sendAsPeers;
|
||||
const std::unique_ptr<InlineBots::AttachWebView> _attachWebView;
|
||||
const std::unique_ptr<Data::SponsoredMessages> _sponsoredMessages;
|
||||
|
||||
const std::unique_ptr<Support::Helper> _supportHelper;
|
||||
|
||||
|
|
|
@ -10,9 +10,9 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|||
#include "boxes/premium_preview_box.h"
|
||||
#include "chat_helpers/compose/compose_show.h"
|
||||
#include "core/ui_integration.h" // Core::MarkedTextContext.
|
||||
#include "data/components/sponsored_messages.h"
|
||||
#include "data/data_premium_limits.h"
|
||||
#include "data/data_session.h"
|
||||
#include "data/data_sponsored_messages.h"
|
||||
#include "data/stickers/data_custom_emoji.h"
|
||||
#include "history/history.h"
|
||||
#include "lang/lang_keys.h"
|
||||
|
@ -217,7 +217,7 @@ void ShowReportSponsoredBox(
|
|||
std::shared_ptr<ChatHelpers::Show> show,
|
||||
not_null<HistoryItem*> item) {
|
||||
const auto peer = item->history()->peer;
|
||||
auto &sponsoredMessages = peer->session().data().sponsoredMessages();
|
||||
auto &sponsoredMessages = peer->session().sponsoredMessages();
|
||||
const auto fullId = item->fullId();
|
||||
const auto report = sponsoredMessages.createReportCallback(fullId);
|
||||
const auto guideLink = Ui::Text::Link(
|
||||
|
|
Loading…
Add table
Reference in a new issue