From dc114d62c58c2ec74301b4e140d77ed9068640fb Mon Sep 17 00:00:00 2001 From: John Preston Date: Fri, 17 Aug 2018 14:11:09 +0300 Subject: [PATCH] Handle APP_VERSION_OUTDATED in saving/accepting. --- .../passport/passport_form_controller.cpp | 18 +++++++++++++----- .../passport/passport_form_controller.h | 1 + 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/Telegram/SourceFiles/passport/passport_form_controller.cpp b/Telegram/SourceFiles/passport/passport_form_controller.cpp index 2722a64b3e..1d5cba1236 100644 --- a/Telegram/SourceFiles/passport/passport_form_controller.cpp +++ b/Telegram/SourceFiles/passport/passport_form_controller.cpp @@ -707,7 +707,8 @@ std::vector> FormController::submitGetErrors() { [=] { cancel(); }); }).fail([=](const RPCError &error) { _submitRequestId = 0; - if (AcceptErrorRequiresRestart(error.type())) { + if (handleAppUpdateError(error.type())) { + } else if (AcceptErrorRequiresRestart(error.type())) { suggestRestart(); } else { _view->show(Box( @@ -1925,7 +1926,8 @@ void FormController::sendSaveRequest( }).fail([=](const RPCError &error) { value->saveRequestId = 0; const auto code = error.type(); - if (code == qstr("PHONE_VERIFICATION_NEEDED")) { + if (handleAppUpdateError(code)) { + } else if (code == qstr("PHONE_VERIFICATION_NEEDED")) { if (value->type == Value::Type::Phone) { startPhoneVerification(value); return; @@ -2420,14 +2422,20 @@ bool FormController::parseForm(const MTPaccount_AuthorizationForm &result) { void FormController::formFail(const QString &error) { _savedPasswordValue = QByteArray(); _serviceErrorText = error; - if (error == "APP_VERSION_OUTDATED") { - _view->showUpdateAppBox(); - } else { + if (!handleAppUpdateError(error)) { _view->showCriticalError( lang(lng_passport_form_error) + "\n" + error); } } +bool FormController::handleAppUpdateError(const QString &error) { + if (error == qstr("APP_VERSION_OUTDATED")) { + _view->showUpdateAppBox(); + return true; + } + return false; +} + void FormController::requestPassword() { if (_passwordRequestId) { return; diff --git a/Telegram/SourceFiles/passport/passport_form_controller.h b/Telegram/SourceFiles/passport/passport_form_controller.h index 230d84db0d..657458598a 100644 --- a/Telegram/SourceFiles/passport/passport_form_controller.h +++ b/Telegram/SourceFiles/passport/passport_form_controller.h @@ -399,6 +399,7 @@ private: void fillDownloadedFile( File &destination, const std::vector &source) const; + bool handleAppUpdateError(const QString &error); void submitPassword( const Core::CloudPasswordResult &check,