From 8cd5e51982465c74dfc6fa8e7d70b327d7878a2f Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Sun, 1 Sep 2024 22:16:25 +0300 Subject: [PATCH] Added missed handler of server error when try to reset cloud password. --- Telegram/SourceFiles/api/api_cloud_password.cpp | 5 ----- .../settings_cloud_password_input.cpp | 13 ++++++++++++- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/Telegram/SourceFiles/api/api_cloud_password.cpp b/Telegram/SourceFiles/api/api_cloud_password.cpp index 8995b1191..e974154b9 100644 --- a/Telegram/SourceFiles/api/api_cloud_password.cpp +++ b/Telegram/SourceFiles/api/api_cloud_password.cpp @@ -81,11 +81,6 @@ auto CloudPassword::stateCurrent() const auto CloudPassword::resetPassword() -> rpl::producer { return [=](auto consumer) { - base::call_delayed(3000, [=] { - consumer.put_next_copy(base::unixtime::now() + 86400); - consumer.put_done(); - }); - return rpl::lifetime(); _api.request(MTPaccount_ResetPassword( )).done([=](const MTPaccount_ResetPasswordResult &result) { result.match([&](const MTPDaccount_resetPasswordOk &data) { diff --git a/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_input.cpp b/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_input.cpp index 2321287d7..fc16b8179 100644 --- a/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_input.cpp +++ b/Telegram/SourceFiles/settings/cloud_password/settings_cloud_password_input.cpp @@ -263,7 +263,18 @@ void Input::setupContent() { } close(); _requestLifetime = cloudPassword().resetPassword( - ) | rpl::start_with_error_done([=](const QString &type) { + ) | rpl::start_with_next_error_done([=]( + Api::CloudPassword::ResetRetryDate retryDate) { + _requestLifetime.destroy(); + const auto left = std::max( + retryDate - base::unixtime::now(), + 60); + controller()->show(Ui::MakeInformBox( + tr::lng_cloud_password_reset_later( + tr::now, + lt_duration, + Ui::FormatResetCloudPasswordIn(left)))); + }, [=](const QString &type) { _requestLifetime.destroy(); }, [=] { _requestLifetime.destroy();