Allow to call update_list_last_dialog_date without sending updates.
GitOrigin-RevId: 82db046228cbfb5d1d78d20be8050896547eca77
This commit is contained in:
parent
22f158ac1f
commit
dcaa9f3fba
@ -30358,7 +30358,7 @@ void MessagesManager::update_last_dialog_date(FolderId folder_id) {
|
||||
}
|
||||
}
|
||||
|
||||
void MessagesManager::update_list_last_pinned_dialog_date(DialogList &list) {
|
||||
void MessagesManager::update_list_last_pinned_dialog_date(DialogList &list, bool only_update) {
|
||||
if (list.last_pinned_dialog_date_ == MAX_DIALOG_DATE) {
|
||||
return;
|
||||
}
|
||||
@ -30376,11 +30376,11 @@ void MessagesManager::update_list_last_pinned_dialog_date(DialogList &list) {
|
||||
}
|
||||
if (list.last_pinned_dialog_date_ < max_dialog_date) {
|
||||
list.last_pinned_dialog_date_ = max_dialog_date;
|
||||
update_list_last_dialog_date(list);
|
||||
update_list_last_dialog_date(list, only_update);
|
||||
}
|
||||
}
|
||||
|
||||
void MessagesManager::update_list_last_dialog_date(DialogList &list) {
|
||||
void MessagesManager::update_list_last_dialog_date(DialogList &list, bool only_update) {
|
||||
auto new_last_dialog_date = list.last_pinned_dialog_date_;
|
||||
for (auto folder_id : get_dialog_list_folder_ids(list)) {
|
||||
const auto &folder = *get_dialog_folder(folder_id);
|
||||
@ -30394,6 +30394,10 @@ void MessagesManager::update_list_last_dialog_date(DialogList &list) {
|
||||
CHECK(old_last_dialog_date < new_last_dialog_date);
|
||||
list.list_last_dialog_date_ = new_last_dialog_date;
|
||||
|
||||
if (only_update) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (auto it = std::upper_bound(list.pinned_dialogs_.begin(), list.pinned_dialogs_.end(), old_last_dialog_date);
|
||||
it != list.pinned_dialogs_.end() && *it <= list.list_last_dialog_date_; ++it) {
|
||||
auto dialog_id = it->get_dialog_id();
|
||||
|
@ -2497,9 +2497,9 @@ class MessagesManager : public Actor {
|
||||
|
||||
void update_last_dialog_date(FolderId folder_id);
|
||||
|
||||
void update_list_last_pinned_dialog_date(DialogList &list);
|
||||
void update_list_last_pinned_dialog_date(DialogList &list, bool only_update = false);
|
||||
|
||||
void update_list_last_dialog_date(DialogList &list);
|
||||
void update_list_last_dialog_date(DialogList &list, bool only_update = false);
|
||||
|
||||
void load_notification_settings();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user