mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-06 15:13:57 +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)
|
, _data(data)
|
||||||
, _replacements(replacements)
|
, _replacements(replacements)
|
||||||
, _cachingTag(ChatHelpers::StickerLottieSize::MessageHistory)
|
, _cachingTag(ChatHelpers::StickerLottieSize::MessageHistory)
|
||||||
, _oncePlayed(false)
|
, _skipPremiumEffect(skipPremiumEffect) {
|
||||||
, _premiumEffectPlayed(false)
|
|
||||||
, _nextLastDiceFrame(false)
|
|
||||||
, _skipPremiumEffect(skipPremiumEffect)
|
|
||||||
, _giftBoxSticker(false) {
|
|
||||||
if ((_dataMedia = _data->activeMediaView())) {
|
if ((_dataMedia = _data->activeMediaView())) {
|
||||||
dataMediaCreated();
|
dataMediaCreated();
|
||||||
} else {
|
} else {
|
||||||
|
@ -103,7 +99,14 @@ Sticker::Sticker(
|
||||||
if (_player) {
|
if (_player) {
|
||||||
if (hasPremiumEffect() && !_premiumEffectPlayed) {
|
if (hasPremiumEffect() && !_premiumEffectPlayed) {
|
||||||
_premiumEffectPlayed = true;
|
_premiumEffectPlayed = true;
|
||||||
_parent->delegate()->elementStartPremium(_parent, replacing);
|
if (On(PowerSaving::kStickersChat)
|
||||||
|
&& !_premiumEffectSkipped) {
|
||||||
|
_premiumEffectSkipped = true;
|
||||||
|
} else {
|
||||||
|
_parent->delegate()->elementStartPremium(
|
||||||
|
_parent,
|
||||||
|
replacing);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
playerCreated();
|
playerCreated();
|
||||||
}
|
}
|
||||||
|
@ -237,6 +240,7 @@ DocumentData *Sticker::document() {
|
||||||
void Sticker::stickerClearLoopPlayed() {
|
void Sticker::stickerClearLoopPlayed() {
|
||||||
_oncePlayed = false;
|
_oncePlayed = false;
|
||||||
_premiumEffectPlayed = false;
|
_premiumEffectPlayed = false;
|
||||||
|
_premiumEffectSkipped = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Sticker::paintAnimationFrame(
|
void Sticker::paintAnimationFrame(
|
||||||
|
@ -463,6 +467,10 @@ void Sticker::emojiStickerClicked() {
|
||||||
|
|
||||||
void Sticker::premiumStickerClicked() {
|
void Sticker::premiumStickerClicked() {
|
||||||
_premiumEffectPlayed = false;
|
_premiumEffectPlayed = false;
|
||||||
|
|
||||||
|
// Remove when we start playing sticker itself on click.
|
||||||
|
_premiumEffectSkipped = false;
|
||||||
|
|
||||||
_parent->history()->owner().requestViewRepaint(_parent);
|
_parent->history()->owner().requestViewRepaint(_parent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -528,9 +536,14 @@ void Sticker::setupPlayer() {
|
||||||
void Sticker::checkPremiumEffectStart() {
|
void Sticker::checkPremiumEffectStart() {
|
||||||
if (!_premiumEffectPlayed && hasPremiumEffect()) {
|
if (!_premiumEffectPlayed && hasPremiumEffect()) {
|
||||||
_premiumEffectPlayed = true;
|
_premiumEffectPlayed = true;
|
||||||
|
if (On(PowerSaving::kStickersChat)
|
||||||
|
&& !_premiumEffectSkipped) {
|
||||||
|
_premiumEffectSkipped = true;
|
||||||
|
} else {
|
||||||
_parent->delegate()->elementStartPremium(_parent, nullptr);
|
_parent->delegate()->elementStartPremium(_parent, nullptr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void Sticker::playerCreated() {
|
void Sticker::playerCreated() {
|
||||||
Expects(_player != nullptr);
|
Expects(_player != nullptr);
|
||||||
|
|
|
@ -129,11 +129,12 @@ private:
|
||||||
mutable int _frameIndex = -1;
|
mutable int _frameIndex = -1;
|
||||||
mutable int _framesCount = -1;
|
mutable int _framesCount = -1;
|
||||||
ChatHelpers::StickerLottieSize _cachingTag = {};
|
ChatHelpers::StickerLottieSize _cachingTag = {};
|
||||||
mutable bool _oncePlayed : 1;
|
mutable bool _oncePlayed : 1 = false;
|
||||||
mutable bool _premiumEffectPlayed : 1;
|
mutable bool _premiumEffectPlayed : 1 = false;
|
||||||
mutable bool _nextLastDiceFrame : 1;
|
mutable bool _premiumEffectSkipped : 1 = false;
|
||||||
bool _skipPremiumEffect : 1;
|
mutable bool _nextLastDiceFrame : 1 = false;
|
||||||
bool _giftBoxSticker : 1;
|
bool _skipPremiumEffect : 1 = false;
|
||||||
|
bool _giftBoxSticker : 1 = false;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue