Load all Saved Messages tags from database.
This commit is contained in:
parent
56e37a87a2
commit
04f3432574
@ -936,9 +936,28 @@ void ReactionManager::send_set_default_reaction_query() {
|
|||||||
ReactionType(td_->option_manager_->get_option_string("default_reaction")));
|
ReactionType(td_->option_manager_->get_option_string("default_reaction")));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ReactionManager::load_all_saved_reaction_tags_from_database() {
|
||||||
|
if (are_all_tags_loaded_from_database_ || all_tags_.is_inited_ || !G()->use_message_database()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
are_all_tags_loaded_from_database_ = true;
|
||||||
|
|
||||||
|
auto value = G()->td_db()->get_sqlite_sync_pmc()->get(get_saved_messages_tags_database_key(SavedMessagesTopicId()));
|
||||||
|
if (!value.empty()) {
|
||||||
|
if (log_event_parse(all_tags_, value).is_ok()) {
|
||||||
|
send_update_saved_messages_tags(SavedMessagesTopicId(), &all_tags_, true);
|
||||||
|
} else {
|
||||||
|
LOG(ERROR) << "Failed to load all tags from database";
|
||||||
|
all_tags_ = {};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
reget_saved_messages_tags(SavedMessagesTopicId(), Auto());
|
||||||
|
}
|
||||||
|
|
||||||
ReactionManager::SavedReactionTags *ReactionManager::get_saved_reaction_tags(
|
ReactionManager::SavedReactionTags *ReactionManager::get_saved_reaction_tags(
|
||||||
SavedMessagesTopicId saved_messages_topic_id) {
|
SavedMessagesTopicId saved_messages_topic_id) {
|
||||||
if (saved_messages_topic_id == SavedMessagesTopicId()) {
|
if (saved_messages_topic_id == SavedMessagesTopicId()) {
|
||||||
|
load_all_saved_reaction_tags_from_database();
|
||||||
return &all_tags_;
|
return &all_tags_;
|
||||||
}
|
}
|
||||||
auto it = topic_tags_.find(saved_messages_topic_id);
|
auto it = topic_tags_.find(saved_messages_topic_id);
|
||||||
@ -951,6 +970,7 @@ ReactionManager::SavedReactionTags *ReactionManager::get_saved_reaction_tags(
|
|||||||
ReactionManager::SavedReactionTags *ReactionManager::add_saved_reaction_tags(
|
ReactionManager::SavedReactionTags *ReactionManager::add_saved_reaction_tags(
|
||||||
SavedMessagesTopicId saved_messages_topic_id) {
|
SavedMessagesTopicId saved_messages_topic_id) {
|
||||||
if (saved_messages_topic_id == SavedMessagesTopicId()) {
|
if (saved_messages_topic_id == SavedMessagesTopicId()) {
|
||||||
|
load_all_saved_reaction_tags_from_database();
|
||||||
return &all_tags_;
|
return &all_tags_;
|
||||||
}
|
}
|
||||||
auto &tags = topic_tags_[saved_messages_topic_id];
|
auto &tags = topic_tags_[saved_messages_topic_id];
|
||||||
@ -1092,8 +1112,9 @@ void ReactionManager::update_saved_messages_tags(SavedMessagesTopicId saved_mess
|
|||||||
if (old_tags == new_tags) {
|
if (old_tags == new_tags) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (all_tags_.update_saved_messages_tags(old_tags, new_tags)) {
|
auto *all_tags = get_saved_reaction_tags(SavedMessagesTopicId());
|
||||||
send_update_saved_messages_tags(SavedMessagesTopicId(), &all_tags_);
|
if (all_tags->update_saved_messages_tags(old_tags, new_tags)) {
|
||||||
|
send_update_saved_messages_tags(SavedMessagesTopicId(), all_tags);
|
||||||
}
|
}
|
||||||
if (saved_messages_topic_id != SavedMessagesTopicId()) {
|
if (saved_messages_topic_id != SavedMessagesTopicId()) {
|
||||||
auto tags = get_saved_reaction_tags(saved_messages_topic_id);
|
auto tags = get_saved_reaction_tags(saved_messages_topic_id);
|
||||||
@ -1109,8 +1130,9 @@ void ReactionManager::set_saved_messages_tag_title(ReactionType reaction_type, s
|
|||||||
}
|
}
|
||||||
title = clean_name(title, MAX_TAG_TITLE_LENGTH);
|
title = clean_name(title, MAX_TAG_TITLE_LENGTH);
|
||||||
|
|
||||||
if (all_tags_.set_tag_title(reaction_type, title)) {
|
auto *all_tags = get_saved_reaction_tags(SavedMessagesTopicId());
|
||||||
send_update_saved_messages_tags(SavedMessagesTopicId(), &all_tags_);
|
if (all_tags->set_tag_title(reaction_type, title)) {
|
||||||
|
send_update_saved_messages_tags(SavedMessagesTopicId(), all_tags);
|
||||||
}
|
}
|
||||||
|
|
||||||
auto query_promise =
|
auto query_promise =
|
||||||
|
@ -224,6 +224,8 @@ class ReactionManager final : public Actor {
|
|||||||
|
|
||||||
string get_saved_messages_tags_database_key(SavedMessagesTopicId saved_messages_topic_id);
|
string get_saved_messages_tags_database_key(SavedMessagesTopicId saved_messages_topic_id);
|
||||||
|
|
||||||
|
void load_all_saved_reaction_tags_from_database();
|
||||||
|
|
||||||
td_api::object_ptr<td_api::updateSavedMessagesTags> get_update_saved_messages_tags_object(
|
td_api::object_ptr<td_api::updateSavedMessagesTags> get_update_saved_messages_tags_object(
|
||||||
SavedMessagesTopicId saved_messages_topic_id, const SavedReactionTags *tags) const;
|
SavedMessagesTopicId saved_messages_topic_id, const SavedReactionTags *tags) const;
|
||||||
|
|
||||||
@ -235,6 +237,7 @@ class ReactionManager final : public Actor {
|
|||||||
|
|
||||||
bool is_inited_ = false;
|
bool is_inited_ = false;
|
||||||
bool are_reactions_loaded_from_database_ = false;
|
bool are_reactions_loaded_from_database_ = false;
|
||||||
|
bool are_all_tags_loaded_from_database_ = false;
|
||||||
|
|
||||||
vector<std::pair<string, Promise<td_api::object_ptr<td_api::emojiReaction>>>> pending_get_emoji_reaction_queries_;
|
vector<std::pair<string, Promise<td_api::object_ptr<td_api::emojiReaction>>>> pending_get_emoji_reaction_queries_;
|
||||||
|
|
||||||
|
@ -441,6 +441,7 @@ Status TdDb::init_sqlite(const Parameters ¶meters, const DbKey &key, const D
|
|||||||
binlog_pmc.erase("fetched_marks_as_unread");
|
binlog_pmc.erase("fetched_marks_as_unread");
|
||||||
binlog_pmc.erase_by_prefix("public_channels");
|
binlog_pmc.erase_by_prefix("public_channels");
|
||||||
binlog_pmc.erase("channels_to_send_stories");
|
binlog_pmc.erase("channels_to_send_stories");
|
||||||
|
binlog_pmc.erase_by_prefix("saved_messages_tags");
|
||||||
}
|
}
|
||||||
if (user_version == 0) {
|
if (user_version == 0) {
|
||||||
binlog_pmc.erase("next_contacts_sync_date");
|
binlog_pmc.erase("next_contacts_sync_date");
|
||||||
|
Loading…
Reference in New Issue
Block a user