Fix unpinning of unknown chats.
This commit is contained in:
parent
2ab94b9ca7
commit
6dfe45c03c
@ -14685,7 +14685,13 @@ void MessagesManager::on_get_dialogs(FolderId folder_id, vector<tl_object_ptr<te
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (auto dialog_id : old_pinned_dialog_ids) {
|
for (auto dialog_id : old_pinned_dialog_ids) {
|
||||||
if (set_dialog_is_pinned(dialog_id, false)) {
|
Dialog *d = get_dialog_force(dialog_id);
|
||||||
|
if (d == nullptr) {
|
||||||
|
LOG(ERROR) << "Failed to find " << dialog_id << " to unpin in " << folder_id;
|
||||||
|
force_create_dialog(dialog_id, "from_pinned_dialog_list", true);
|
||||||
|
d = get_dialog_force(dialog_id);
|
||||||
|
}
|
||||||
|
if (d != nullptr && set_dialog_is_pinned(DialogListId(folder_id), d, false)) {
|
||||||
are_pinned_dialogs_saved = true;
|
are_pinned_dialogs_saved = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -18860,7 +18866,15 @@ Status MessagesManager::set_pinned_dialogs(DialogListId dialog_list_id, vector<D
|
|||||||
set_dialog_is_pinned(dialog_id, true);
|
set_dialog_is_pinned(dialog_id, true);
|
||||||
}
|
}
|
||||||
for (auto dialog_id : old_pinned_dialog_ids) {
|
for (auto dialog_id : old_pinned_dialog_ids) {
|
||||||
set_dialog_is_pinned(dialog_id, false);
|
Dialog *d = get_dialog_force(dialog_id);
|
||||||
|
if (d == nullptr) {
|
||||||
|
LOG(ERROR) << "Failed to find " << dialog_id << " to unpin in " << dialog_list_id;
|
||||||
|
force_create_dialog(dialog_id, "set_pinned_dialogs", true);
|
||||||
|
d = get_dialog_force(dialog_id);
|
||||||
|
}
|
||||||
|
if (d != nullptr) {
|
||||||
|
set_dialog_is_pinned(dialog_list_id, d, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (server_old_dialog_ids != server_new_dialog_ids) {
|
if (server_old_dialog_ids != server_new_dialog_ids) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user