Specify gift box sticker explicitly.

This commit is contained in:
John Preston 2022-08-15 10:34:12 +03:00
parent 1e7117dd67
commit 94e4a8981f
5 changed files with 10 additions and 15 deletions

View file

@ -96,10 +96,4 @@ void GiftBoxPack::applySet(const MTPDmessages_stickerSet &data) {
} }
} }
bool GiftBoxPack::isGiftSticker(not_null<DocumentData*> document) const {
return _setId
&& document->sticker()
&& (document->sticker()->set.id == _setId);
}
} // namespace Stickers } // namespace Stickers

View file

@ -23,8 +23,6 @@ public:
void load(); void load();
[[nodiscard]] DocumentData *lookup(int months) const; [[nodiscard]] DocumentData *lookup(int months) const;
[[nodiscard]] bool isGiftSticker(not_null<DocumentData*> document) const;
private: private:
using SetId = uint64; using SetId = uint64;
void applySet(const MTPDmessages_stickerSet &data); void applySet(const MTPDmessages_stickerSet &data);

View file

@ -232,6 +232,7 @@ void MediaGift::ensureStickerCreated() const {
const auto skipPremiumEffect = false; const auto skipPremiumEffect = false;
_sticker.emplace(_parent, document, skipPremiumEffect, _parent); _sticker.emplace(_parent, document, skipPremiumEffect, _parent);
_sticker->setDiceIndex(sticker->alt, 1); _sticker->setDiceIndex(sticker->alt, 1);
_sticker->setGiftBoxSticker(true);
_sticker->initSize(); _sticker->initSize();
} }
} }

View file

@ -21,9 +21,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "core/application.h" #include "core/application.h"
#include "core/core_settings.h" #include "core/core_settings.h"
#include "core/click_handler_types.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 "window/window_session_controller.h" // isGifPausedAtLeastFor.
#include "data/data_session.h" #include "data/data_session.h"
#include "data/data_document.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 "data/data_file_origin.h"
#include "lottie/lottie_single_player.h" #include "lottie/lottie_single_player.h"
#include "media/clip/media_clip_reader.h" #include "media/clip/media_clip_reader.h"
#include "chat_helpers/stickers_gift_box_pack.h"
#include "chat_helpers/stickers_lottie.h" #include "chat_helpers/stickers_lottie.h"
#include "styles/style_chat.h" #include "styles/style_chat.h"
@ -223,7 +219,8 @@ Sticker::Sticker(
, _oncePlayed(false) , _oncePlayed(false)
, _premiumEffectPlayed(false) , _premiumEffectPlayed(false)
, _nextLastDiceFrame(false) , _nextLastDiceFrame(false)
, _skipPremiumEffect(skipPremiumEffect) { , _skipPremiumEffect(skipPremiumEffect)
, _giftBoxSticker(false) {
if ((_dataMedia = _data->activeMediaView())) { if ((_dataMedia = _data->activeMediaView())) {
dataMediaCreated(); dataMediaCreated();
} else { } else {
@ -271,8 +268,7 @@ bool Sticker::isEmojiSticker() const {
void Sticker::initSize() { void Sticker::initSize() {
if (isEmojiSticker() || _diceIndex >= 0) { if (isEmojiSticker() || _diceIndex >= 0) {
const auto &session = _data->owner().session(); if (_giftBoxSticker) {
if (session.giftBoxStickersPacks().isGiftSticker(_data)) {
_size = st::msgServiceGiftBoxStickerSize; _size = st::msgServiceGiftBoxStickerSize;
} else { } else {
_size = EmojiSize(); _size = EmojiSize();
@ -622,6 +618,10 @@ void Sticker::setCustomEmojiPart(
_cachingTag = tag; _cachingTag = tag;
} }
void Sticker::setGiftBoxSticker(bool giftBoxSticker) {
_giftBoxSticker = giftBoxSticker;
}
void Sticker::setupPlayer() { void Sticker::setupPlayer() {
Expects(_dataMedia != nullptr); Expects(_dataMedia != nullptr);

View file

@ -91,6 +91,7 @@ public:
void setDiceIndex(const QString &emoji, int index); void setDiceIndex(const QString &emoji, int index);
void setCustomEmojiPart(int size, ChatHelpers::StickerLottieSize tag); void setCustomEmojiPart(int size, ChatHelpers::StickerLottieSize tag);
void setGiftBoxSticker(bool giftBoxSticker);
[[nodiscard]] bool atTheEnd() const { [[nodiscard]] bool atTheEnd() const {
return (_frameIndex >= 0) && (_frameIndex + 1 == _framesCount); return (_frameIndex >= 0) && (_frameIndex + 1 == _framesCount);
} }
@ -158,6 +159,7 @@ private:
mutable bool _premiumEffectPlayed : 1; mutable bool _premiumEffectPlayed : 1;
mutable bool _nextLastDiceFrame : 1; mutable bool _nextLastDiceFrame : 1;
bool _skipPremiumEffect : 1; bool _skipPremiumEffect : 1;
bool _giftBoxSticker : 1;
}; };