From 083f52262e56cc13c3ffafc0f7e33f4a25aab293 Mon Sep 17 00:00:00 2001 From: Nicolas Mauri Date: Fri, 17 Feb 2023 18:08:17 +0100 Subject: [PATCH 1/6] Automatically starts scanning the QR code if we have not received a QR code. --- ...nVerifyByScanningViewController.storyboard | 103 +++++++-- ...cationVerifyByScanningViewController.swift | 50 +++- ...erificationVerifyByScanningViewModel.swift | 10 +- .../QRCode/Reader/QRCodeReaderView.swift | 215 ++++++++++++++++++ .../Reader/QRCodeReaderViewController.swift | 164 +------------ changelog.d/3115.change | 1 + 6 files changed, 363 insertions(+), 180 deletions(-) create mode 100644 Riot/Modules/QRCode/Reader/QRCodeReaderView.swift create mode 100644 changelog.d/3115.change diff --git a/Riot/Modules/KeyVerification/Common/Verify/Scanning/KeyVerificationVerifyByScanningViewController.storyboard b/Riot/Modules/KeyVerification/Common/Verify/Scanning/KeyVerificationVerifyByScanningViewController.storyboard index aebbb262a..09fb1cdac 100644 --- a/Riot/Modules/KeyVerification/Common/Verify/Scanning/KeyVerificationVerifyByScanningViewController.storyboard +++ b/Riot/Modules/KeyVerification/Common/Verify/Scanning/KeyVerificationVerifyByScanningViewController.storyboard @@ -1,11 +1,9 @@ - - - - + + - + @@ -13,16 +11,16 @@ - + - + - + @@ -39,7 +37,7 @@ - - - - - - - + + + @@ -145,16 +145,16 @@ Use the latest Riot on your other devices: - - - + - + + + - + @@ -178,6 +178,7 @@ Use the latest Riot on your other devices: + @@ -185,10 +186,8 @@ Use the latest Riot on your other devices: - - @@ -198,6 +197,7 @@ Use the latest Riot on your other devices: + diff --git a/Riot/Modules/KeyVerification/Device/SelfVerifyWait/KeyVerificationSelfVerifyWaitViewController.swift b/Riot/Modules/KeyVerification/Device/SelfVerifyWait/KeyVerificationSelfVerifyWaitViewController.swift index f7969bf22..83d2a7642 100644 --- a/Riot/Modules/KeyVerification/Device/SelfVerifyWait/KeyVerificationSelfVerifyWaitViewController.swift +++ b/Riot/Modules/KeyVerification/Device/SelfVerifyWait/KeyVerificationSelfVerifyWaitViewController.swift @@ -30,13 +30,12 @@ final class KeyVerificationSelfVerifyWaitViewController: UIViewController { // MARK: Outlets + @IBOutlet private weak var titleLabel: UILabel! @IBOutlet private weak var informationLabel: UILabel! @IBOutlet private weak var desktopClientImageView: UIImageView! @IBOutlet private weak var mobileClientImageView: UIImageView! - - @IBOutlet private weak var additionalInformationLabel: UILabel! - + @IBOutlet private weak var recoverSecretsAvailabilityLoadingContainerView: UIView! @IBOutlet private weak var recoverSecretsAvailabilityLoadingLabel: UILabel! @IBOutlet private weak var recoverSecretsAvailabilityActivityIndicatorView: UIActivityIndicatorView! @@ -70,7 +69,6 @@ final class KeyVerificationSelfVerifyWaitViewController: UIViewController { super.viewDidLoad() // Do any additional setup after loading the view. - self.setupViews() self.activityPresenter = ActivityIndicatorPresenter() self.errorPresenter = MXKErrorAlertPresentation() @@ -96,11 +94,11 @@ final class KeyVerificationSelfVerifyWaitViewController: UIViewController { if let navigationBar = self.navigationController?.navigationBar { theme.applyStyle(onNavigationBar: navigationBar) } - - self.informationLabel.textColor = theme.textPrimaryColor + + self.titleLabel.textColor = theme.textPrimaryColor + self.informationLabel.textColor = theme.textSecondaryColor self.desktopClientImageView.tintColor = theme.tintColor self.mobileClientImageView.tintColor = theme.tintColor - self.additionalInformationLabel.textColor = theme.textPrimaryColor self.recoverSecretsAvailabilityLoadingLabel.textColor = theme.textSecondaryColor self.recoverSecretsAvailabilityActivityIndicatorView.color = theme.tintColor } @@ -125,16 +123,13 @@ final class KeyVerificationSelfVerifyWaitViewController: UIViewController { self.cancelBarButtonItem = cancelBarButtonItem } - self.title = VectorL10n.deviceVerificationSelfVerifyWaitTitle - - self.informationLabel.text = VectorL10n.deviceVerificationSelfVerifyWaitInformation(AppInfo.current.displayName) + self.titleLabel.text = VectorL10n.deviceVerificationSelfVerifyOpenOnOtherDeviceTitle(AppInfo.current.displayName) + self.informationLabel.text = VectorL10n.deviceVerificationSelfVerifyOpenOnOtherDeviceInformation self.desktopClientImageView.image = Asset.Images.monitor.image.withRenderingMode(.alwaysTemplate) self.mobileClientImageView.image = Asset.Images.smartphone.image.withRenderingMode(.alwaysTemplate) - - self.additionalInformationLabel.text = VectorL10n.deviceVerificationSelfVerifyWaitAdditionalInformation(AppInfo.current.displayName) - - self.recoverSecretsAdditionalInformationLabel.text = VectorL10n.deviceVerificationSelfVerifyWaitRecoverSecretsAdditionalInformation + + self.recoverSecretsAdditionalInformationLabel.text = VectorL10n.deviceVerificationSelfVerifyWaitRecoverSecretsAdditionalHelp } private func render(viewState: KeyVerificationSelfVerifyWaitViewState) { @@ -168,7 +163,6 @@ final class KeyVerificationSelfVerifyWaitViewController: UIViewController { private func renderLoaded(viewData: KeyVerificationSelfVerifyWaitViewData) { self.activityPresenter.removeCurrentActivityIndicator(animated: true) - self.title = viewData.isNewSignIn ? VectorL10n.deviceVerificationSelfVerifyWaitNewSignInTitle : VectorL10n.deviceVerificationSelfVerifyWaitTitle self.cancelBarButtonItem?.title = viewData.isNewSignIn ? VectorL10n.skip : VectorL10n.cancel let hideRecoverSecrets: Bool From 73d300252503dc4c1f232215fdf9fac55c7f419f Mon Sep 17 00:00:00 2001 From: Nicolas Mauri Date: Fri, 24 Feb 2023 10:37:54 +0100 Subject: [PATCH 5/6] Fix localized string --- Riot/Assets/en.lproj/Vector.strings | 2 +- Riot/Generated/Strings.swift | 6 +++--- .../KeyVerificationSelfVerifyWaitViewController.swift | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Riot/Assets/en.lproj/Vector.strings b/Riot/Assets/en.lproj/Vector.strings index 23010078d..115ec920c 100644 --- a/Riot/Assets/en.lproj/Vector.strings +++ b/Riot/Assets/en.lproj/Vector.strings @@ -1575,7 +1575,7 @@ Tap the + to start adding people."; "device_verification_self_verify_wait_recover_secrets_without_passphrase" = "Use Security Key"; "device_verification_self_verify_wait_recover_secrets_with_passphrase" = "Use Security Phrase or Key"; "device_verification_self_verify_wait_recover_secrets_additional_information" = "If you can't access an existing session"; -"device_verification_self_verify_wait_recover_secrets_additional_help" = "Can't access an existing Element session?"; +"device_verification_self_verify_wait_recover_secrets_additional_help" = "Can't access an existing %@ session?"; "device_verification_self_verify_wait_recover_secrets_checking_availability" = "Checking for other verification capabilities ..."; // MARK: Verify diff --git a/Riot/Generated/Strings.swift b/Riot/Generated/Strings.swift index 451bc2bfa..27e6c2594 100644 --- a/Riot/Generated/Strings.swift +++ b/Riot/Generated/Strings.swift @@ -1903,9 +1903,9 @@ public class VectorL10n: NSObject { public static var deviceVerificationSelfVerifyWaitNewSignInTitle: String { return VectorL10n.tr("Vector", "device_verification_self_verify_wait_new_sign_in_title") } - /// Can't access an existing Element session? - public static var deviceVerificationSelfVerifyWaitRecoverSecretsAdditionalHelp: String { - return VectorL10n.tr("Vector", "device_verification_self_verify_wait_recover_secrets_additional_help") + /// Can't access an existing %@ session? + public static func deviceVerificationSelfVerifyWaitRecoverSecretsAdditionalHelp(_ p1: String) -> String { + return VectorL10n.tr("Vector", "device_verification_self_verify_wait_recover_secrets_additional_help", p1) } /// If you can't access an existing session public static var deviceVerificationSelfVerifyWaitRecoverSecretsAdditionalInformation: String { diff --git a/Riot/Modules/KeyVerification/Device/SelfVerifyWait/KeyVerificationSelfVerifyWaitViewController.swift b/Riot/Modules/KeyVerification/Device/SelfVerifyWait/KeyVerificationSelfVerifyWaitViewController.swift index 83d2a7642..91d3920ba 100644 --- a/Riot/Modules/KeyVerification/Device/SelfVerifyWait/KeyVerificationSelfVerifyWaitViewController.swift +++ b/Riot/Modules/KeyVerification/Device/SelfVerifyWait/KeyVerificationSelfVerifyWaitViewController.swift @@ -129,7 +129,7 @@ final class KeyVerificationSelfVerifyWaitViewController: UIViewController { self.desktopClientImageView.image = Asset.Images.monitor.image.withRenderingMode(.alwaysTemplate) self.mobileClientImageView.image = Asset.Images.smartphone.image.withRenderingMode(.alwaysTemplate) - self.recoverSecretsAdditionalInformationLabel.text = VectorL10n.deviceVerificationSelfVerifyWaitRecoverSecretsAdditionalHelp + self.recoverSecretsAdditionalInformationLabel.text = VectorL10n.deviceVerificationSelfVerifyWaitRecoverSecretsAdditionalHelp(AppInfo.current.displayName) } private func render(viewState: KeyVerificationSelfVerifyWaitViewState) { From eb40c17dd322291defbb77a17a70f513b2faad10 Mon Sep 17 00:00:00 2001 From: Nicolas Mauri Date: Mon, 27 Feb 2023 09:29:59 +0100 Subject: [PATCH 6/6] Remove unused string key --- Riot/Assets/en.lproj/Vector.strings | 1 - Riot/Generated/Strings.swift | 4 ---- 2 files changed, 5 deletions(-) diff --git a/Riot/Assets/en.lproj/Vector.strings b/Riot/Assets/en.lproj/Vector.strings index 115ec920c..85572ccba 100644 --- a/Riot/Assets/en.lproj/Vector.strings +++ b/Riot/Assets/en.lproj/Vector.strings @@ -1574,7 +1574,6 @@ Tap the + to start adding people."; "device_verification_self_verify_open_on_other_device_information" = "You need to verify this session in order to read your secure message history.\n\nOpen Element on one of your other devices and follow the instructions."; "device_verification_self_verify_wait_recover_secrets_without_passphrase" = "Use Security Key"; "device_verification_self_verify_wait_recover_secrets_with_passphrase" = "Use Security Phrase or Key"; -"device_verification_self_verify_wait_recover_secrets_additional_information" = "If you can't access an existing session"; "device_verification_self_verify_wait_recover_secrets_additional_help" = "Can't access an existing %@ session?"; "device_verification_self_verify_wait_recover_secrets_checking_availability" = "Checking for other verification capabilities ..."; diff --git a/Riot/Generated/Strings.swift b/Riot/Generated/Strings.swift index 27e6c2594..4fcd1c6da 100644 --- a/Riot/Generated/Strings.swift +++ b/Riot/Generated/Strings.swift @@ -1907,10 +1907,6 @@ public class VectorL10n: NSObject { public static func deviceVerificationSelfVerifyWaitRecoverSecretsAdditionalHelp(_ p1: String) -> String { return VectorL10n.tr("Vector", "device_verification_self_verify_wait_recover_secrets_additional_help", p1) } - /// If you can't access an existing session - public static var deviceVerificationSelfVerifyWaitRecoverSecretsAdditionalInformation: String { - return VectorL10n.tr("Vector", "device_verification_self_verify_wait_recover_secrets_additional_information") - } /// Checking for other verification capabilities ... public static var deviceVerificationSelfVerifyWaitRecoverSecretsCheckingAvailability: String { return VectorL10n.tr("Vector", "device_verification_self_verify_wait_recover_secrets_checking_availability")