Login with QR UI components (#6790)

* Display QR button on login screen if HS supports

* Create start screen

* Add build flag

* Connect start screen to the login

* QR display screen

* Move `LabelledDividerView` into separate file

* Show display QR screen on button tap

* Add swift concurreny to CameraAccessManager

* Introduce `QRLoginServiceProtocol`

* Use new service in screens

* Introduce scan QR code screen

* Remove hardcoded service availability

* Remove unnecessary import

* Add confirmation screen

* Add loading screen

* Fix ZXingObjc targets

* Add failure screen

* Add strings

* Various UI tweaks, navigation according to the service state

* Fix tests

* Add string for invalid QR error

* Add QR login service mode
This commit is contained in:
ismailgulek
2022-10-06 18:05:46 +03:00
committed by GitHub
parent 01ebe6de55
commit 27857f98db
79 changed files with 4094 additions and 9 deletions
+32
View File
@@ -156,6 +156,7 @@
"authentication_login_username" = "Username / Email / Phone";
"authentication_login_forgot_password" = "Forgot password";
"authentication_server_info_title_login" = "Where your conversations live";
"authentication_login_with_qr" = "Sign in with QR code";
"authentication_server_selection_login_title" = "Connect to homeserver";
"authentication_server_selection_login_message" = "What is the address of your server?";
@@ -211,6 +212,37 @@
"authentication_recaptcha_title" = "Are you a human?";
"authentication_qr_login_start_title" = "Scan QR code";
"authentication_qr_login_start_subtitle" = "Use the camera on this device to scan the QR code shown on your other device:";
"authentication_qr_login_start_step1" = "Open Element on your other device";
"authentication_qr_login_start_step2" = "Go to Settings -> Security & Privacy";
"authentication_qr_login_start_step3" = "Select Link a device";
"authentication_qr_login_start_step4" = "Select Show QR code on this device";
"authentication_qr_login_start_need_alternative" = "Need an alternative method?";
"authentication_qr_login_start_display_qr" = "Show QR code on this device";
"authentication_qr_login_display_title" = "Link a device";
"authentication_qr_login_display_subtitle" = "Scan the QR code below with your device thats signed out.";
"authentication_qr_login_display_step1" = "Open Element on your other device";
"authentication_qr_login_display_step2" = "Select Sign in with QR code";
"authentication_qr_login_scan_title" = "Scan QR code";
"authentication_qr_login_scan_subtitle" = "Position the QR code in the square below";
"authentication_qr_login_confirm_title" = "Secure connection established";
"authentication_qr_login_confirm_subtitle" = "Confirm that the code below matches with your other device:";
"authentication_qr_login_confirm_alert" = "Please ensure that you know the origin of this code. By linking devices, you will provide someone with full access to your account.";
"authentication_qr_login_loading_connecting_device" = "Connecting to device";
"authentication_qr_login_loading_waiting_signin" = "Waiting for device to sign in.";
"authentication_qr_login_loading_signed_in" = "You are now signed in on your other device.";
"authentication_qr_login_failure_title" = "Linking failed";
"authentication_qr_login_failure_invalid_qr" = "QR code is invalid.";
"authentication_qr_login_failure_request_denied" = "The request was denied on the other device.";
"authentication_qr_login_failure_request_timed_out" = "The linking wasnt completed in the required time.";
"authentication_qr_login_failure_retry" = "Try again";
// MARK: Password Validation
"password_validation_info_header" = "Your password should meet the criteria below:";
"password_validation_error_header" = "Given password does not meet the criteria below:";