mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-04-15 21:57:10 +02:00
Skip premium effect if stickers aren't playing.
This commit is contained in:
parent
d01c026521
commit
b92e6e38f7
2 changed files with 26 additions and 12 deletions
|
@ -85,11 +85,7 @@ Sticker::Sticker(
|
|||
, _data(data)
|
||||
, _replacements(replacements)
|
||||
, _cachingTag(ChatHelpers::StickerLottieSize::MessageHistory)
|
||||
, _oncePlayed(false)
|
||||
, _premiumEffectPlayed(false)
|
||||
, _nextLastDiceFrame(false)
|
||||
, _skipPremiumEffect(skipPremiumEffect)
|
||||
, _giftBoxSticker(false) {
|
||||
, _skipPremiumEffect(skipPremiumEffect) {
|
||||
if ((_dataMedia = _data->activeMediaView())) {
|
||||
dataMediaCreated();
|
||||
} else {
|
||||
|
@ -103,7 +99,14 @@ Sticker::Sticker(
|
|||
if (_player) {
|
||||
if (hasPremiumEffect() && !_premiumEffectPlayed) {
|
||||
_premiumEffectPlayed = true;
|
||||
_parent->delegate()->elementStartPremium(_parent, replacing);
|
||||
if (On(PowerSaving::kStickersChat)
|
||||
&& !_premiumEffectSkipped) {
|
||||
_premiumEffectSkipped = true;
|
||||
} else {
|
||||
_parent->delegate()->elementStartPremium(
|
||||
_parent,
|
||||
replacing);
|
||||
}
|
||||
}
|
||||
playerCreated();
|
||||
}
|
||||
|
@ -237,6 +240,7 @@ DocumentData *Sticker::document() {
|
|||
void Sticker::stickerClearLoopPlayed() {
|
||||
_oncePlayed = false;
|
||||
_premiumEffectPlayed = false;
|
||||
_premiumEffectSkipped = false;
|
||||
}
|
||||
|
||||
void Sticker::paintAnimationFrame(
|
||||
|
@ -463,6 +467,10 @@ void Sticker::emojiStickerClicked() {
|
|||
|
||||
void Sticker::premiumStickerClicked() {
|
||||
_premiumEffectPlayed = false;
|
||||
|
||||
// Remove when we start playing sticker itself on click.
|
||||
_premiumEffectSkipped = false;
|
||||
|
||||
_parent->history()->owner().requestViewRepaint(_parent);
|
||||
}
|
||||
|
||||
|
@ -528,7 +536,12 @@ void Sticker::setupPlayer() {
|
|||
void Sticker::checkPremiumEffectStart() {
|
||||
if (!_premiumEffectPlayed && hasPremiumEffect()) {
|
||||
_premiumEffectPlayed = true;
|
||||
_parent->delegate()->elementStartPremium(_parent, nullptr);
|
||||
if (On(PowerSaving::kStickersChat)
|
||||
&& !_premiumEffectSkipped) {
|
||||
_premiumEffectSkipped = true;
|
||||
} else {
|
||||
_parent->delegate()->elementStartPremium(_parent, nullptr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -129,11 +129,12 @@ private:
|
|||
mutable int _frameIndex = -1;
|
||||
mutable int _framesCount = -1;
|
||||
ChatHelpers::StickerLottieSize _cachingTag = {};
|
||||
mutable bool _oncePlayed : 1;
|
||||
mutable bool _premiumEffectPlayed : 1;
|
||||
mutable bool _nextLastDiceFrame : 1;
|
||||
bool _skipPremiumEffect : 1;
|
||||
bool _giftBoxSticker : 1;
|
||||
mutable bool _oncePlayed : 1 = false;
|
||||
mutable bool _premiumEffectPlayed : 1 = false;
|
||||
mutable bool _premiumEffectSkipped : 1 = false;
|
||||
mutable bool _nextLastDiceFrame : 1 = false;
|
||||
bool _skipPremiumEffect : 1 = false;
|
||||
bool _giftBoxSticker : 1 = false;
|
||||
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue