From a511f1c56f889f1ead220f77f71df2a3cb999aee Mon Sep 17 00:00:00 2001 From: levlam Date: Thu, 23 Mar 2023 17:26:24 +0300 Subject: [PATCH] Improve field names in DialogFilter. --- td/telegram/DialogFilter.cpp | 321 ++++++++++++++++++----------------- td/telegram/DialogFilter.h | 38 ++--- td/telegram/DialogFilter.hpp | 62 +++---- 3 files changed, 213 insertions(+), 208 deletions(-) diff --git a/td/telegram/DialogFilter.cpp b/td/telegram/DialogFilter.cpp index 3f493c318..6e643cd23 100644 --- a/td/telegram/DialogFilter.cpp +++ b/td/telegram/DialogFilter.cpp @@ -45,22 +45,22 @@ unique_ptr DialogFilter::get_dialog_filter( dialog_filter_id = DialogFilterId(); } auto dialog_filter = make_unique(); - dialog_filter->dialog_filter_id = dialog_filter_id; - dialog_filter->title = std::move(filter->title_); - dialog_filter->emoji = std::move(filter->emoticon_); + dialog_filter->dialog_filter_id_ = dialog_filter_id; + dialog_filter->title_ = std::move(filter->title_); + dialog_filter->emoji_ = std::move(filter->emoticon_); FlatHashSet added_dialog_ids; - dialog_filter->pinned_dialog_ids = InputDialogId::get_input_dialog_ids(filter->pinned_peers_, &added_dialog_ids); - dialog_filter->included_dialog_ids = InputDialogId::get_input_dialog_ids(filter->include_peers_, &added_dialog_ids); - dialog_filter->excluded_dialog_ids = InputDialogId::get_input_dialog_ids(filter->exclude_peers_, &added_dialog_ids); + dialog_filter->pinned_dialog_ids_ = InputDialogId::get_input_dialog_ids(filter->pinned_peers_, &added_dialog_ids); + dialog_filter->included_dialog_ids_ = InputDialogId::get_input_dialog_ids(filter->include_peers_, &added_dialog_ids); + dialog_filter->excluded_dialog_ids_ = InputDialogId::get_input_dialog_ids(filter->exclude_peers_, &added_dialog_ids); auto flags = filter->flags_; - dialog_filter->exclude_muted = (flags & telegram_api::dialogFilter::EXCLUDE_MUTED_MASK) != 0; - dialog_filter->exclude_read = (flags & telegram_api::dialogFilter::EXCLUDE_READ_MASK) != 0; - dialog_filter->exclude_archived = (flags & telegram_api::dialogFilter::EXCLUDE_ARCHIVED_MASK) != 0; - dialog_filter->include_contacts = (flags & telegram_api::dialogFilter::CONTACTS_MASK) != 0; - dialog_filter->include_non_contacts = (flags & telegram_api::dialogFilter::NON_CONTACTS_MASK) != 0; - dialog_filter->include_bots = (flags & telegram_api::dialogFilter::BOTS_MASK) != 0; - dialog_filter->include_groups = (flags & telegram_api::dialogFilter::GROUPS_MASK) != 0; - dialog_filter->include_channels = (flags & telegram_api::dialogFilter::BROADCASTS_MASK) != 0; + dialog_filter->exclude_muted_ = (flags & telegram_api::dialogFilter::EXCLUDE_MUTED_MASK) != 0; + dialog_filter->exclude_read_ = (flags & telegram_api::dialogFilter::EXCLUDE_READ_MASK) != 0; + dialog_filter->exclude_archived_ = (flags & telegram_api::dialogFilter::EXCLUDE_ARCHIVED_MASK) != 0; + dialog_filter->include_contacts_ = (flags & telegram_api::dialogFilter::CONTACTS_MASK) != 0; + dialog_filter->include_non_contacts_ = (flags & telegram_api::dialogFilter::NON_CONTACTS_MASK) != 0; + dialog_filter->include_bots_ = (flags & telegram_api::dialogFilter::BOTS_MASK) != 0; + dialog_filter->include_groups_ = (flags & telegram_api::dialogFilter::GROUPS_MASK) != 0; + dialog_filter->include_channels_ = (flags & telegram_api::dialogFilter::BROADCASTS_MASK) != 0; return dialog_filter; } @@ -69,7 +69,7 @@ Result> DialogFilter::create_dialog_filter(Td *td, Dial CHECK(filter != nullptr); auto dialog_filter = make_unique(); - dialog_filter->dialog_filter_id = dialog_filter_id; + dialog_filter->dialog_filter_id_ = dialog_filter_id; FlatHashSet added_dialog_ids; auto add_chats = [td, &added_dialog_ids](vector &input_dialog_ids, const vector &chat_ids) { @@ -82,27 +82,27 @@ Result> DialogFilter::create_dialog_filter(Td *td, Dial input_dialog_ids.push_back(td->messages_manager_->get_input_dialog_id(DialogId(chat_id))); } }; - add_chats(dialog_filter->pinned_dialog_ids, filter->pinned_chat_ids_); - add_chats(dialog_filter->included_dialog_ids, filter->included_chat_ids_); - add_chats(dialog_filter->excluded_dialog_ids, filter->excluded_chat_ids_); + add_chats(dialog_filter->pinned_dialog_ids_, filter->pinned_chat_ids_); + add_chats(dialog_filter->included_dialog_ids_, filter->included_chat_ids_); + add_chats(dialog_filter->excluded_dialog_ids_, filter->excluded_chat_ids_); constexpr size_t MAX_TITLE_LENGTH = 12; // server-side limit for dialog filter title - dialog_filter->title = clean_name(std::move(filter->title_), MAX_TITLE_LENGTH); - if (dialog_filter->title.empty()) { + dialog_filter->title_ = clean_name(std::move(filter->title_), MAX_TITLE_LENGTH); + if (dialog_filter->title_.empty()) { return Status::Error(400, "Title must be non-empty"); } - dialog_filter->emoji = get_emoji_by_icon_name(filter->icon_name_); - if (dialog_filter->emoji.empty() && !filter->icon_name_.empty()) { + dialog_filter->emoji_ = get_emoji_by_icon_name(filter->icon_name_); + if (dialog_filter->emoji_.empty() && !filter->icon_name_.empty()) { return Status::Error(400, "Invalid icon name specified"); } - dialog_filter->exclude_muted = filter->exclude_muted_; - dialog_filter->exclude_read = filter->exclude_read_; - dialog_filter->exclude_archived = filter->exclude_archived_; - dialog_filter->include_contacts = filter->include_contacts_; - dialog_filter->include_non_contacts = filter->include_non_contacts_; - dialog_filter->include_bots = filter->include_bots_; - dialog_filter->include_groups = filter->include_groups_; - dialog_filter->include_channels = filter->include_channels_; + dialog_filter->exclude_muted_ = filter->exclude_muted_; + dialog_filter->exclude_read_ = filter->exclude_read_; + dialog_filter->exclude_archived_ = filter->exclude_archived_; + dialog_filter->include_contacts_ = filter->include_contacts_; + dialog_filter->include_non_contacts_ = filter->include_non_contacts_; + dialog_filter->include_bots_ = filter->include_bots_; + dialog_filter->include_groups_ = filter->include_groups_; + dialog_filter->include_channels_ = filter->include_channels_; TRY_STATUS(dialog_filter->check_limits()); dialog_filter->sort_input_dialog_ids(td, "create_dialog_filter"); @@ -113,13 +113,13 @@ Result> DialogFilter::create_dialog_filter(Td *td, Dial void DialogFilter::set_dialog_is_pinned(InputDialogId input_dialog_id, bool is_pinned) { auto dialog_id = input_dialog_id.get_dialog_id(); if (is_pinned) { - pinned_dialog_ids.insert(pinned_dialog_ids.begin(), input_dialog_id); - InputDialogId::remove(included_dialog_ids, dialog_id); - InputDialogId::remove(excluded_dialog_ids, dialog_id); + pinned_dialog_ids_.insert(pinned_dialog_ids_.begin(), input_dialog_id); + InputDialogId::remove(included_dialog_ids_, dialog_id); + InputDialogId::remove(excluded_dialog_ids_, dialog_id); } else { - bool is_removed = InputDialogId::remove(pinned_dialog_ids, dialog_id); + bool is_removed = InputDialogId::remove(pinned_dialog_ids_, dialog_id); CHECK(is_removed); - included_dialog_ids.push_back(input_dialog_id); + included_dialog_ids_.push_back(input_dialog_id); } } @@ -129,20 +129,20 @@ void DialogFilter::set_pinned_dialog_ids(vector &&input_dialog_id new_pinned_dialog_ids.insert(input_dialog_id.get_dialog_id()); } - auto old_pinned_dialog_ids = std::move(pinned_dialog_ids); - pinned_dialog_ids = std::move(input_dialog_ids); + auto old_pinned_dialog_ids = std::move(pinned_dialog_ids_); + pinned_dialog_ids_ = std::move(input_dialog_ids); auto is_new_pinned = [&new_pinned_dialog_ids](InputDialogId input_dialog_id) { return new_pinned_dialog_ids.count(input_dialog_id.get_dialog_id()) > 0; }; td::remove_if(old_pinned_dialog_ids, is_new_pinned); - td::remove_if(included_dialog_ids, is_new_pinned); - td::remove_if(excluded_dialog_ids, is_new_pinned); - append(included_dialog_ids, old_pinned_dialog_ids); + td::remove_if(included_dialog_ids_, is_new_pinned); + td::remove_if(excluded_dialog_ids_, is_new_pinned); + append(included_dialog_ids_, old_pinned_dialog_ids); } void DialogFilter::include_dialog(InputDialogId input_dialog_id) { - included_dialog_ids.push_back(input_dialog_id); - InputDialogId::remove(excluded_dialog_ids, input_dialog_id.get_dialog_id()); + included_dialog_ids_.push_back(input_dialog_id); + InputDialogId::remove(excluded_dialog_ids_, input_dialog_id.get_dialog_id()); } void DialogFilter::remove_secret_chat_dialog_ids() { @@ -151,37 +151,37 @@ void DialogFilter::remove_secret_chat_dialog_ids() { return input_dialog_id.get_dialog_id().get_type() == DialogType::SecretChat; }); }; - remove_secret_chats(pinned_dialog_ids); - remove_secret_chats(included_dialog_ids); - remove_secret_chats(excluded_dialog_ids); + remove_secret_chats(pinned_dialog_ids_); + remove_secret_chats(included_dialog_ids_); + remove_secret_chats(excluded_dialog_ids_); } void DialogFilter::remove_dialog_id(DialogId dialog_id) { - InputDialogId::remove(pinned_dialog_ids, dialog_id); - InputDialogId::remove(included_dialog_ids, dialog_id); - InputDialogId::remove(excluded_dialog_ids, dialog_id); + InputDialogId::remove(pinned_dialog_ids_, dialog_id); + InputDialogId::remove(included_dialog_ids_, dialog_id); + InputDialogId::remove(excluded_dialog_ids_, dialog_id); } bool DialogFilter::is_empty(bool for_server) const { - if (include_contacts || include_non_contacts || include_bots || include_groups || include_channels) { + if (include_contacts_ || include_non_contacts_ || include_bots_ || include_groups_ || include_channels_) { return false; } if (for_server) { vector empty_input_dialog_ids; - return InputDialogId::are_equivalent(pinned_dialog_ids, empty_input_dialog_ids) && - InputDialogId::are_equivalent(included_dialog_ids, empty_input_dialog_ids); + return InputDialogId::are_equivalent(pinned_dialog_ids_, empty_input_dialog_ids) && + InputDialogId::are_equivalent(included_dialog_ids_, empty_input_dialog_ids); } else { - return pinned_dialog_ids.empty() && included_dialog_ids.empty(); + return pinned_dialog_ids_.empty() && included_dialog_ids_.empty(); } } bool DialogFilter::is_dialog_pinned(DialogId dialog_id) const { - return InputDialogId::contains(pinned_dialog_ids, dialog_id); + return InputDialogId::contains(pinned_dialog_ids_, dialog_id); } bool DialogFilter::is_dialog_included(DialogId dialog_id) const { - return InputDialogId::contains(included_dialog_ids, dialog_id) || is_dialog_pinned(dialog_id); + return InputDialogId::contains(included_dialog_ids_, dialog_id) || is_dialog_pinned(dialog_id); } bool DialogFilter::can_include_dialog(DialogId dialog_id) const { @@ -189,7 +189,7 @@ bool DialogFilter::can_include_dialog(DialogId dialog_id) const { return false; } - if (included_dialog_ids.size() + pinned_dialog_ids.size() < narrow_cast(get_max_filter_dialogs())) { + if (included_dialog_ids_.size() + pinned_dialog_ids_.size() < narrow_cast(get_max_filter_dialogs())) { // fast path return true; } @@ -210,13 +210,13 @@ Status DialogFilter::check_limits() const { return result; }; - auto excluded_server_dialog_count = get_server_dialog_count(excluded_dialog_ids); - auto included_server_dialog_count = get_server_dialog_count(included_dialog_ids); - auto pinned_server_dialog_count = get_server_dialog_count(pinned_dialog_ids); + auto excluded_server_dialog_count = get_server_dialog_count(excluded_dialog_ids_); + auto included_server_dialog_count = get_server_dialog_count(included_dialog_ids_); + auto pinned_server_dialog_count = get_server_dialog_count(pinned_dialog_ids_); - auto excluded_secret_dialog_count = static_cast(excluded_dialog_ids.size()) - excluded_server_dialog_count; - auto included_secret_dialog_count = static_cast(included_dialog_ids.size()) - included_server_dialog_count; - auto pinned_secret_dialog_count = static_cast(pinned_dialog_ids.size()) - pinned_server_dialog_count; + auto excluded_secret_dialog_count = static_cast(excluded_dialog_ids_.size()) - excluded_server_dialog_count; + auto included_secret_dialog_count = static_cast(included_dialog_ids_.size()) - included_server_dialog_count; + auto pinned_secret_dialog_count = static_cast(pinned_dialog_ids_.size()) - pinned_server_dialog_count; auto limit = get_max_filter_dialogs(); if (excluded_server_dialog_count > limit || excluded_secret_dialog_count > limit) { @@ -234,8 +234,8 @@ Status DialogFilter::check_limits() const { return Status::Error(400, "Folder must contain at least 1 chat"); } - if (include_contacts && include_non_contacts && include_bots && include_groups && include_channels && - exclude_archived && !exclude_read && !exclude_muted) { + if (include_contacts_ && include_non_contacts_ && include_bots_ && include_groups_ && include_channels_ && + exclude_archived_ && !exclude_read_ && !exclude_muted_) { return Status::Error(400, "Folder must be different from the main chat list"); } @@ -253,7 +253,7 @@ string DialogFilter::get_emoji_by_icon_name(const string &icon_name) { string DialogFilter::get_icon_name() const { init_icon_names(); - auto it = emoji_to_icon_name_.find(emoji); + auto it = emoji_to_icon_name_.find(emoji_); if (it != emoji_to_icon_name_.end()) { return it->second; } @@ -266,33 +266,33 @@ string DialogFilter::get_chosen_or_default_icon_name() const { return icon_name; } - if (!pinned_dialog_ids.empty() || !included_dialog_ids.empty() || !excluded_dialog_ids.empty()) { + if (!pinned_dialog_ids_.empty() || !included_dialog_ids_.empty() || !excluded_dialog_ids_.empty()) { return "Custom"; } - if (include_contacts || include_non_contacts) { - if (!include_bots && !include_groups && !include_channels) { + if (include_contacts_ || include_non_contacts_) { + if (!include_bots_ && !include_groups_ && !include_channels_) { return "Private"; } } else { - if (!include_bots && !include_channels) { - if (!include_groups) { + if (!include_bots_ && !include_channels_) { + if (!include_groups_) { // just in case return "Custom"; } return "Groups"; } - if (!include_bots && !include_groups) { + if (!include_bots_ && !include_groups_) { return "Channels"; } - if (!include_groups && !include_channels) { + if (!include_groups_ && !include_channels_) { return "Bots"; } } - if (exclude_read && !exclude_muted) { + if (exclude_read_ && !exclude_muted_) { return "Unread"; } - if (exclude_muted && !exclude_read) { + if (exclude_muted_ && !exclude_read_) { return "Unmuted"; } return "Custom"; @@ -337,39 +337,39 @@ string DialogFilter::get_default_icon_name(const td_api::chatFilter *filter) { telegram_api::object_ptr DialogFilter::get_input_dialog_filter() const { int32 flags = 0; - if (!emoji.empty()) { + if (!emoji_.empty()) { flags |= telegram_api::dialogFilter::EMOTICON_MASK; } - if (exclude_muted) { + if (exclude_muted_) { flags |= telegram_api::dialogFilter::EXCLUDE_MUTED_MASK; } - if (exclude_read) { + if (exclude_read_) { flags |= telegram_api::dialogFilter::EXCLUDE_READ_MASK; } - if (exclude_archived) { + if (exclude_archived_) { flags |= telegram_api::dialogFilter::EXCLUDE_ARCHIVED_MASK; } - if (include_contacts) { + if (include_contacts_) { flags |= telegram_api::dialogFilter::CONTACTS_MASK; } - if (include_non_contacts) { + if (include_non_contacts_) { flags |= telegram_api::dialogFilter::NON_CONTACTS_MASK; } - if (include_bots) { + if (include_bots_) { flags |= telegram_api::dialogFilter::BOTS_MASK; } - if (include_groups) { + if (include_groups_) { flags |= telegram_api::dialogFilter::GROUPS_MASK; } - if (include_channels) { + if (include_channels_) { flags |= telegram_api::dialogFilter::BROADCASTS_MASK; } return telegram_api::make_object( flags, false /*ignored*/, false /*ignored*/, false /*ignored*/, false /*ignored*/, false /*ignored*/, - false /*ignored*/, false /*ignored*/, false /*ignored*/, dialog_filter_id.get(), title, emoji, - InputDialogId::get_input_peers(pinned_dialog_ids), InputDialogId::get_input_peers(included_dialog_ids), - InputDialogId::get_input_peers(excluded_dialog_ids)); + false /*ignored*/, false /*ignored*/, false /*ignored*/, dialog_filter_id_.get(), title_, emoji_, + InputDialogId::get_input_peers(pinned_dialog_ids_), InputDialogId::get_input_peers(included_dialog_ids_), + InputDialogId::get_input_peers(excluded_dialog_ids_)); } td_api::object_ptr DialogFilter::get_chat_filter_object( @@ -386,18 +386,19 @@ td_api::object_ptr DialogFilter::get_chat_filter_object( return chat_ids; }; - return td_api::make_object(title, get_icon_name(), get_chat_ids(pinned_dialog_ids), - get_chat_ids(included_dialog_ids), get_chat_ids(excluded_dialog_ids), - exclude_muted, exclude_read, exclude_archived, include_contacts, - include_non_contacts, include_bots, include_groups, include_channels); + return td_api::make_object( + title_, get_icon_name(), get_chat_ids(pinned_dialog_ids_), get_chat_ids(included_dialog_ids_), + get_chat_ids(excluded_dialog_ids_), exclude_muted_, exclude_read_, exclude_archived_, include_contacts_, + include_non_contacts_, include_bots_, include_groups_, include_channels_); } td_api::object_ptr DialogFilter::get_chat_filter_info_object() const { - return td_api::make_object(dialog_filter_id.get(), title, get_chosen_or_default_icon_name()); + return td_api::make_object(dialog_filter_id_.get(), title_, + get_chosen_or_default_icon_name()); } void DialogFilter::for_each_dialog(std::function callback) const { - for (auto input_dialog_ids : {&pinned_dialog_ids, &excluded_dialog_ids, &included_dialog_ids}) { + for (auto input_dialog_ids : {&pinned_dialog_ids_, &excluded_dialog_ids_, &included_dialog_ids_}) { for (const auto &input_dialog_id : *input_dialog_ids) { callback(input_dialog_id); } @@ -411,11 +412,11 @@ unique_ptr DialogFilter::merge_dialog_filter_changes(const DialogF CHECK(old_filter != nullptr); CHECK(old_server_filter != nullptr); CHECK(new_server_filter != nullptr); - CHECK(old_filter->dialog_filter_id == old_server_filter->dialog_filter_id); - CHECK(old_filter->dialog_filter_id == new_server_filter->dialog_filter_id); - auto dialog_filter_id = old_filter->dialog_filter_id; + CHECK(old_filter->dialog_filter_id_ == old_server_filter->dialog_filter_id_); + CHECK(old_filter->dialog_filter_id_ == new_server_filter->dialog_filter_id_); + auto dialog_filter_id = old_filter->dialog_filter_id_; auto new_filter = make_unique(*old_filter); - new_filter->dialog_filter_id = dialog_filter_id; + new_filter->dialog_filter_id_ = dialog_filter_id; auto merge_ordered_changes = [dialog_filter_id](auto &new_dialog_ids, auto old_server_dialog_ids, auto new_server_dialog_ids) { @@ -499,12 +500,12 @@ unique_ptr DialogFilter::merge_dialog_filter_changes(const DialogF new_dialog_ids = std::move(result); }; - merge_ordered_changes(new_filter->pinned_dialog_ids, old_server_filter->pinned_dialog_ids, - new_server_filter->pinned_dialog_ids); - merge_changes(new_filter->included_dialog_ids, old_server_filter->included_dialog_ids, - new_server_filter->included_dialog_ids); - merge_changes(new_filter->excluded_dialog_ids, old_server_filter->excluded_dialog_ids, - new_server_filter->excluded_dialog_ids); + merge_ordered_changes(new_filter->pinned_dialog_ids_, old_server_filter->pinned_dialog_ids_, + new_server_filter->pinned_dialog_ids_); + merge_changes(new_filter->included_dialog_ids_, old_server_filter->included_dialog_ids_, + new_server_filter->included_dialog_ids_); + merge_changes(new_filter->excluded_dialog_ids_, old_server_filter->excluded_dialog_ids_, + new_server_filter->excluded_dialog_ids_); { FlatHashSet added_dialog_ids; @@ -515,9 +516,9 @@ unique_ptr DialogFilter::merge_dialog_filter_changes(const DialogF return !added_dialog_ids.insert(dialog_id).second; }); }; - remove_duplicates(new_filter->pinned_dialog_ids); - remove_duplicates(new_filter->included_dialog_ids); - remove_duplicates(new_filter->excluded_dialog_ids); + remove_duplicates(new_filter->pinned_dialog_ids_); + remove_duplicates(new_filter->included_dialog_ids_); + remove_duplicates(new_filter->excluded_dialog_ids_); } auto update_value = [](auto &new_value, const auto &old_server_value, const auto &new_server_value) { @@ -527,30 +528,33 @@ unique_ptr DialogFilter::merge_dialog_filter_changes(const DialogF } }; - update_value(new_filter->exclude_muted, old_server_filter->exclude_muted, new_server_filter->exclude_muted); - update_value(new_filter->exclude_read, old_server_filter->exclude_read, new_server_filter->exclude_read); - update_value(new_filter->exclude_archived, old_server_filter->exclude_archived, new_server_filter->exclude_archived); - update_value(new_filter->include_contacts, old_server_filter->include_contacts, new_server_filter->include_contacts); - update_value(new_filter->include_non_contacts, old_server_filter->include_non_contacts, - new_server_filter->include_non_contacts); - update_value(new_filter->include_bots, old_server_filter->include_bots, new_server_filter->include_bots); - update_value(new_filter->include_groups, old_server_filter->include_groups, new_server_filter->include_groups); - update_value(new_filter->include_channels, old_server_filter->include_channels, new_server_filter->include_channels); + update_value(new_filter->exclude_muted_, old_server_filter->exclude_muted_, new_server_filter->exclude_muted_); + update_value(new_filter->exclude_read_, old_server_filter->exclude_read_, new_server_filter->exclude_read_); + update_value(new_filter->exclude_archived_, old_server_filter->exclude_archived_, + new_server_filter->exclude_archived_); + update_value(new_filter->include_contacts_, old_server_filter->include_contacts_, + new_server_filter->include_contacts_); + update_value(new_filter->include_non_contacts_, old_server_filter->include_non_contacts_, + new_server_filter->include_non_contacts_); + update_value(new_filter->include_bots_, old_server_filter->include_bots_, new_server_filter->include_bots_); + update_value(new_filter->include_groups_, old_server_filter->include_groups_, new_server_filter->include_groups_); + update_value(new_filter->include_channels_, old_server_filter->include_channels_, + new_server_filter->include_channels_); if (new_filter->check_limits().is_error()) { - LOG(WARNING) << "Failed to merge local and remote changes in " << new_filter->dialog_filter_id + LOG(WARNING) << "Failed to merge local and remote changes in " << new_filter->dialog_filter_id_ << ", keep only local changes"; *new_filter = *old_filter; } - update_value(new_filter->title, old_server_filter->title, new_server_filter->title); - update_value(new_filter->emoji, old_server_filter->emoji, new_server_filter->emoji); + update_value(new_filter->title_, old_server_filter->title_, new_server_filter->title_); + update_value(new_filter->emoji_, old_server_filter->emoji_, new_server_filter->emoji_); return new_filter; } void DialogFilter::sort_input_dialog_ids(const Td *td, const char *source) { - if (!include_contacts && !include_non_contacts && !include_bots && !include_groups && !include_channels) { - excluded_dialog_ids.clear(); + if (!include_contacts_ && !include_non_contacts_ && !include_bots_ && !include_groups_ && !include_channels_) { + excluded_dialog_ids_.clear(); } auto sort_input_dialog_ids = [contacts_manager = @@ -569,8 +573,8 @@ void DialogFilter::sort_input_dialog_ids(const Td *td, const char *source) { }); }; - sort_input_dialog_ids(excluded_dialog_ids); - sort_input_dialog_ids(included_dialog_ids); + sort_input_dialog_ids(excluded_dialog_ids_); + sort_input_dialog_ids(included_dialog_ids_); FlatHashSet all_dialog_ids; for_each_dialog([&](const InputDialogId &input_dialog_id) { @@ -588,7 +592,7 @@ vector DialogFilter::get_folder_ids() const { } bool DialogFilter::can_have_archived_dialogs() const { - return !(exclude_archived && pinned_dialog_ids.empty() && included_dialog_ids.empty()); + return !(exclude_archived_ && pinned_dialog_ids_.empty() && included_dialog_ids_.empty()); } bool DialogFilter::need_dialog(const Td *td, DialogId dialog_id, bool has_unread_mentions, bool is_muted, @@ -596,7 +600,7 @@ bool DialogFilter::need_dialog(const Td *td, DialogId dialog_id, bool has_unread if (is_dialog_included(dialog_id)) { return true; } - if (InputDialogId::contains(excluded_dialog_ids, dialog_id)) { + if (InputDialogId::contains(excluded_dialog_ids_, dialog_id)) { return false; } if (dialog_id.get_type() == DialogType::SecretChat) { @@ -606,47 +610,47 @@ bool DialogFilter::need_dialog(const Td *td, DialogId dialog_id, bool has_unread if (is_dialog_included(user_dialog_id)) { return true; } - if (InputDialogId::contains(excluded_dialog_ids, user_dialog_id)) { + if (InputDialogId::contains(excluded_dialog_ids_, user_dialog_id)) { return false; } } } if (!has_unread_mentions) { - if (exclude_muted && is_muted) { + if (exclude_muted_ && is_muted) { return false; } - if (exclude_read && !has_unread_messages) { + if (exclude_read_ && !has_unread_messages) { return false; } } - if (exclude_archived && folder_id == FolderId::archive()) { + if (exclude_archived_ && folder_id == FolderId::archive()) { return false; } switch (dialog_id.get_type()) { case DialogType::User: { auto user_id = dialog_id.get_user_id(); if (td->contacts_manager_->is_user_bot(user_id)) { - return include_bots; + return include_bots_; } if (user_id == td->contacts_manager_->get_my_id() || td->contacts_manager_->is_user_contact(user_id)) { - return include_contacts; + return include_contacts_; } - return include_non_contacts; + return include_non_contacts_; } case DialogType::Chat: - return include_groups; + return include_groups_; case DialogType::Channel: - return td->contacts_manager_->is_broadcast_channel(dialog_id.get_channel_id()) ? include_channels - : include_groups; + return td->contacts_manager_->is_broadcast_channel(dialog_id.get_channel_id()) ? include_channels_ + : include_groups_; case DialogType::SecretChat: { auto user_id = td->contacts_manager_->get_secret_chat_user_id(dialog_id.get_secret_chat_id()); if (td->contacts_manager_->is_user_bot(user_id)) { - return include_bots; + return include_bots_; } if (td->contacts_manager_->is_user_contact(user_id)) { - return include_contacts; + return include_contacts_; } - return include_non_contacts; + return include_non_contacts_; } default: UNREACHABLE(); @@ -656,7 +660,7 @@ bool DialogFilter::need_dialog(const Td *td, DialogId dialog_id, bool has_unread vector DialogFilter::get_dialog_filter_ids(const vector> &dialog_filters, int32 main_dialog_list_position) { - auto result = transform(dialog_filters, [](const auto &dialog_filter) { return dialog_filter->dialog_filter_id; }); + auto result = transform(dialog_filters, [](const auto &dialog_filter) { return dialog_filter->dialog_filter_id_; }); if (static_cast(main_dialog_list_position) <= result.size()) { result.insert(result.begin() + main_dialog_list_position, DialogFilterId()); } @@ -686,20 +690,20 @@ bool DialogFilter::set_dialog_filters_order(vector> &di CHECK(dialog_filter_ids.size() == dialog_filters.size()); for (size_t i = 0; i < dialog_filters.size(); i++) { for (size_t j = i; j < dialog_filters.size(); j++) { - if (dialog_filters[j]->dialog_filter_id == dialog_filter_ids[i]) { + if (dialog_filters[j]->dialog_filter_id_ == dialog_filter_ids[i]) { if (i != j) { std::swap(dialog_filters[i], dialog_filters[j]); } break; } } - CHECK(dialog_filters[i]->dialog_filter_id == dialog_filter_ids[i]); + CHECK(dialog_filters[i]->dialog_filter_id_ == dialog_filter_ids[i]); } return true; } bool DialogFilter::are_similar(const DialogFilter &lhs, const DialogFilter &rhs) { - if (lhs.title == rhs.title) { + if (lhs.title_ == rhs.title_) { return true; } if (!are_flags_equal(lhs, rhs)) { @@ -707,14 +711,14 @@ bool DialogFilter::are_similar(const DialogFilter &lhs, const DialogFilter &rhs) } vector empty_input_dialog_ids; - if (InputDialogId::are_equivalent(lhs.excluded_dialog_ids, empty_input_dialog_ids) != - InputDialogId::are_equivalent(rhs.excluded_dialog_ids, empty_input_dialog_ids)) { + if (InputDialogId::are_equivalent(lhs.excluded_dialog_ids_, empty_input_dialog_ids) != + InputDialogId::are_equivalent(rhs.excluded_dialog_ids_, empty_input_dialog_ids)) { return false; } - if ((InputDialogId::are_equivalent(lhs.pinned_dialog_ids, empty_input_dialog_ids) && - InputDialogId::are_equivalent(lhs.included_dialog_ids, empty_input_dialog_ids)) != - (InputDialogId::are_equivalent(rhs.pinned_dialog_ids, empty_input_dialog_ids) && - InputDialogId::are_equivalent(rhs.included_dialog_ids, empty_input_dialog_ids))) { + if ((InputDialogId::are_equivalent(lhs.pinned_dialog_ids_, empty_input_dialog_ids) && + InputDialogId::are_equivalent(lhs.included_dialog_ids_, empty_input_dialog_ids)) != + (InputDialogId::are_equivalent(rhs.pinned_dialog_ids_, empty_input_dialog_ids) && + InputDialogId::are_equivalent(rhs.included_dialog_ids_, empty_input_dialog_ids))) { return false; } @@ -722,18 +726,19 @@ bool DialogFilter::are_similar(const DialogFilter &lhs, const DialogFilter &rhs) } bool DialogFilter::are_equivalent(const DialogFilter &lhs, const DialogFilter &rhs) { - return lhs.title == rhs.title && lhs.emoji == rhs.emoji && - InputDialogId::are_equivalent(lhs.pinned_dialog_ids, rhs.pinned_dialog_ids) && - InputDialogId::are_equivalent(lhs.included_dialog_ids, rhs.included_dialog_ids) && - InputDialogId::are_equivalent(lhs.excluded_dialog_ids, rhs.excluded_dialog_ids) && are_flags_equal(lhs, rhs); + return lhs.title_ == rhs.title_ && lhs.emoji_ == rhs.emoji_ && + InputDialogId::are_equivalent(lhs.pinned_dialog_ids_, rhs.pinned_dialog_ids_) && + InputDialogId::are_equivalent(lhs.included_dialog_ids_, rhs.included_dialog_ids_) && + InputDialogId::are_equivalent(lhs.excluded_dialog_ids_, rhs.excluded_dialog_ids_) && are_flags_equal(lhs, rhs); } StringBuilder &operator<<(StringBuilder &string_builder, const DialogFilter &filter) { - return string_builder << filter.dialog_filter_id << " (pinned " << filter.pinned_dialog_ids << ", included " - << filter.included_dialog_ids << ", excluded " << filter.excluded_dialog_ids << ", " - << filter.exclude_muted << ' ' << filter.exclude_read << ' ' << filter.exclude_archived << '/' - << filter.include_contacts << ' ' << filter.include_non_contacts << ' ' << filter.include_bots - << ' ' << filter.include_groups << ' ' << filter.include_channels << ')'; + return string_builder << filter.dialog_filter_id_ << " (pinned " << filter.pinned_dialog_ids_ << ", included " + << filter.included_dialog_ids_ << ", excluded " << filter.excluded_dialog_ids_ << ", " + << filter.exclude_muted_ << ' ' << filter.exclude_read_ << ' ' << filter.exclude_archived_ + << '/' << filter.include_contacts_ << ' ' << filter.include_non_contacts_ << ' ' + << filter.include_bots_ << ' ' << filter.include_groups_ << ' ' << filter.include_channels_ + << ')'; } void DialogFilter::init_icon_names() { @@ -766,10 +771,10 @@ void DialogFilter::init_icon_names() { } bool DialogFilter::are_flags_equal(const DialogFilter &lhs, const DialogFilter &rhs) { - return lhs.exclude_muted == rhs.exclude_muted && lhs.exclude_read == rhs.exclude_read && - lhs.exclude_archived == rhs.exclude_archived && lhs.include_contacts == rhs.include_contacts && - lhs.include_non_contacts == rhs.include_non_contacts && lhs.include_bots == rhs.include_bots && - lhs.include_groups == rhs.include_groups && lhs.include_channels == rhs.include_channels; + return lhs.exclude_muted_ == rhs.exclude_muted_ && lhs.exclude_read_ == rhs.exclude_read_ && + lhs.exclude_archived_ == rhs.exclude_archived_ && lhs.include_contacts_ == rhs.include_contacts_ && + lhs.include_non_contacts_ == rhs.include_non_contacts_ && lhs.include_bots_ == rhs.include_bots_ && + lhs.include_groups_ == rhs.include_groups_ && lhs.include_channels_ == rhs.include_channels_; } FlatHashMap DialogFilter::emoji_to_icon_name_; diff --git a/td/telegram/DialogFilter.h b/td/telegram/DialogFilter.h index 6e5e4f8ba..6081e9e0c 100644 --- a/td/telegram/DialogFilter.h +++ b/td/telegram/DialogFilter.h @@ -46,11 +46,11 @@ class DialogFilter { bool is_empty(bool for_server) const; const DialogFilterId &get_dialog_filter_id() const { - return dialog_filter_id; + return dialog_filter_id_; } const vector &get_pinned_dialog_ids() const { - return pinned_dialog_ids; + return pinned_dialog_ids_; } bool is_dialog_pinned(DialogId dialog_id) const; @@ -108,20 +108,20 @@ class DialogFilter { void parse(ParserT &parser); private: - DialogFilterId dialog_filter_id; - string title; - string emoji; - vector pinned_dialog_ids; - vector included_dialog_ids; - vector excluded_dialog_ids; - bool exclude_muted = false; - bool exclude_read = false; - bool exclude_archived = false; - bool include_contacts = false; - bool include_non_contacts = false; - bool include_bots = false; - bool include_groups = false; - bool include_channels = false; + DialogFilterId dialog_filter_id_; + string title_; + string emoji_; + vector pinned_dialog_ids_; + vector included_dialog_ids_; + vector excluded_dialog_ids_; + bool exclude_muted_ = false; + bool exclude_read_ = false; + bool exclude_archived_ = false; + bool include_contacts_ = false; + bool include_non_contacts_ = false; + bool include_bots_ = false; + bool include_groups_ = false; + bool include_channels_ = false; static FlatHashMap emoji_to_icon_name_; static FlatHashMap icon_name_to_emoji_; @@ -136,9 +136,9 @@ class DialogFilter { }; inline bool operator==(const DialogFilter &lhs, const DialogFilter &rhs) { - return lhs.dialog_filter_id == rhs.dialog_filter_id && lhs.title == rhs.title && lhs.emoji == rhs.emoji && - lhs.pinned_dialog_ids == rhs.pinned_dialog_ids && lhs.included_dialog_ids == rhs.included_dialog_ids && - lhs.excluded_dialog_ids == rhs.excluded_dialog_ids && DialogFilter::are_flags_equal(lhs, rhs); + return lhs.dialog_filter_id_ == rhs.dialog_filter_id_ && lhs.title_ == rhs.title_ && lhs.emoji_ == rhs.emoji_ && + lhs.pinned_dialog_ids_ == rhs.pinned_dialog_ids_ && lhs.included_dialog_ids_ == rhs.included_dialog_ids_ && + lhs.excluded_dialog_ids_ == rhs.excluded_dialog_ids_ && DialogFilter::are_flags_equal(lhs, rhs); } inline bool operator!=(const DialogFilter &lhs, const DialogFilter &rhs) { diff --git a/td/telegram/DialogFilter.hpp b/td/telegram/DialogFilter.hpp index cae1d9dbd..d90b981f3 100644 --- a/td/telegram/DialogFilter.hpp +++ b/td/telegram/DialogFilter.hpp @@ -16,34 +16,34 @@ namespace td { template void DialogFilter::store(StorerT &storer) const { using td::store; - bool has_pinned_dialog_ids = !pinned_dialog_ids.empty(); - bool has_included_dialog_ids = !included_dialog_ids.empty(); - bool has_excluded_dialog_ids = !excluded_dialog_ids.empty(); + bool has_pinned_dialog_ids = !pinned_dialog_ids_.empty(); + bool has_included_dialog_ids = !included_dialog_ids_.empty(); + bool has_excluded_dialog_ids = !excluded_dialog_ids_.empty(); BEGIN_STORE_FLAGS(); - STORE_FLAG(exclude_muted); - STORE_FLAG(exclude_read); - STORE_FLAG(exclude_archived); - STORE_FLAG(include_contacts); - STORE_FLAG(include_non_contacts); - STORE_FLAG(include_bots); - STORE_FLAG(include_groups); - STORE_FLAG(include_channels); + STORE_FLAG(exclude_muted_); + STORE_FLAG(exclude_read_); + STORE_FLAG(exclude_archived_); + STORE_FLAG(include_contacts_); + STORE_FLAG(include_non_contacts_); + STORE_FLAG(include_bots_); + STORE_FLAG(include_groups_); + STORE_FLAG(include_channels_); STORE_FLAG(has_pinned_dialog_ids); STORE_FLAG(has_included_dialog_ids); STORE_FLAG(has_excluded_dialog_ids); END_STORE_FLAGS(); - store(dialog_filter_id, storer); - store(title, storer); - store(emoji, storer); + store(dialog_filter_id_, storer); + store(title_, storer); + store(emoji_, storer); if (has_pinned_dialog_ids) { - store(pinned_dialog_ids, storer); + store(pinned_dialog_ids_, storer); } if (has_included_dialog_ids) { - store(included_dialog_ids, storer); + store(included_dialog_ids_, storer); } if (has_excluded_dialog_ids) { - store(excluded_dialog_ids, storer); + store(excluded_dialog_ids_, storer); } } @@ -54,30 +54,30 @@ void DialogFilter::parse(ParserT &parser) { bool has_included_dialog_ids; bool has_excluded_dialog_ids; BEGIN_PARSE_FLAGS(); - PARSE_FLAG(exclude_muted); - PARSE_FLAG(exclude_read); - PARSE_FLAG(exclude_archived); - PARSE_FLAG(include_contacts); - PARSE_FLAG(include_non_contacts); - PARSE_FLAG(include_bots); - PARSE_FLAG(include_groups); - PARSE_FLAG(include_channels); + PARSE_FLAG(exclude_muted_); + PARSE_FLAG(exclude_read_); + PARSE_FLAG(exclude_archived_); + PARSE_FLAG(include_contacts_); + PARSE_FLAG(include_non_contacts_); + PARSE_FLAG(include_bots_); + PARSE_FLAG(include_groups_); + PARSE_FLAG(include_channels_); PARSE_FLAG(has_pinned_dialog_ids); PARSE_FLAG(has_included_dialog_ids); PARSE_FLAG(has_excluded_dialog_ids); END_PARSE_FLAGS(); - parse(dialog_filter_id, parser); - parse(title, parser); - parse(emoji, parser); + parse(dialog_filter_id_, parser); + parse(title_, parser); + parse(emoji_, parser); if (has_pinned_dialog_ids) { - parse(pinned_dialog_ids, parser); + parse(pinned_dialog_ids_, parser); } if (has_included_dialog_ids) { - parse(included_dialog_ids, parser); + parse(included_dialog_ids_, parser); } if (has_excluded_dialog_ids) { - parse(excluded_dialog_ids, parser); + parse(excluded_dialog_ids_, parser); } }