Remove fake generated Premium Sticker Set.

This commit is contained in:
John Preston 2023-01-24 15:43:55 +04:00
parent ffb2c5093d
commit d4897c8a95
8 changed files with 5 additions and 106 deletions

View file

@ -1830,7 +1830,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_group_stickers" = "Group stickers";
"lng_group_stickers_description" = "You can choose a sticker set which will be available for every member while in the group chat.";
"lng_group_stickers_add" = "Choose sticker set";
"lng_premium_stickers" = "Premium stickers";
"lng_premium" = "Premium";
"lng_premium_free" = "Free";

View file

@ -239,7 +239,7 @@ void GradientPremiumStar::renderOnDemand() const {
gradient.setStops({
{ 0., st::stickerPanPremium1->c },
{ 1., st::stickerPanPremium2->c },
});
});
p.fillRect(QRect(QPoint(), size), gradient);
p.setCompositionMode(QPainter::CompositionMode_DestinationIn);
p.drawImage(QRect(QPoint(), size), mask);
@ -1468,12 +1468,6 @@ void StickersListFooter::paintSetIconToCache(
(st().footer - size) / 2,
width(),
st::stickerGroupCategorySize);
} else if (icon.setId == Data::Stickers::PremiumSetId) {
const auto size = st::emojiStatusDefault.size();
p.drawImage(
(_singleWidth - size.width()) / 2,
(st().footer - size.height()) / 2,
_premiumIcon.image());
} else {
using Section = Ui::Emoji::Section;
const auto sectionIcon = [&](Section section, bool active) {

View file

@ -291,7 +291,6 @@ private:
OverState _pressed = SpecialOver::None;
QPoint _iconsMousePos, _iconsMouseDown;
GradientPremiumStar _premiumIcon;
int _iconsLeft = 0;
int _iconsRight = 0;
int _iconsTop = 0;

View file

@ -1436,8 +1436,6 @@ bool StickersListWidget::hasRemoveButton(int index) const {
return true;
}
return !set.stickers.empty() && _megagroupSet->canEditStickers();
} else if (set.id == Data::Stickers::PremiumSetId) {
return !set.stickers.empty();
}
return false;
}
@ -1867,45 +1865,19 @@ void StickersListWidget::refreshMySets() {
_favedStickersMap.clear();
_mySets.reserve(defaultSetsOrder().size() + 3);
refreshPremiumStickers();
refreshFavedStickers();
refreshRecentStickers(false);
refreshMegagroupStickers(GroupStickersPlace::Visible);
const auto i = ranges::find(
_mySets,
Data::Stickers::PremiumSetId,
&Set::id);
_premiumsIndex = (i != end(_mySets)) ? int(i - begin(_mySets)) : -1;
for (const auto setId : defaultSetsOrder()) {
const auto externalLayout = false;
appendSet(_mySets, setId, externalLayout, AppendSkip::Archived);
}
if (_premiumsIndex >= 0) {
appendPremiumCloudSet();
}
if (_premiumsIndex >= 0 && _mySets[_premiumsIndex].stickers.empty()) {
_mySets.erase(_mySets.begin() + _premiumsIndex);
_premiumsIndex = -1;
}
refreshMegagroupStickers(GroupStickersPlace::Hidden);
takeHeavyData(_mySets, wasSets);
}
void StickersListWidget::appendPremiumCloudSet() {
Expects(_premiumsIndex >= 0 && _premiumsIndex < _mySets.size());
auto &set = _mySets[_premiumsIndex];
for (const auto &document : session().api().premium().cloudSet()) {
set.stickers.push_back(Sticker{ document });
++set.count;
}
}
void StickersListWidget::refreshFeaturedSets() {
auto wasFeaturedSetsCount = base::take(_featuredSetsCount);
auto wereOfficial = base::take(_officialSets);
@ -2043,19 +2015,6 @@ bool StickersListWidget::appendSet(
externalLayout,
std::move(elements));
to.back().thumbnailDocument = set->lookupThumbnailDocument();
if (!externalLayout && _premiumsIndex >= 0 && session().premium()) {
for (const auto &sticker : to.back().stickers) {
const auto document = sticker.document;
if (document->isPremiumSticker()) {
auto &set = to[_premiumsIndex];
auto &list = set.stickers;
if (!ranges::contains(list, document, &Sticker::document)) {
list.push_back(Sticker{ document });
++set.count;
}
}
}
}
return true;
}
@ -2165,25 +2124,6 @@ void StickersListWidget::refreshRecentStickers(bool performResize) {
}
}
void StickersListWidget::refreshPremiumStickers() {
if (_isMasks || session().settings().skipPremiumStickersSet()) {
return;
}
clearSelection();
const auto externalLayout = false;
const auto shortName = QString();
const auto count = 0;
_mySets.insert(_mySets.begin(), Set{
Data::Stickers::PremiumSetId,
nullptr,
(SetFlag::Official | SetFlag::Special),
tr::lng_premium_stickers(tr::now),
shortName,
count,
externalLayout
});
}
void StickersListWidget::refreshFavedStickers() {
if (_isMasks) {
return;
@ -2328,10 +2268,6 @@ std::vector<StickerIcon> StickersListWidget::fillIcons() {
result.emplace_back(Data::Stickers::RecentSetId);
}
}
if (i != _mySets.size() && _mySets[i].id == Data::Stickers::PremiumSetId) {
++i;
result.emplace_back(Data::Stickers::PremiumSetId);
}
for (auto l = _mySets.size(); i != l; ++i) {
if (_mySets[i].id == Data::Stickers::MegagroupSetId) {
result.emplace_back(Data::Stickers::MegagroupSetId);
@ -2685,22 +2621,6 @@ StickersListWidget::~StickersListWidget() = default;
object_ptr<Ui::BoxContent> MakeConfirmRemoveSetBox(
not_null<Main::Session*> session,
uint64 setId) {
if (setId == Data::Stickers::PremiumSetId) {
return Ui::MakeConfirmBox({
.text = tr::lng_stickers_remove_pack(
tr::now,
lt_sticker_pack,
tr::lng_premium_stickers(tr::now)),
.confirmed = [=](Fn<void()> &&close) {
close();
session->settings().setSkipPremiumStickersSet(true);
session->saveSettingsDelayed();
session->data().stickers().notifyUpdated(
Data::StickersType::Stickers);
},
.confirmText = tr::lng_stickers_remove_pack_confirm(),
});
}
const auto &sets = session->data().stickers().sets();
const auto it = sets.find(setId);
if (it == sets.cend()) {

View file

@ -217,7 +217,6 @@ private:
bool stickerHasDeleteButton(const Set &set, int index) const;
std::vector<Sticker> collectRecentStickers();
void refreshRecentStickers(bool resize = true);
void refreshPremiumStickers();
void refreshFavedStickers();
enum class GroupStickersPlace {
Visible,
@ -225,7 +224,6 @@ private:
};
void refreshMegagroupStickers(GroupStickersPlace place);
void refreshSettingsVisibility();
void appendPremiumCloudSet();
void updateSelected();
void setSelected(OverState newSelected);
@ -338,7 +336,6 @@ private:
std::vector<Set> _mySets;
std::vector<Set> _officialSets;
std::vector<Set> _searchSets;
int _premiumsIndex = -1;
int _featuredSetsCount = 0;
std::vector<bool> _custom;
base::flat_set<not_null<DocumentData*>> _favedStickersMap;

View file

@ -48,8 +48,7 @@ public:
static constexpr auto RecentSetId = 0xFFFFFFFFFFFFFFFEULL;
static constexpr auto NoneSetId = 0xFFFFFFFFFFFFFFFDULL;
static constexpr auto FeaturedSetId = 0xFFFFFFFFFFFFFFFBULL;
static constexpr auto PremiumSetId = 0xFFFFFFFFFFFFFFF8ULL;
// For cloud-stored recent stickers.
static constexpr auto CloudRecentSetId = 0xFFFFFFFFFFFFFFFCULL;
static constexpr auto CloudRecentAttachedSetId = 0xFFFFFFFFFFFFFFF9ULL;

View file

@ -83,7 +83,7 @@ QByteArray SessionSettings::serialize() const {
stream << quint64(period);
}
stream
<< qint32(_skipPremiumStickersSet ? 1 : 0)
<< qint32(0) // old _skipPremiumStickersSet
<< qint32(_hiddenPinnedMessages.size());
for (const auto &[key, value] : _hiddenPinnedMessages) {
stream
@ -152,7 +152,7 @@ void SessionSettings::addFromSerialized(const QByteArray &serialized) {
qint32 supportAllSilent = _supportAllSilent ? 1 : 0;
qint32 photoEditorHintShowsCount = _photoEditorHintShowsCount;
std::vector<TimeId> mutePeriods;
qint32 skipPremiumStickersSet = _skipPremiumStickersSet ? 1 : 0;
qint32 legacySkipPremiumStickersSet = 0;
stream >> versionTag;
if (versionTag == kVersionTag) {
@ -388,7 +388,7 @@ void SessionSettings::addFromSerialized(const QByteArray &serialized) {
}
}
if (!stream.atEnd()) {
stream >> skipPremiumStickersSet;
stream >> legacySkipPremiumStickersSet;
}
if (!stream.atEnd()) {
auto count = qint32(0);
@ -454,7 +454,6 @@ void SessionSettings::addFromSerialized(const QByteArray &serialized) {
_supportAllSilent = (supportAllSilent == 1);
_photoEditorHintShowsCount = std::move(photoEditorHintShowsCount);
_mutePeriods = std::move(mutePeriods);
_skipPremiumStickersSet = (skipPremiumStickersSet == 1);
if (version < 2) {
app.setLastSeenWarningSeen(appLastSeenWarningSeen == 1);

View file

@ -122,13 +122,6 @@ public:
[[nodiscard]] std::vector<TimeId> mutePeriods() const;
void addMutePeriod(TimeId period);
[[nodiscard]] bool skipPremiumStickersSet() const {
return _skipPremiumStickersSet;
}
void setSkipPremiumStickersSet(bool value) {
_skipPremiumStickersSet = value;
}
private:
static constexpr auto kDefaultSupportChatsLimitSlice = 7 * 24 * 60 * 60;
static constexpr auto kPhotoEditorHintMaxShowsCount = 5;
@ -154,7 +147,6 @@ private:
bool _dialogsFiltersEnabled = false;
int _photoEditorHintShowsCount = 0;
std::vector<TimeId> _mutePeriods;
bool _skipPremiumStickersSet = false;
Support::SwitchSettings _supportSwitch;
bool _supportFixChatsOrder = true;