Add get_dialog_filter_folder_ids.

GitOrigin-RevId: fac4106be470b24a273d75bd3564ae7d9740207a
This commit is contained in:
levlam 2020-05-26 16:05:59 +03:00
parent 5e834b4277
commit d053d46b26
2 changed files with 11 additions and 6 deletions

View File

@ -30449,18 +30449,21 @@ const MessagesManager::DialogFilter *MessagesManager::get_dialog_filter(DialogFi
return nullptr;
}
vector<FolderId> MessagesManager::get_dialog_filter_folder_ids(const DialogFilter *filter) {
CHECK(filter != nullptr);
if (filter->exclude_archived) {
return {FolderId::main()};
}
return {FolderId::main(), FolderId::archive()};
}
vector<FolderId> MessagesManager::get_dialog_list_folder_ids(const DialogList &list) const {
if (list.dialog_list_id.is_folder()) {
return {list.dialog_list_id.get_folder_id()};
}
if (list.dialog_list_id.is_filter()) {
auto dialog_filter_id = list.dialog_list_id.get_filter_id();
auto *filter = get_dialog_filter(dialog_filter_id);
CHECK(filter != nullptr);
if (filter->exclude_archived) {
return {FolderId::main()};
}
return {FolderId::main(), FolderId::archive()};
return get_dialog_filter_folder_ids(get_dialog_filter(dialog_filter_id));
}
UNREACHABLE();
return {};

View File

@ -2266,6 +2266,8 @@ class MessagesManager : public Actor {
DialogFilter *get_dialog_filter(DialogFilterId dialog_filter_id);
const DialogFilter *get_dialog_filter(DialogFilterId dialog_filter_id) const;
static vector<FolderId> get_dialog_filter_folder_ids(const DialogFilter *filter);
vector<FolderId> get_dialog_list_folder_ids(const DialogList &list) const;
bool has_dialogs_from_folder(const DialogList &list, const DialogFolder &folder) const;