Use dialog_type in fix_new_dialog.

GitOrigin-RevId: cf3fc67af2291e885fd3f6ed5682f708232ec876
This commit is contained in:
levlam 2019-10-11 02:36:23 +03:00
parent d17a1734a4
commit a9dbaa6b78

View File

@ -25782,16 +25782,16 @@ void MessagesManager::fix_new_dialog(Dialog *d, unique_ptr<Message> &&last_datab
MessageId last_clear_history_message_id, bool is_loaded_from_database) {
CHECK(d != nullptr);
auto dialog_id = d->dialog_id;
auto dialog_type = dialog_id.get_type();
if (being_added_dialog_id_ != dialog_id && !td_->auth_manager_->is_bot() && !is_dialog_inited(d) &&
dialog_id.get_type() != DialogType::SecretChat && have_input_peer(dialog_id, AccessRights::Read)) {
dialog_type != DialogType::SecretChat && have_input_peer(dialog_id, AccessRights::Read)) {
// asynchronously get dialog from the server
send_get_dialog_query(dialog_id, Auto());
}
if (being_added_dialog_id_ != dialog_id && !d->is_pinned_message_id_inited &&
(d->dialog_id == get_my_dialog_id() || d->dialog_id.get_type() != DialogType::User) &&
!td_->auth_manager_->is_bot()) {
(dialog_id == get_my_dialog_id() || dialog_type != DialogType::User) && !td_->auth_manager_->is_bot()) {
// asynchronously get dialog pinned message from the server
get_dialog_pinned_message(dialog_id, Auto());
}
@ -25803,7 +25803,7 @@ void MessagesManager::fix_new_dialog(Dialog *d, unique_ptr<Message> &&last_datab
if (!d->know_action_bar && !td_->auth_manager_->is_bot() && dialog_id != get_my_dialog_id() &&
have_input_peer(dialog_id, AccessRights::Read)) {
// asynchronously get action bar from the server
if (dialog_id.get_type() == DialogType::SecretChat) {
if (dialog_type == DialogType::SecretChat) {
auto user_id = td_->contacts_manager_->get_secret_chat_user_id(dialog_id.get_secret_chat_id());
force_create_dialog(DialogId(user_id), "add chat with user to load/store action_bar");
} else {
@ -25814,7 +25814,7 @@ void MessagesManager::fix_new_dialog(Dialog *d, unique_ptr<Message> &&last_datab
if (d->notification_settings.is_synchronized && !d->notification_settings.is_use_default_fixed &&
have_input_peer(dialog_id, AccessRights::Read) && !td_->auth_manager_->is_bot()) {
LOG(INFO) << "Reget notification settings of " << dialog_id;
if (d->dialog_id.get_type() == DialogType::SecretChat) {
if (dialog_type == DialogType::SecretChat) {
if (d->notification_settings.mute_until == 0 && users_notification_settings_.mute_until == 0) {
d->notification_settings.use_default_mute_until = true;
}
@ -25825,7 +25825,7 @@ void MessagesManager::fix_new_dialog(Dialog *d, unique_ptr<Message> &&last_datab
d->notification_settings.use_default_show_preview = true;
}
d->notification_settings.is_use_default_fixed = true;
on_dialog_updated(d->dialog_id, "reget notification settings");
on_dialog_updated(dialog_id, "reget notification settings");
} else {
send_get_dialog_notification_settings_query(dialog_id, Promise<>());
}
@ -25841,7 +25841,7 @@ void MessagesManager::fix_new_dialog(Dialog *d, unique_ptr<Message> &&last_datab
LOG(ERROR) << "Have pinned message notification in " << pinned_message_id << " in " << dialog_id
<< ", but there is no mention notification group";
d->pinned_message_notification_message_id = MessageId();
on_dialog_updated(d->dialog_id, "fix pinned message notification");
on_dialog_updated(dialog_id, "fix pinned message notification");
} else if (is_dialog_pinned_message_notifications_disabled(d) ||
pinned_message_id.get() <= d->last_read_inbox_message_id.get() ||
pinned_message_id.get() <= d->mention_notification_group.max_removed_message_id.get()) {
@ -25851,7 +25851,7 @@ void MessagesManager::fix_new_dialog(Dialog *d, unique_ptr<Message> &&last_datab
d->mention_notification_group.group_id, pinned_message_id, true,
"fix pinned message notification");
d->pinned_message_notification_message_id = MessageId();
on_dialog_updated(d->dialog_id, "fix pinned message notification 2");
on_dialog_updated(dialog_id, "fix pinned message notification 2");
}
}
if (d->new_secret_chat_notification_id.is_valid()) {
@ -25861,7 +25861,7 @@ void MessagesManager::fix_new_dialog(Dialog *d, unique_ptr<Message> &&last_datab
VLOG(notifications) << "Fix removing new secret chat " << d->new_secret_chat_notification_id << " in "
<< dialog_id;
d->new_secret_chat_notification_id = NotificationId();
on_dialog_updated(d->dialog_id, "fix new secret chat notification id");
on_dialog_updated(dialog_id, "fix new secret chat notification id");
}
}
@ -25886,7 +25886,7 @@ void MessagesManager::fix_new_dialog(Dialog *d, unique_ptr<Message> &&last_datab
set_dialog_order(d, order, false, is_loaded_from_database, "fix_new_dialog 9");
if (dialog_id.get_type() != DialogType::SecretChat && d->last_new_message_id.is_valid() &&
if (dialog_type != DialogType::SecretChat && d->last_new_message_id.is_valid() &&
!d->last_new_message_id.is_server()) {
// fix wrong last_new_message_id
d->last_new_message_id = MessageId(d->last_new_message_id.get() & ~MessageId::FULL_TYPE_MASK);
@ -25915,8 +25915,7 @@ void MessagesManager::fix_new_dialog(Dialog *d, unique_ptr<Message> &&last_datab
set_dialog_last_new_message_id(d, d->max_unavailable_message_id, "fix_new_dialog 11");
}
if (last_message_id.is_valid()) {
if ((last_message_id.is_server() || dialog_id.get_type() == DialogType::SecretChat) &&
!d->last_new_message_id.is_valid()) {
if ((last_message_id.is_server() || dialog_type == DialogType::SecretChat) && !d->last_new_message_id.is_valid()) {
LOG(ERROR) << "Bugfixing wrong last_new_message_id to " << last_message_id << " in " << dialog_id;
// must be called before set_dialog_first_database_message_id and set_dialog_last_database_message_id
set_dialog_last_new_message_id(d, last_message_id, "fix_new_dialog 1");
@ -25975,7 +25974,7 @@ void MessagesManager::fix_new_dialog(Dialog *d, unique_ptr<Message> &&last_datab
}
}
switch (dialog_id.get_type()) {
switch (dialog_type) {
case DialogType::User:
break;
case DialogType::Chat:
@ -26018,7 +26017,7 @@ void MessagesManager::fix_new_dialog(Dialog *d, unique_ptr<Message> &&last_datab
}
if (d->need_repair_server_unread_count && have_input_peer(dialog_id, AccessRights::Read)) {
CHECK(dialog_id.get_type() != DialogType::SecretChat);
CHECK(dialog_type != DialogType::SecretChat);
repair_server_unread_count(dialog_id, d->server_unread_count);
}