From 94e4a8981ffb5787630b8bd126d529513560c3c5 Mon Sep 17 00:00:00 2001 From: John Preston Date: Mon, 15 Aug 2022 10:34:12 +0300 Subject: [PATCH] Specify gift box sticker explicitly. --- .../chat_helpers/stickers_gift_box_pack.cpp | 6 ------ .../chat_helpers/stickers_gift_box_pack.h | 2 -- .../view/media/history_view_service_media_gift.cpp | 1 + .../history/view/media/history_view_sticker.cpp | 14 +++++++------- .../history/view/media/history_view_sticker.h | 2 ++ 5 files changed, 10 insertions(+), 15 deletions(-) diff --git a/Telegram/SourceFiles/chat_helpers/stickers_gift_box_pack.cpp b/Telegram/SourceFiles/chat_helpers/stickers_gift_box_pack.cpp index d45c814cf3..e20c361d66 100644 --- a/Telegram/SourceFiles/chat_helpers/stickers_gift_box_pack.cpp +++ b/Telegram/SourceFiles/chat_helpers/stickers_gift_box_pack.cpp @@ -96,10 +96,4 @@ void GiftBoxPack::applySet(const MTPDmessages_stickerSet &data) { } } -bool GiftBoxPack::isGiftSticker(not_null document) const { - return _setId - && document->sticker() - && (document->sticker()->set.id == _setId); -} - } // namespace Stickers diff --git a/Telegram/SourceFiles/chat_helpers/stickers_gift_box_pack.h b/Telegram/SourceFiles/chat_helpers/stickers_gift_box_pack.h index aea2f25366..e722c19796 100644 --- a/Telegram/SourceFiles/chat_helpers/stickers_gift_box_pack.h +++ b/Telegram/SourceFiles/chat_helpers/stickers_gift_box_pack.h @@ -23,8 +23,6 @@ public: void load(); [[nodiscard]] DocumentData *lookup(int months) const; - [[nodiscard]] bool isGiftSticker(not_null document) const; - private: using SetId = uint64; void applySet(const MTPDmessages_stickerSet &data); diff --git a/Telegram/SourceFiles/history/view/media/history_view_service_media_gift.cpp b/Telegram/SourceFiles/history/view/media/history_view_service_media_gift.cpp index 6b3f1f3b1d..76cd98f45e 100644 --- a/Telegram/SourceFiles/history/view/media/history_view_service_media_gift.cpp +++ b/Telegram/SourceFiles/history/view/media/history_view_service_media_gift.cpp @@ -232,6 +232,7 @@ void MediaGift::ensureStickerCreated() const { const auto skipPremiumEffect = false; _sticker.emplace(_parent, document, skipPremiumEffect, _parent); _sticker->setDiceIndex(sticker->alt, 1); + _sticker->setGiftBoxSticker(true); _sticker->initSize(); } } diff --git a/Telegram/SourceFiles/history/view/media/history_view_sticker.cpp b/Telegram/SourceFiles/history/view/media/history_view_sticker.cpp index 5f9ed53818..5f3837fd00 100644 --- a/Telegram/SourceFiles/history/view/media/history_view_sticker.cpp +++ b/Telegram/SourceFiles/history/view/media/history_view_sticker.cpp @@ -21,9 +21,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "core/application.h" #include "core/core_settings.h" #include "core/click_handler_types.h" -#include "main/main_session.h" -#include "main/main_account.h" -#include "main/main_app_config.h" #include "window/window_session_controller.h" // isGifPausedAtLeastFor. #include "data/data_session.h" #include "data/data_document.h" @@ -32,7 +29,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_file_origin.h" #include "lottie/lottie_single_player.h" #include "media/clip/media_clip_reader.h" -#include "chat_helpers/stickers_gift_box_pack.h" #include "chat_helpers/stickers_lottie.h" #include "styles/style_chat.h" @@ -223,7 +219,8 @@ Sticker::Sticker( , _oncePlayed(false) , _premiumEffectPlayed(false) , _nextLastDiceFrame(false) -, _skipPremiumEffect(skipPremiumEffect) { +, _skipPremiumEffect(skipPremiumEffect) +, _giftBoxSticker(false) { if ((_dataMedia = _data->activeMediaView())) { dataMediaCreated(); } else { @@ -271,8 +268,7 @@ bool Sticker::isEmojiSticker() const { void Sticker::initSize() { if (isEmojiSticker() || _diceIndex >= 0) { - const auto &session = _data->owner().session(); - if (session.giftBoxStickersPacks().isGiftSticker(_data)) { + if (_giftBoxSticker) { _size = st::msgServiceGiftBoxStickerSize; } else { _size = EmojiSize(); @@ -622,6 +618,10 @@ void Sticker::setCustomEmojiPart( _cachingTag = tag; } +void Sticker::setGiftBoxSticker(bool giftBoxSticker) { + _giftBoxSticker = giftBoxSticker; +} + void Sticker::setupPlayer() { Expects(_dataMedia != nullptr); diff --git a/Telegram/SourceFiles/history/view/media/history_view_sticker.h b/Telegram/SourceFiles/history/view/media/history_view_sticker.h index 8e22866b99..351ff5d078 100644 --- a/Telegram/SourceFiles/history/view/media/history_view_sticker.h +++ b/Telegram/SourceFiles/history/view/media/history_view_sticker.h @@ -91,6 +91,7 @@ public: void setDiceIndex(const QString &emoji, int index); void setCustomEmojiPart(int size, ChatHelpers::StickerLottieSize tag); + void setGiftBoxSticker(bool giftBoxSticker); [[nodiscard]] bool atTheEnd() const { return (_frameIndex >= 0) && (_frameIndex + 1 == _framesCount); } @@ -158,6 +159,7 @@ private: mutable bool _premiumEffectPlayed : 1; mutable bool _nextLastDiceFrame : 1; bool _skipPremiumEffect : 1; + bool _giftBoxSticker : 1; };