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();