diff --git a/td/telegram/CallActor.cpp b/td/telegram/CallActor.cpp index 5afb9438..ae4cb8c4 100644 --- a/td/telegram/CallActor.cpp +++ b/td/telegram/CallActor.cpp @@ -623,7 +623,7 @@ void CallActor::flush_call_state() { } call_state_need_flush_ = false; - // can't call const function + // TODO can't call const function // send_closure(G()->contacts_manager(), &ContactsManager::get_user_id_object, user_id_, "flush_call_state"); send_closure(G()->td(), &Td::send_update, make_tl_object( diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index d1ff3af7..ab60fb91 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -21625,6 +21625,7 @@ void MessagesManager::force_create_dialog(DialogId dialog_id, const char *source auto user_id = td_->contacts_manager_->get_secret_chat_user_id(dialog_id.get_secret_chat_id()); Dialog *user_d = get_dialog_force(DialogId(user_id)); if (user_d != nullptr && user_d->notification_settings.is_synchronized) { + LOG(INFO) << "Copy notification settings from " << user_d->dialog_id << " to " << dialog_id; update_dialog_notification_settings(dialog_id, &d->notification_settings, user_d->notification_settings); } } diff --git a/td/telegram/Td.cpp b/td/telegram/Td.cpp index 7308dc91..948e71c1 100644 --- a/td/telegram/Td.cpp +++ b/td/telegram/Td.cpp @@ -3025,7 +3025,7 @@ void Td::on_online_updated(bool force, bool send_update) { } if (is_online_) { alarm_timeout_.set_timeout_in(ONLINE_ALARM_ID, - G()->shared_config().get_option_integer("online_update_period_ms", 120000) * 1e-3); + G()->shared_config().get_option_integer("online_update_period_ms", 210000) * 1e-3); } else { alarm_timeout_.cancel_timeout(ONLINE_ALARM_ID); } diff --git a/td/telegram/UpdatesManager.cpp b/td/telegram/UpdatesManager.cpp index a27e4f9b..8a83cd82 100644 --- a/td/telegram/UpdatesManager.cpp +++ b/td/telegram/UpdatesManager.cpp @@ -249,7 +249,7 @@ void UpdatesManager::get_difference(const char *source) { VLOG(get_difference) << "-----BEGIN GET DIFFERENCE----- from " << source; - before_get_difference(); + before_get_difference(false); td_->create_handler()->send(); last_get_difference_pts_ = get_pts(); @@ -257,12 +257,14 @@ void UpdatesManager::get_difference(const char *source) { set_state(State::Type::RunningGetDifference); } -void UpdatesManager::before_get_difference() { +void UpdatesManager::before_get_difference(bool is_initial) { // may be called many times before after_get_difference is called send_closure(G()->state_manager(), &StateManager::on_synchronized, false); td_->messages_manager_->before_get_difference(); - send_closure(td_->secret_chats_manager_, &SecretChatsManager::before_get_difference, get_qts()); + if (!is_initial) { + send_closure(td_->secret_chats_manager_, &SecretChatsManager::before_get_difference, get_qts()); + } send_closure_later(td_->notification_manager_actor_, &NotificationManager::before_get_difference); } @@ -901,7 +903,9 @@ void UpdatesManager::init_state() { if (pts_str.empty()) { if (!running_get_difference_) { running_get_difference_ = true; - send_closure(G()->state_manager(), &StateManager::on_synchronized, false); + + before_get_difference(true); + td_->create_handler()->send(); set_state(State::Type::RunningGetUpdatesState); diff --git a/td/telegram/UpdatesManager.h b/td/telegram/UpdatesManager.h index 3daea008..e94a6315 100644 --- a/td/telegram/UpdatesManager.h +++ b/td/telegram/UpdatesManager.h @@ -171,7 +171,7 @@ class UpdatesManager : public Actor { void on_failed_get_difference(); - void before_get_difference(); + void before_get_difference(bool is_initial); void after_get_difference();