Add td_api::updateStickerSet.
GitOrigin-RevId: 4c4299138929e45a2c5a044895f18bd49045256a
This commit is contained in:
parent
34eb79bbb5
commit
6225237cb9
@ -3010,6 +3010,9 @@ updateUnreadChatCount chat_list:ChatList total_count:int32 unread_count:int32 un
|
||||
//@description An option changed its value @name The option name @value The new option value
|
||||
updateOption name:string value:OptionValue = Update;
|
||||
|
||||
//@description A sticker set has changed @sticker_set The sticker set
|
||||
updateStickerSet sticker_set:stickerSet = Update;
|
||||
|
||||
//@description The list of installed sticker sets was updated @is_masks True, if the list of installed mask sticker sets was updated @sticker_set_ids The new list of installed ordinary sticker sets
|
||||
updateInstalledStickerSets is_masks:Bool sticker_set_ids:vector<int64> = Update;
|
||||
|
||||
|
Binary file not shown.
@ -1221,6 +1221,7 @@ tl_object_ptr<td_api::stickerSet> StickersManager::get_sticker_set_object(Sticke
|
||||
const StickerSet *sticker_set = get_sticker_set(sticker_set_id);
|
||||
CHECK(sticker_set != nullptr);
|
||||
CHECK(sticker_set->was_loaded);
|
||||
sticker_set->was_update_sent = true;
|
||||
|
||||
std::vector<tl_object_ptr<td_api::sticker>> stickers;
|
||||
std::vector<tl_object_ptr<td_api::emojis>> emojis;
|
||||
@ -1268,6 +1269,7 @@ tl_object_ptr<td_api::stickerSetInfo> StickersManager::get_sticker_set_info_obje
|
||||
const StickerSet *sticker_set = get_sticker_set(sticker_set_id);
|
||||
CHECK(sticker_set != nullptr);
|
||||
CHECK(sticker_set->is_inited);
|
||||
sticker_set->was_update_sent = true;
|
||||
|
||||
std::vector<tl_object_ptr<td_api::sticker>> stickers;
|
||||
for (auto sticker_id : sticker_set->sticker_ids) {
|
||||
@ -2976,7 +2978,7 @@ string StickersManager::get_sticker_set_database_value(const StickerSet *s, bool
|
||||
void StickersManager::update_sticker_set(StickerSet *sticker_set) {
|
||||
CHECK(sticker_set != nullptr);
|
||||
if (sticker_set->is_changed || sticker_set->need_save_to_database) {
|
||||
if (G()->parameters().use_file_db) {
|
||||
if (G()->parameters().use_file_db && sticker_set->need_save_to_database) {
|
||||
LOG(INFO) << "Save " << sticker_set->id << " to database";
|
||||
if (sticker_set->is_inited) {
|
||||
G()->td_db()->get_sqlite_pmc()->set(get_sticker_set_database_key(sticker_set->id),
|
||||
@ -2987,6 +2989,10 @@ void StickersManager::update_sticker_set(StickerSet *sticker_set) {
|
||||
get_sticker_set_database_value(sticker_set, true), Auto());
|
||||
}
|
||||
}
|
||||
if (sticker_set->is_changed && sticker_set->was_loaded && sticker_set->was_update_sent) {
|
||||
send_closure(G()->td(), &Td::send_update,
|
||||
td_api::make_object<td_api::updateStickerSet>(get_sticker_set_object(sticker_set->id)));
|
||||
}
|
||||
sticker_set->is_changed = false;
|
||||
sticker_set->need_save_to_database = false;
|
||||
if (sticker_set->is_inited) {
|
||||
|
@ -325,6 +325,7 @@ class StickersManager : public Actor {
|
||||
bool is_masks = false;
|
||||
bool is_viewed = true;
|
||||
bool is_thumbnail_reloaded = false;
|
||||
mutable bool was_update_sent = false; // does the sticker set is known to the client
|
||||
bool is_changed = true; // have new changes that need to be sent to the client and database
|
||||
bool need_save_to_database = true; // have new changes that need only to be saved to the database
|
||||
|
||||
|
Reference in New Issue
Block a user