From 1462d1ff3c69dd3ad8c8a6aebd5140793b3b1a8e Mon Sep 17 00:00:00 2001 From: levlam Date: Sun, 31 May 2020 00:26:22 +0300 Subject: [PATCH] Add InputDialogId::contains. GitOrigin-RevId: 89fa1ee325cfebfb02e0aa3f93e658442fc4898a --- td/telegram/InputDialogId.cpp | 9 +++++++++ td/telegram/InputDialogId.h | 2 ++ td/telegram/MessagesManager.cpp | 20 ++++++-------------- 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/td/telegram/InputDialogId.cpp b/td/telegram/InputDialogId.cpp index 2de22a0fe..553ec94af 100644 --- a/td/telegram/InputDialogId.cpp +++ b/td/telegram/InputDialogId.cpp @@ -131,6 +131,15 @@ bool InputDialogId::are_equivalent(const vector &lhs, const vecto return lhs_it == lhs.end() && rhs_it == rhs.end(); } +bool InputDialogId::contains(const vector &input_dialog_ids, DialogId dialog_id) { + for (auto &input_dialog_id : input_dialog_ids) { + if (input_dialog_id.get_dialog_id() == dialog_id) { + return true; + } + } + return false; +} + vector InputDialogId::get_dialog_ids(const vector &input_dialog_ids) { return transform(input_dialog_ids, [](InputDialogId input_dialog_id) { return input_dialog_id.get_dialog_id(); }); } diff --git a/td/telegram/InputDialogId.h b/td/telegram/InputDialogId.h index bbc93db89..6290ea5dc 100644 --- a/td/telegram/InputDialogId.h +++ b/td/telegram/InputDialogId.h @@ -42,6 +42,8 @@ class InputDialogId { static bool are_equivalent(const vector &lhs, const vector &rhs); + static bool contains(const vector &input_dialog_ids, DialogId dialog_id); + bool operator==(const InputDialogId &other) const { return dialog_id == other.dialog_id && access_hash == other.access_hash; } diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index d4646ce71..ce8b211a7 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -31071,34 +31071,26 @@ bool MessagesManager::need_dialog_in_filter(const Dialog *d, const DialogFilter CHECK(filter != nullptr); CHECK(d->order != DEFAULT_ORDER); - auto matches = [](const vector input_dialog_ids, DialogId dialog_id) { - for (auto &input_dialog_id : input_dialog_ids) { - if (input_dialog_id.get_dialog_id() == dialog_id) { - return true; - } - } - return false; - }; - if (matches(filter->pinned_dialog_ids, d->dialog_id)) { + if (InputDialogId::contains(filter->pinned_dialog_ids, d->dialog_id)) { return true; } - if (matches(filter->included_dialog_ids, d->dialog_id)) { + if (InputDialogId::contains(filter->included_dialog_ids, d->dialog_id)) { return true; } - if (matches(filter->excluded_dialog_ids, d->dialog_id)) { + if (InputDialogId::contains(filter->excluded_dialog_ids, d->dialog_id)) { return false; } if (d->dialog_id.get_type() == DialogType::SecretChat) { auto user_id = td_->contacts_manager_->get_secret_chat_user_id(d->dialog_id.get_secret_chat_id()); if (user_id.is_valid()) { auto dialog_id = DialogId(user_id); - if (matches(filter->pinned_dialog_ids, dialog_id)) { + if (InputDialogId::contains(filter->pinned_dialog_ids, dialog_id)) { return true; } - if (matches(filter->included_dialog_ids, dialog_id)) { + if (InputDialogId::contains(filter->included_dialog_ids, dialog_id)) { return true; } - if (matches(filter->excluded_dialog_ids, dialog_id)) { + if (InputDialogId::contains(filter->excluded_dialog_ids, dialog_id)) { return false; } }