From 9929bfb28166045a12276719d1f5fa4ec3ed7bc9 Mon Sep 17 00:00:00 2001 From: John Preston Date: Tue, 10 Jul 2018 12:50:11 +0300 Subject: [PATCH] If only selfie is missing use special phrases. --- Telegram/Resources/langs/lang.strings | 1 + .../passport/passport_form_view_controller.cpp | 11 +++++++++++ .../passport/passport_panel_controller.cpp | 9 +++++++++ 3 files changed, 21 insertions(+) diff --git a/Telegram/Resources/langs/lang.strings b/Telegram/Resources/langs/lang.strings index 906990f53f..18a7a759fb 100644 --- a/Telegram/Resources/langs/lang.strings +++ b/Telegram/Resources/langs/lang.strings @@ -1561,6 +1561,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL "lng_passport_identity_internal" = "Internal passport"; "lng_passport_identity_internal_upload" = "Upload a scan of your internal passport"; "lng_passport_identity_about" = "The document must contain your photograph, first and last name, date of birth, document number, country of issue, and expiry date."; +"lng_passport_identity_selfie" = "Take a selfie with your document"; "lng_passport_address_title" = "Residential address"; "lng_passport_address_description" = "Upload a proof of your address"; "lng_passport_address_bill" = "Utility bill"; diff --git a/Telegram/SourceFiles/passport/passport_form_view_controller.cpp b/Telegram/SourceFiles/passport/passport_form_view_controller.cpp index d0eed7e7ca..fb119f9d35 100644 --- a/Telegram/SourceFiles/passport/passport_form_view_controller.cpp +++ b/Telegram/SourceFiles/passport/passport_form_view_controller.cpp @@ -264,6 +264,17 @@ ScopeRow ComputeScopeRow(const Scope &scope) { ranges::for_each(scope.documents, addValueErrors); addValueErrors(scope.fields); row.error = errors.join('\n'); + if (row.error.isEmpty() + && row.ready.isEmpty() + && scope.type == Scope::Type::Identity + && scope.selfieRequired) { + auto noSelfieScope = scope; + noSelfieScope.selfieRequired = false; + if (!ComputeScopeRowReadyString(noSelfieScope).isEmpty()) { + // Only selfie is missing. + row.description = lang(lng_passport_identity_selfie); + } + } return row; }; switch (scope.type) { diff --git a/Telegram/SourceFiles/passport/passport_panel_controller.cpp b/Telegram/SourceFiles/passport/passport_panel_controller.cpp index 441f681e45..e408989236 100644 --- a/Telegram/SourceFiles/passport/passport_panel_controller.cpp +++ b/Telegram/SourceFiles/passport/passport_panel_controller.cpp @@ -813,6 +813,15 @@ int PanelController::findNonEmptyDocumentIndex(const Scope &scope) const { if (i != end(documents)) { return (i - begin(documents)); } + // If we have a document where only selfie is not filled - return it. + const auto j = ranges::find_if( + documents, + [&](not_null document) { + return document->scansAreFilled(false); + }); + if (j != end(documents)) { + return (j - begin(documents)); + } return -1; }