Added support updateStickerSetsOrder for masks.
This commit is contained in:
parent
1cdb83462e
commit
abe62475cb
|
@ -2141,25 +2141,37 @@ void Updates::feedUpdate(const MTPUpdate &update) {
|
||||||
|
|
||||||
case mtpc_updateStickerSetsOrder: {
|
case mtpc_updateStickerSetsOrder: {
|
||||||
auto &d = update.c_updateStickerSetsOrder();
|
auto &d = update.c_updateStickerSetsOrder();
|
||||||
if (!d.is_masks()) {
|
auto &stickers = session().data().stickers();
|
||||||
const auto &order = d.vorder().v;
|
const auto isMasks = d.is_masks();
|
||||||
const auto &sets = session().data().stickers().sets();
|
const auto &order = d.vorder().v;
|
||||||
Data::StickersSetsOrder result;
|
const auto &sets = stickers.sets();
|
||||||
for (const auto &item : order) {
|
Data::StickersSetsOrder result;
|
||||||
if (sets.find(item.v) == sets.cend()) {
|
for (const auto &item : order) {
|
||||||
break;
|
if (sets.find(item.v) == sets.cend()) {
|
||||||
}
|
break;
|
||||||
result.push_back(item.v);
|
|
||||||
}
|
}
|
||||||
if (result.size() != session().data().stickers().setsOrder().size()
|
result.push_back(item.v);
|
||||||
|| result.size() != order.size()) {
|
}
|
||||||
session().data().stickers().setLastUpdate(0);
|
const auto localSize = isMasks
|
||||||
session().api().updateStickers();
|
? stickers.maskSetsOrder().size()
|
||||||
|
: stickers.setsOrder().size();
|
||||||
|
if ((result.size() != localSize) || (result.size() != order.size())) {
|
||||||
|
if (isMasks) {
|
||||||
|
stickers.setLastMasksUpdate(0);
|
||||||
|
session().api().updateMasks();
|
||||||
} else {
|
} else {
|
||||||
session().data().stickers().setsOrderRef() = std::move(result);
|
stickers.setLastUpdate(0);
|
||||||
session().local().writeInstalledStickers();
|
session().api().updateStickers();
|
||||||
session().data().stickers().notifyUpdated();
|
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
if (isMasks) {
|
||||||
|
stickers.maskSetsOrderRef() = std::move(result);
|
||||||
|
session().local().writeInstalledMasks();
|
||||||
|
} else {
|
||||||
|
stickers.setsOrderRef() = std::move(result);
|
||||||
|
session().local().writeInstalledStickers();
|
||||||
|
}
|
||||||
|
stickers.notifyUpdated();
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue