Move get_input_dialog_id to DialogManager.
This commit is contained in:
parent
32898dbe88
commit
b97fa08e62
@ -116,7 +116,7 @@ Result<unique_ptr<DialogFilter>> DialogFilter::create_dialog_filter(Td *td, Dial
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
input_dialog_ids.push_back(td->messages_manager_->get_input_dialog_id(DialogId(chat_id)));
|
input_dialog_ids.push_back(td->dialog_manager_->get_input_dialog_id(DialogId(chat_id)));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
add_chats(dialog_filter->pinned_dialog_ids_, filter->pinned_chat_ids_);
|
add_chats(dialog_filter->pinned_dialog_ids_, filter->pinned_chat_ids_);
|
||||||
|
@ -31,6 +31,16 @@ DialogId DialogManager::get_my_dialog_id() const {
|
|||||||
return DialogId(td_->contacts_manager_->get_my_id());
|
return DialogId(td_->contacts_manager_->get_my_id());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
InputDialogId DialogManager::get_input_dialog_id(DialogId dialog_id) const {
|
||||||
|
auto input_peer = get_input_peer(dialog_id, AccessRights::Read);
|
||||||
|
if (input_peer == nullptr || input_peer->get_id() == telegram_api::inputPeerSelf::ID ||
|
||||||
|
input_peer->get_id() == telegram_api::inputPeerEmpty::ID) {
|
||||||
|
return InputDialogId(dialog_id);
|
||||||
|
} else {
|
||||||
|
return InputDialogId(input_peer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
tl_object_ptr<telegram_api::InputPeer> DialogManager::get_input_peer(DialogId dialog_id,
|
tl_object_ptr<telegram_api::InputPeer> DialogManager::get_input_peer(DialogId dialog_id,
|
||||||
AccessRights access_rights) const {
|
AccessRights access_rights) const {
|
||||||
switch (dialog_id.get_type()) {
|
switch (dialog_id.get_type()) {
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
#include "td/telegram/DialogId.h"
|
#include "td/telegram/DialogId.h"
|
||||||
#include "td/telegram/DialogParticipant.h"
|
#include "td/telegram/DialogParticipant.h"
|
||||||
#include "td/telegram/EmojiStatus.h"
|
#include "td/telegram/EmojiStatus.h"
|
||||||
|
#include "td/telegram/InputDialogId.h"
|
||||||
#include "td/telegram/NotificationSettingsScope.h"
|
#include "td/telegram/NotificationSettingsScope.h"
|
||||||
#include "td/telegram/Photo.h"
|
#include "td/telegram/Photo.h"
|
||||||
#include "td/telegram/td_api.h"
|
#include "td/telegram/td_api.h"
|
||||||
@ -33,6 +34,8 @@ class DialogManager final : public Actor {
|
|||||||
|
|
||||||
DialogId get_my_dialog_id() const;
|
DialogId get_my_dialog_id() const;
|
||||||
|
|
||||||
|
InputDialogId get_input_dialog_id(DialogId dialog_id) const;
|
||||||
|
|
||||||
tl_object_ptr<telegram_api::InputPeer> get_input_peer(DialogId dialog_id, AccessRights access_rights) const;
|
tl_object_ptr<telegram_api::InputPeer> get_input_peer(DialogId dialog_id, AccessRights access_rights) const;
|
||||||
|
|
||||||
static tl_object_ptr<telegram_api::InputPeer> get_input_peer_force(DialogId dialog_id);
|
static tl_object_ptr<telegram_api::InputPeer> get_input_peer_force(DialogId dialog_id);
|
||||||
|
@ -18749,16 +18749,6 @@ td_api::object_ptr<td_api::messageLinkInfo> MessagesManager::get_message_link_in
|
|||||||
for_album);
|
for_album);
|
||||||
}
|
}
|
||||||
|
|
||||||
InputDialogId MessagesManager::get_input_dialog_id(DialogId dialog_id) const {
|
|
||||||
auto input_peer = td_->dialog_manager_->get_input_peer(dialog_id, AccessRights::Read);
|
|
||||||
if (input_peer == nullptr || input_peer->get_id() == telegram_api::inputPeerSelf::ID ||
|
|
||||||
input_peer->get_id() == telegram_api::inputPeerEmpty::ID) {
|
|
||||||
return InputDialogId(dialog_id);
|
|
||||||
} else {
|
|
||||||
return InputDialogId(input_peer);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Status MessagesManager::can_add_dialog_to_filter(DialogId dialog_id) {
|
Status MessagesManager::can_add_dialog_to_filter(DialogId dialog_id) {
|
||||||
if (!dialog_id.is_valid()) {
|
if (!dialog_id.is_valid()) {
|
||||||
return Status::Error(400, "Invalid chat identifier specified");
|
return Status::Error(400, "Invalid chat identifier specified");
|
||||||
@ -18977,8 +18967,8 @@ Status MessagesManager::toggle_dialog_is_pinned(DialogListId dialog_list_id, Dia
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (dialog_list_id.is_filter()) {
|
if (dialog_list_id.is_filter()) {
|
||||||
return td_->dialog_filter_manager_->set_dialog_is_pinned(dialog_list_id.get_filter_id(),
|
return td_->dialog_filter_manager_->set_dialog_is_pinned(
|
||||||
get_input_dialog_id(dialog_id), is_pinned);
|
dialog_list_id.get_filter_id(), td_->dialog_manager_->get_input_dialog_id(dialog_id), is_pinned);
|
||||||
}
|
}
|
||||||
|
|
||||||
CHECK(dialog_list_id.is_folder());
|
CHECK(dialog_list_id.is_folder());
|
||||||
@ -19111,7 +19101,8 @@ Status MessagesManager::set_pinned_dialogs(DialogListId dialog_list_id, vector<D
|
|||||||
if (dialog_list_id.is_filter()) {
|
if (dialog_list_id.is_filter()) {
|
||||||
return td_->dialog_filter_manager_->set_pinned_dialog_ids(
|
return td_->dialog_filter_manager_->set_pinned_dialog_ids(
|
||||||
dialog_list_id.get_filter_id(),
|
dialog_list_id.get_filter_id(),
|
||||||
transform(dialog_ids, [this](DialogId dialog_id) { return get_input_dialog_id(dialog_id); }),
|
transform(dialog_ids,
|
||||||
|
[this](DialogId dialog_id) { return td_->dialog_manager_->get_input_dialog_id(dialog_id); }),
|
||||||
server_old_dialog_ids != server_new_dialog_ids);
|
server_old_dialog_ids != server_new_dialog_ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -33352,8 +33343,8 @@ void MessagesManager::add_dialog_to_list(DialogId dialog_id, DialogListId dialog
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (dialog_list_id.is_filter()) {
|
if (dialog_list_id.is_filter()) {
|
||||||
return promise.set_result(
|
return promise.set_result(td_->dialog_filter_manager_->add_dialog(
|
||||||
td_->dialog_filter_manager_->add_dialog(dialog_list_id.get_filter_id(), get_input_dialog_id(dialog_id)));
|
dialog_list_id.get_filter_id(), td_->dialog_manager_->get_input_dialog_id(dialog_id)));
|
||||||
}
|
}
|
||||||
|
|
||||||
CHECK(dialog_list_id.is_folder());
|
CHECK(dialog_list_id.is_folder());
|
||||||
|
@ -657,8 +657,6 @@ class MessagesManager final : public Actor {
|
|||||||
|
|
||||||
td_api::object_ptr<td_api::messageLinkInfo> get_message_link_info_object(const MessageLinkInfo &info) const;
|
td_api::object_ptr<td_api::messageLinkInfo> get_message_link_info_object(const MessageLinkInfo &info) const;
|
||||||
|
|
||||||
InputDialogId get_input_dialog_id(DialogId dialog_id) const;
|
|
||||||
|
|
||||||
bool is_dialog_in_dialog_list(DialogId dialog_id) const;
|
bool is_dialog_in_dialog_list(DialogId dialog_id) const;
|
||||||
|
|
||||||
Status can_add_dialog_to_filter(DialogId dialog_id);
|
Status can_add_dialog_to_filter(DialogId dialog_id);
|
||||||
|
Loading…
Reference in New Issue
Block a user