Improve sticker order for trending sticker sets.
This commit is contained in:
parent
f1247493c5
commit
b6019f25e4
@ -2059,13 +2059,18 @@ tl_object_ptr<td_api::stickerSetInfo> StickersManager::get_sticker_set_info_obje
|
|||||||
vector<FileId> regular_sticker_ids;
|
vector<FileId> regular_sticker_ids;
|
||||||
vector<FileId> premium_sticker_ids;
|
vector<FileId> premium_sticker_ids;
|
||||||
std::tie(regular_sticker_ids, premium_sticker_ids) = split_stickers_by_premium(sticker_set->sticker_ids);
|
std::tie(regular_sticker_ids, premium_sticker_ids) = split_stickers_by_premium(sticker_set->sticker_ids);
|
||||||
size_t max_premium_stickers = 3;
|
auto is_premium = G()->shared_config().get_option_boolean("is_premium");
|
||||||
if (regular_sticker_ids.size() + max_premium_stickers < covers_limit) {
|
size_t max_premium_stickers = is_premium ? covers_limit : 1;
|
||||||
max_premium_stickers = covers_limit - regular_sticker_ids.size();
|
|
||||||
}
|
|
||||||
if (premium_sticker_ids.size() > max_premium_stickers) {
|
if (premium_sticker_ids.size() > max_premium_stickers) {
|
||||||
premium_sticker_ids.resize(max_premium_stickers);
|
premium_sticker_ids.resize(max_premium_stickers);
|
||||||
}
|
}
|
||||||
|
CHECK(premium_sticker_ids.size() <= covers_limit);
|
||||||
|
if (regular_sticker_ids.size() > covers_limit - premium_sticker_ids.size()) {
|
||||||
|
regular_sticker_ids.resize(covers_limit - premium_sticker_ids.size());
|
||||||
|
}
|
||||||
|
if (!is_premium) {
|
||||||
|
std::swap(premium_sticker_ids, regular_sticker_ids);
|
||||||
|
}
|
||||||
|
|
||||||
append(premium_sticker_ids, regular_sticker_ids);
|
append(premium_sticker_ids, regular_sticker_ids);
|
||||||
for (auto sticker_id : premium_sticker_ids) {
|
for (auto sticker_id : premium_sticker_ids) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user