mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-04-16 14:17:12 +02:00
Update API scheme on layer 144.
This commit is contained in:
parent
04d4fdbf9b
commit
de0eef8cc6
6 changed files with 144 additions and 218 deletions
|
@ -761,6 +761,7 @@ messages.stickerSetInstallResultArchive#35e410a8 sets:Vector<StickerSetCovered>
|
|||
|
||||
stickerSetCovered#6410a5d2 set:StickerSet cover:Document = StickerSetCovered;
|
||||
stickerSetMultiCovered#3407e51b set:StickerSet covers:Vector<Document> = StickerSetCovered;
|
||||
stickerSetFullCovered#1aed5ee5 set:StickerSet packs:Vector<StickerPack> documents:Vector<Document> = StickerSetCovered;
|
||||
|
||||
maskCoords#aed6dbb2 n:int x:double y:double zoom:double = MaskCoords;
|
||||
|
||||
|
@ -852,7 +853,7 @@ inputWebFileGeoPointLocation#9f2221c9 geo_point:InputGeoPoint access_hash:long w
|
|||
|
||||
upload.webFile#21e753bc size:int mime_type:string file_type:storage.FileType mtime:int bytes:bytes = upload.WebFile;
|
||||
|
||||
payments.paymentForm#b0133b37 flags:# can_save_credentials:flags.2?true password_missing:flags.3?true form_id:long bot_id:long title:string description:string photo:flags.5?WebDocument invoice:Invoice provider_id:long url:string native_provider:flags.4?string native_params:flags.4?DataJSON saved_info:flags.0?PaymentRequestedInfo saved_credentials:flags.1?PaymentSavedCredentials users:Vector<User> = payments.PaymentForm;
|
||||
payments.paymentForm#4cc5563f flags:# can_save_credentials:flags.2?true password_missing:flags.3?true form_id:long bot_id:long title:string description:string photo:flags.5?WebDocument invoice:Invoice provider_id:long url:string native_provider:flags.4?string native_params:flags.4?DataJSON additional_methods:flags.6?Vector<PaymentFormMethod> saved_info:flags.0?PaymentRequestedInfo saved_credentials:flags.1?PaymentSavedCredentials users:Vector<User> = payments.PaymentForm;
|
||||
|
||||
payments.validatedRequestedInfo#d1451883 flags:# id:flags.0?string shipping_options:flags.1?Vector<ShippingOption> = payments.ValidatedRequestedInfo;
|
||||
|
||||
|
@ -1399,6 +1400,8 @@ inputStorePaymentGiftPremium#616f7fe8 user_id:InputUser currency:string amount:l
|
|||
|
||||
premiumGiftOption#74c34319 flags:# months:int currency:string amount:long bot_url:string store_product:flags.0?string = PremiumGiftOption;
|
||||
|
||||
paymentFormMethod#88f8f21b url:string title:string = PaymentFormMethod;
|
||||
|
||||
---functions---
|
||||
|
||||
invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X;
|
||||
|
|
|
@ -456,15 +456,8 @@ void StickersBox::showAttachedStickers() {
|
|||
}
|
||||
}
|
||||
};
|
||||
for (const auto &stickerSet : _attachedSets.v) {
|
||||
const auto setData = stickerSet.match([&](const auto &data) {
|
||||
return data.vset().match([&](const MTPDstickerSet &data) {
|
||||
return &data;
|
||||
});
|
||||
});
|
||||
if (const auto set = stickers->feedSet(*setData)) {
|
||||
add(set);
|
||||
}
|
||||
for (const auto &set : _attachedSets.v) {
|
||||
add(stickers->feedSetCovered(set));
|
||||
}
|
||||
for (const auto &setId : _emojiSets) {
|
||||
const auto i = stickers->sets().find(setId.id);
|
||||
|
@ -503,41 +496,22 @@ void StickersBox::getArchivedDone(
|
|||
|
||||
auto addedSet = false;
|
||||
auto changedSets = false;
|
||||
for (const auto &stickerSet : stickers.vsets().v) {
|
||||
const MTPDstickerSet *setData = nullptr;
|
||||
switch (stickerSet.type()) {
|
||||
case mtpc_stickerSetCovered: {
|
||||
auto &d = stickerSet.c_stickerSetCovered();
|
||||
if (d.vset().type() == mtpc_stickerSet) {
|
||||
setData = &d.vset().c_stickerSet();
|
||||
for (const auto &data : stickers.vsets().v) {
|
||||
const auto set = session().data().stickers().feedSetCovered(data);
|
||||
const auto index = archived.indexOf(set->id);
|
||||
if (archived.isEmpty() || index != archived.size() - 1) {
|
||||
changedSets = true;
|
||||
if (index >= 0 && index < archived.size() - 1) {
|
||||
archived.removeAt(index);
|
||||
}
|
||||
} break;
|
||||
case mtpc_stickerSetMultiCovered: {
|
||||
auto &d = stickerSet.c_stickerSetMultiCovered();
|
||||
if (d.vset().type() == mtpc_stickerSet) {
|
||||
setData = &d.vset().c_stickerSet();
|
||||
}
|
||||
} break;
|
||||
archived.push_back(set->id);
|
||||
}
|
||||
if (!setData) continue;
|
||||
|
||||
if (const auto set = session().data().stickers().feedSet(*setData)) {
|
||||
const auto index = archived.indexOf(set->id);
|
||||
if (archived.isEmpty() || index != archived.size() - 1) {
|
||||
changedSets = true;
|
||||
if (index >= 0 && index < archived.size() - 1) {
|
||||
archived.removeAt(index);
|
||||
}
|
||||
archived.push_back(set->id);
|
||||
}
|
||||
if (_archived.widget()->appendSet(set)) {
|
||||
addedSet = true;
|
||||
if (set->stickers.isEmpty()
|
||||
|| (set->flags & SetFlag::NotLoaded)) {
|
||||
session().api().scheduleStickerSetRequest(
|
||||
set->id,
|
||||
set->accessHash);
|
||||
}
|
||||
if (_archived.widget()->appendSet(set)) {
|
||||
addedSet = true;
|
||||
if (set->flags & SetFlag::NotLoaded) {
|
||||
session().api().scheduleStickerSetRequest(
|
||||
set->id,
|
||||
set->accessHash);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1422,9 +1422,11 @@ void EmojiListWidget::updateSelected() {
|
|||
auto info = sectionInfoByOffset(p.y());
|
||||
auto section = info.section;
|
||||
if (p.y() >= info.top && p.y() < info.rowsTop) {
|
||||
if (hasRemoveButton(section) && myrtlrect(removeButtonRect(section)).contains(p.x(), p.y())) {
|
||||
if (hasRemoveButton(section)
|
||||
&& myrtlrect(
|
||||
removeButtonRect(section)).contains(p.x(), p.y())) {
|
||||
newSelected = OverButton{ section };
|
||||
} else {
|
||||
} else if (section >= kEmojiSectionCount) {
|
||||
newSelected = OverSet{ section };
|
||||
}
|
||||
} else if (p.y() >= info.rowsTop && p.y() < info.rowsBottom) {
|
||||
|
|
|
@ -348,38 +348,17 @@ void StickersListWidget::preloadMoreOfficial() {
|
|||
const auto &list = data.vsets().v;
|
||||
_officialOffset += list.size();
|
||||
for (int i = 0, l = list.size(); i != l; ++i) {
|
||||
auto &data = list[i];
|
||||
const auto setData = data.match([&](const auto &data) {
|
||||
return data.vset().match([](const MTPDstickerSet &data) {
|
||||
return &data;
|
||||
});
|
||||
});
|
||||
const auto covers = data.match([](const MTPDstickerSetCovered &) {
|
||||
return StickersPack();
|
||||
}, [&](const MTPDstickerSetMultiCovered &data) {
|
||||
auto result = StickersPack();
|
||||
for (const auto &cover : data.vcovers().v) {
|
||||
const auto document = session().data().processDocument(cover);
|
||||
if (document->sticker()) {
|
||||
result.push_back(document);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
});
|
||||
if (const auto set = session().data().stickers().feedSet(*setData)) {
|
||||
if (!covers.empty()) {
|
||||
set->covers = covers;
|
||||
}
|
||||
if (set->stickers.empty() && set->covers.empty()) {
|
||||
continue;
|
||||
}
|
||||
const auto externalLayout = true;
|
||||
appendSet(
|
||||
_officialSets,
|
||||
set->id,
|
||||
externalLayout,
|
||||
AppendSkip::Installed);
|
||||
const auto set = session().data().stickers().feedSetCovered(
|
||||
list[i]);
|
||||
if (set->stickers.empty() && set->covers.empty()) {
|
||||
continue;
|
||||
}
|
||||
const auto externalLayout = true;
|
||||
appendSet(
|
||||
_officialSets,
|
||||
set->id,
|
||||
externalLayout,
|
||||
AppendSkip::Installed);
|
||||
}
|
||||
});
|
||||
resizeToWidth(width());
|
||||
|
@ -800,40 +779,12 @@ void StickersListWidget::searchResultsDone(
|
|||
std::vector<uint64>()).first;
|
||||
}
|
||||
auto &d = result.c_messages_foundStickerSets();
|
||||
for (const auto &stickerSet : d.vsets().v) {
|
||||
const MTPDstickerSet *setData = nullptr;
|
||||
StickersPack covers;
|
||||
switch (stickerSet.type()) {
|
||||
case mtpc_stickerSetCovered: {
|
||||
auto &d = stickerSet.c_stickerSetCovered();
|
||||
if (d.vset().type() == mtpc_stickerSet) {
|
||||
setData = &d.vset().c_stickerSet();
|
||||
}
|
||||
} break;
|
||||
case mtpc_stickerSetMultiCovered: {
|
||||
auto &d = stickerSet.c_stickerSetMultiCovered();
|
||||
if (d.vset().type() == mtpc_stickerSet) {
|
||||
setData = &d.vset().c_stickerSet();
|
||||
}
|
||||
for (const auto &cover : d.vcovers().v) {
|
||||
const auto document = session().data().processDocument(cover);
|
||||
if (document->sticker()) {
|
||||
covers.push_back(document);
|
||||
}
|
||||
}
|
||||
} break;
|
||||
}
|
||||
if (!setData) continue;
|
||||
|
||||
if (const auto set = session().data().stickers().feedSet(*setData)) {
|
||||
if (!covers.empty()) {
|
||||
set->covers = covers;
|
||||
}
|
||||
if (set->stickers.empty() && set->covers.empty()) {
|
||||
continue;
|
||||
}
|
||||
it->second.push_back(set->id);
|
||||
for (const auto &data : d.vsets().v) {
|
||||
const auto set = session().data().stickers().feedSetCovered(data);
|
||||
if (set->stickers.empty() && set->covers.empty()) {
|
||||
continue;
|
||||
}
|
||||
it->second.push_back(set->id);
|
||||
}
|
||||
showSearchResults();
|
||||
}
|
||||
|
|
|
@ -351,36 +351,19 @@ void Stickers::applyArchivedResult(
|
|||
|
||||
auto masksCount = 0;
|
||||
auto stickersCount = 0;
|
||||
for (const auto &stickerSet : v) {
|
||||
const MTPDstickerSet *setData = nullptr;
|
||||
switch (stickerSet.type()) {
|
||||
case mtpc_stickerSetCovered: {
|
||||
auto &d = stickerSet.c_stickerSetCovered();
|
||||
if (d.vset().type() == mtpc_stickerSet) {
|
||||
setData = &d.vset().c_stickerSet();
|
||||
}
|
||||
} break;
|
||||
case mtpc_stickerSetMultiCovered: {
|
||||
auto &d = stickerSet.c_stickerSetMultiCovered();
|
||||
if (d.vset().type() == mtpc_stickerSet) {
|
||||
setData = &d.vset().c_stickerSet();
|
||||
}
|
||||
} break;
|
||||
for (const auto &data : v) {
|
||||
const auto set = feedSetCovered(data);
|
||||
if (set->flags & SetFlag::NotLoaded) {
|
||||
setsToRequest.insert(set->id, set->accessHash);
|
||||
}
|
||||
if (setData) {
|
||||
auto set = feedSet(*setData);
|
||||
if (set->stickers.isEmpty()) {
|
||||
setsToRequest.insert(set->id, set->accessHash);
|
||||
}
|
||||
const auto masks = !!(set->flags & SetFlag::Masks);
|
||||
(masks ? masksCount : stickersCount)++;
|
||||
auto &order = masks ? maskSetsOrderRef() : setsOrderRef();
|
||||
const auto index = order.indexOf(set->id);
|
||||
if (index >= 0) {
|
||||
order.removeAt(index);
|
||||
}
|
||||
archived.push_back(set->id);
|
||||
const auto masks = !!(set->flags & SetFlag::Masks);
|
||||
(masks ? masksCount : stickersCount)++;
|
||||
auto &order = masks ? maskSetsOrderRef() : setsOrderRef();
|
||||
const auto index = order.indexOf(set->id);
|
||||
if (index >= 0) {
|
||||
order.removeAt(index);
|
||||
}
|
||||
archived.push_back(set->id);
|
||||
}
|
||||
if (!setsToRequest.isEmpty()) {
|
||||
for (auto i = setsToRequest.cbegin(), e = setsToRequest.cend(); i != e; ++i) {
|
||||
|
@ -686,7 +669,7 @@ void Stickers::emojiReceived(
|
|||
}
|
||||
|
||||
void Stickers::somethingReceived(
|
||||
const QVector<MTPStickerSet> &data,
|
||||
const QVector<MTPStickerSet> &list,
|
||||
uint64 hash,
|
||||
StickersType type) {
|
||||
auto &setsOrder = (type == StickersType::Emoji)
|
||||
|
@ -711,11 +694,8 @@ void Stickers::somethingReceived(
|
|||
set->installDate = 0;
|
||||
}
|
||||
}
|
||||
for (const auto &setData : data) {
|
||||
if (setData.type() != mtpc_stickerSet) {
|
||||
continue;
|
||||
}
|
||||
const auto set = feedSet(setData.c_stickerSet());
|
||||
for (const auto &info : list) {
|
||||
const auto set = feedSet(info);
|
||||
if (!(set->flags & SetFlag::Archived)
|
||||
|| (set->flags & SetFlag::Official)) {
|
||||
setsOrder.push_back(set->id);
|
||||
|
@ -1279,8 +1259,9 @@ std::optional<std::vector<not_null<EmojiPtr>>> Stickers::getEmojiListFromSet(
|
|||
return std::nullopt;
|
||||
}
|
||||
|
||||
StickersSet *Stickers::feedSet(const MTPDstickerSet &data) {
|
||||
not_null<StickersSet*> Stickers::feedSet(const MTPStickerSet &info) {
|
||||
auto &sets = setsRef();
|
||||
const auto &data = info.data();
|
||||
auto it = sets.find(data.vid().v);
|
||||
auto title = getSetTitle(data);
|
||||
auto oldFlags = StickersSetFlags(0);
|
||||
|
@ -1356,31 +1337,50 @@ StickersSet *Stickers::feedSet(const MTPDstickerSet &data) {
|
|||
return it->second.get();
|
||||
}
|
||||
|
||||
StickersSet *Stickers::feedSetFull(const MTPDmessages_stickerSet &d) {
|
||||
Expects(d.vset().type() == mtpc_stickerSet);
|
||||
not_null<StickersSet*> Stickers::feedSetFull(
|
||||
const MTPDmessages_stickerSet &data) {
|
||||
const auto set = feedSet(data.vset());
|
||||
feedSetStickers(set, data.vdocuments().v, data.vpacks().v);
|
||||
return set;
|
||||
}
|
||||
|
||||
const auto &s = d.vset().c_stickerSet();
|
||||
not_null<StickersSet*> Stickers::feedSetCovered(
|
||||
const MTPStickerSetCovered &data) {
|
||||
const auto set = data.match([&](const auto &data) {
|
||||
return feedSet(data.vset());
|
||||
});
|
||||
data.match([](const MTPDstickerSetCovered &data) {
|
||||
}, [&](const MTPDstickerSetMultiCovered &data) {
|
||||
feedSetCovers(set, data.vcovers().v);
|
||||
}, [&](const MTPDstickerSetFullCovered &data) {
|
||||
feedSetStickers(set, data.vdocuments().v, data.vpacks().v);
|
||||
});
|
||||
return set;
|
||||
}
|
||||
|
||||
void Stickers::feedSetStickers(
|
||||
not_null<StickersSet*> set,
|
||||
const QVector<MTPDocument> &documents,
|
||||
const QVector<MTPStickerPack> &packs) {
|
||||
set->flags &= ~SetFlag::NotLoaded;
|
||||
|
||||
auto &sets = setsRef();
|
||||
const auto wasArchived = [&] {
|
||||
auto it = sets.find(s.vid().v);
|
||||
const auto it = sets.find(set->id);
|
||||
return (it != sets.end())
|
||||
&& (it->second->flags & SetFlag::Archived);
|
||||
}();
|
||||
|
||||
auto set = feedSet(s);
|
||||
|
||||
set->flags &= ~SetFlag::NotLoaded;
|
||||
|
||||
const auto &d_docs = d.vdocuments().v;
|
||||
auto customIt = sets.find(Stickers::CustomSetId);
|
||||
const auto inputSet = set->identifier();
|
||||
|
||||
auto pack = StickersPack();
|
||||
pack.reserve(d_docs.size());
|
||||
for (const auto &item : d_docs) {
|
||||
pack.reserve(documents.size());
|
||||
for (const auto &item : documents) {
|
||||
const auto document = owner().processDocument(item);
|
||||
if (!document->sticker()) continue;
|
||||
if (!document->sticker()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
pack.push_back(document);
|
||||
if (!document->sticker()->set.id) {
|
||||
|
@ -1402,7 +1402,8 @@ StickersSet *Stickers::feedSetFull(const MTPDmessages_stickerSet &d) {
|
|||
auto writeRecent = false;
|
||||
auto &recent = getRecentPack();
|
||||
for (auto i = recent.begin(); i != recent.cend();) {
|
||||
if (set->stickers.indexOf(i->first) >= 0 && pack.indexOf(i->first) < 0) {
|
||||
if (set->stickers.indexOf(i->first) >= 0
|
||||
&& pack.indexOf(i->first) < 0) {
|
||||
i = recent.erase(i);
|
||||
writeRecent = true;
|
||||
} else {
|
||||
|
@ -1412,43 +1413,24 @@ StickersSet *Stickers::feedSetFull(const MTPDmessages_stickerSet &d) {
|
|||
|
||||
const auto isEmoji = !!(set->flags & SetFlag::Emoji);
|
||||
const auto isMasks = !!(set->flags & SetFlag::Masks);
|
||||
if (pack.isEmpty()) {
|
||||
const auto removeIndex = (isEmoji
|
||||
? emojiSetsOrder()
|
||||
: isMasks
|
||||
? maskSetsOrder()
|
||||
: setsOrder()).indexOf(set->id);
|
||||
if (removeIndex >= 0) {
|
||||
(isEmoji
|
||||
? emojiSetsOrderRef()
|
||||
: isMasks
|
||||
? maskSetsOrderRef()
|
||||
: setsOrderRef()).removeAt(removeIndex);
|
||||
}
|
||||
sets.remove(set->id);
|
||||
set = nullptr;
|
||||
} else {
|
||||
set->stickers = pack;
|
||||
set->emoji.clear();
|
||||
auto &v = d.vpacks().v;
|
||||
for (auto i = 0, l = int(v.size()); i != l; ++i) {
|
||||
if (v[i].type() != mtpc_stickerPack) continue;
|
||||
set->stickers = pack;
|
||||
set->emoji.clear();
|
||||
for (auto i = 0, l = int(packs.size()); i != l; ++i) {
|
||||
const auto &pack = packs[i].data();
|
||||
if (auto emoji = Ui::Emoji::Find(qs(pack.vemoticon()))) {
|
||||
emoji = emoji->original();
|
||||
auto &stickers = pack.vdocuments().v;
|
||||
|
||||
auto &pack = v[i].c_stickerPack();
|
||||
if (auto emoji = Ui::Emoji::Find(qs(pack.vemoticon()))) {
|
||||
emoji = emoji->original();
|
||||
auto &stickers = pack.vdocuments().v;
|
||||
|
||||
StickersPack p;
|
||||
p.reserve(stickers.size());
|
||||
for (auto j = 0, c = int(stickers.size()); j != c; ++j) {
|
||||
auto doc = owner().document(stickers[j].v);
|
||||
if (!doc || !doc->sticker()) continue;
|
||||
|
||||
p.push_back(doc);
|
||||
auto p = StickersPack();
|
||||
p.reserve(stickers.size());
|
||||
for (auto j = 0, c = int(stickers.size()); j != c; ++j) {
|
||||
const auto document = owner().document(stickers[j].v);
|
||||
if (!document->sticker()) {
|
||||
continue;
|
||||
}
|
||||
set->emoji.insert(emoji, p);
|
||||
p.push_back(document);
|
||||
}
|
||||
set->emoji.insert(emoji, p);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1456,34 +1438,40 @@ StickersSet *Stickers::feedSetFull(const MTPDmessages_stickerSet &d) {
|
|||
session().saveSettings();
|
||||
}
|
||||
|
||||
if (set) {
|
||||
const auto isArchived = !!(set->flags & SetFlag::Archived);
|
||||
if ((set->flags & SetFlag::Installed) && !isArchived) {
|
||||
if (isEmoji) {
|
||||
session().local().writeInstalledCustomEmoji();
|
||||
} else if (isMasks) {
|
||||
session().local().writeInstalledMasks();
|
||||
} else {
|
||||
session().local().writeInstalledStickers();
|
||||
}
|
||||
}
|
||||
if (set->flags & SetFlag::Featured) {
|
||||
session().local().writeFeaturedStickers();
|
||||
}
|
||||
if (wasArchived != isArchived) {
|
||||
if (isEmoji) {
|
||||
|
||||
} else if (isMasks) {
|
||||
session().local().writeArchivedMasks();
|
||||
} else {
|
||||
session().local().writeArchivedStickers();
|
||||
}
|
||||
const auto isArchived = !!(set->flags & SetFlag::Archived);
|
||||
if ((set->flags & SetFlag::Installed) && !isArchived) {
|
||||
if (isEmoji) {
|
||||
session().local().writeInstalledCustomEmoji();
|
||||
} else if (isMasks) {
|
||||
session().local().writeInstalledMasks();
|
||||
} else {
|
||||
session().local().writeInstalledStickers();
|
||||
}
|
||||
}
|
||||
if (set->flags & SetFlag::Featured) {
|
||||
session().local().writeFeaturedStickers();
|
||||
}
|
||||
if (wasArchived != isArchived) {
|
||||
if (isEmoji) {
|
||||
} else if (isMasks) {
|
||||
session().local().writeArchivedMasks();
|
||||
} else {
|
||||
session().local().writeArchivedStickers();
|
||||
}
|
||||
}
|
||||
|
||||
notifyUpdated();
|
||||
}
|
||||
|
||||
return set;
|
||||
void Stickers::feedSetCovers(
|
||||
not_null<StickersSet*> set,
|
||||
const QVector<MTPDocument> &documents) {
|
||||
set->covers = StickersPack();
|
||||
for (const auto &cover : documents) {
|
||||
const auto document = session().data().processDocument(cover);
|
||||
if (document->sticker()) {
|
||||
set->covers.push_back(document);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Stickers::newSetReceived(const MTPDmessages_stickerSet &set) {
|
||||
|
|
|
@ -228,8 +228,16 @@ public:
|
|||
std::optional<std::vector<not_null<EmojiPtr>>> getEmojiListFromSet(
|
||||
not_null<DocumentData*> document);
|
||||
|
||||
StickersSet *feedSet(const MTPDstickerSet &data);
|
||||
StickersSet *feedSetFull(const MTPDmessages_stickerSet &d);
|
||||
not_null<StickersSet*> feedSet(const MTPStickerSet &data);
|
||||
not_null<StickersSet*> feedSetFull(const MTPDmessages_stickerSet &data);
|
||||
not_null<StickersSet*> feedSetCovered(const MTPStickerSetCovered &data);
|
||||
void feedSetStickers(
|
||||
not_null<StickersSet*> set,
|
||||
const QVector<MTPDocument> &documents,
|
||||
const QVector<MTPStickerPack> &packs);
|
||||
void feedSetCovers(
|
||||
not_null<StickersSet*> set,
|
||||
const QVector<MTPDocument> &documents);
|
||||
void newSetReceived(const MTPDmessages_stickerSet &set);
|
||||
|
||||
QString getSetTitle(const MTPDstickerSet &s);
|
||||
|
@ -266,7 +274,7 @@ private:
|
|||
const std::vector<TimeId> &&dates,
|
||||
const QVector<MTPStickerPack> &packs);
|
||||
void somethingReceived(
|
||||
const QVector<MTPStickerSet> &data,
|
||||
const QVector<MTPStickerSet> &list,
|
||||
uint64 hash,
|
||||
StickersType type);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue