Key verification: Update key verification screens title. Update SAS screen wordings.

This commit is contained in:
SBiOSoftWhare 2020-04-27 19:54:57 +02:00
parent 16772c8eec
commit 7ce9bbfcb0
16 changed files with 59 additions and 44 deletions

View file

@ -91,17 +91,27 @@ final class KeyVerificationCoordinator: KeyVerificationCoordinatorType {
self.session = session
self.verificationFlow = flow
if case let .incomingRequest(request) = flow {
let verificationKind: KeyVerificationKind
switch flow {
case .incomingRequest(let request):
if request.isFromMyUser {
self.verificationKind = .device
// TODO: Check for .newSession case
verificationKind = .otherSession
} else {
self.verificationKind = .user
verificationKind = .user
}
} else if case .verifyUser = flow {
self.verificationKind = .user
} else {
self.verificationKind = .device
case .verifyUser:
verificationKind = .user
case .completeSecurity:
verificationKind = .thisSession
case .verifyDevice:
verificationKind = .otherSession
case .incomingSASTransaction:
verificationKind = .otherSession
}
self.verificationKind = verificationKind
}
// MARK: - Public methods
@ -172,7 +182,7 @@ final class KeyVerificationCoordinator: KeyVerificationCoordinatorType {
}
private func createDataLoadingScreenCoordinator(otherUserId: String, otherDeviceId: String) -> KeyVerificationDataLoadingCoordinator {
let coordinator = KeyVerificationDataLoadingCoordinator(session: self.session, otherUserId: otherUserId, otherDeviceId: otherDeviceId)
let coordinator = KeyVerificationDataLoadingCoordinator(session: self.session, verificationKind: self.verificationKind, otherUserId: otherUserId, otherDeviceId: otherDeviceId)
coordinator.delegate = self
coordinator.start()
@ -180,7 +190,7 @@ final class KeyVerificationCoordinator: KeyVerificationCoordinatorType {
}
private func createDataLoadingScreenCoordinator(with keyVerificationRequest: MXKeyVerificationRequest) -> KeyVerificationDataLoadingCoordinator {
let coordinator = KeyVerificationDataLoadingCoordinator(session: self.session, incomingKeyVerificationRequest: keyVerificationRequest)
let coordinator = KeyVerificationDataLoadingCoordinator(session: self.session, verificationKind: self.verificationKind, incomingKeyVerificationRequest: keyVerificationRequest)
coordinator.delegate = self
coordinator.start()
@ -229,7 +239,7 @@ final class KeyVerificationCoordinator: KeyVerificationCoordinatorType {
}
private func showVerifyByScanning(keyVerificationRequest: MXKeyVerificationRequest, animated: Bool) {
let coordinator = KeyVerificationVerifyByScanningCoordinator(session: self.session, keyVerificationRequest: keyVerificationRequest)
let coordinator = KeyVerificationVerifyByScanningCoordinator(session: self.session, verificationKind: self.verificationKind, keyVerificationRequest: keyVerificationRequest)
coordinator.delegate = self
coordinator.start()

View file

@ -37,15 +37,15 @@ final class KeyVerificationDataLoadingCoordinator: KeyVerificationDataLoadingCoo
// MARK: - Setup
init(session: MXSession, otherUserId: String, otherDeviceId: String) {
let keyVerificationDataLoadingViewModel = KeyVerificationDataLoadingViewModel(session: session, otherUserId: otherUserId, otherDeviceId: otherDeviceId)
init(session: MXSession, verificationKind: KeyVerificationKind, otherUserId: String, otherDeviceId: String) {
let keyVerificationDataLoadingViewModel = KeyVerificationDataLoadingViewModel(session: session, verificationKind: verificationKind, otherUserId: otherUserId, otherDeviceId: otherDeviceId)
let keyVerificationDataLoadingViewController = KeyVerificationDataLoadingViewController.instantiate(with: keyVerificationDataLoadingViewModel)
self.keyVerificationDataLoadingViewModel = keyVerificationDataLoadingViewModel
self.keyVerificationDataLoadingViewController = keyVerificationDataLoadingViewController
}
init(session: MXSession, incomingKeyVerificationRequest: MXKeyVerificationRequest) {
let keyVerificationDataLoadingViewModel = KeyVerificationDataLoadingViewModel(session: session, keyVerificationRequest: incomingKeyVerificationRequest)
init(session: MXSession, verificationKind: KeyVerificationKind, incomingKeyVerificationRequest: MXKeyVerificationRequest) {
let keyVerificationDataLoadingViewModel = KeyVerificationDataLoadingViewModel(session: session, verificationKind: verificationKind, keyVerificationRequest: incomingKeyVerificationRequest)
let keyVerificationDataLoadingViewController = KeyVerificationDataLoadingViewController.instantiate(with: keyVerificationDataLoadingViewModel)
self.keyVerificationDataLoadingViewModel = keyVerificationDataLoadingViewModel
self.keyVerificationDataLoadingViewController = keyVerificationDataLoadingViewController

View file

@ -47,7 +47,7 @@ final class KeyVerificationDataLoadingViewController: UIViewController {
// Do any additional setup after loading the view.
self.title = VectorL10n.deviceVerificationTitle
self.title = self.viewModel.verificationKind.verificationTitle
self.vc_removeBackTitle()
self.setupViews()

View file

@ -31,6 +31,7 @@ final class KeyVerificationDataLoadingViewModel: KeyVerificationDataLoadingViewM
// MARK: Private
private let session: MXSession
private(set) var verificationKind: KeyVerificationKind
private let otherUserId: String?
private let otherDeviceId: String?
private let keyVerificationService = KeyVerificationService()
@ -46,15 +47,17 @@ final class KeyVerificationDataLoadingViewModel: KeyVerificationDataLoadingViewM
// MARK: - Setup
init(session: MXSession, otherUserId: String, otherDeviceId: String) {
init(session: MXSession, verificationKind: KeyVerificationKind, otherUserId: String, otherDeviceId: String) {
self.session = session
self.verificationKind = verificationKind
self.otherUserId = otherUserId
self.otherDeviceId = otherDeviceId
self.keyVerificationRequest = nil
}
init(session: MXSession, keyVerificationRequest: MXKeyVerificationRequest) {
init(session: MXSession, verificationKind: KeyVerificationKind, keyVerificationRequest: MXKeyVerificationRequest) {
self.session = session
self.verificationKind = verificationKind
self.otherUserId = nil
self.otherDeviceId = nil
self.keyVerificationRequest = keyVerificationRequest

View file

@ -35,5 +35,7 @@ protocol KeyVerificationDataLoadingViewModelType {
var viewDelegate: KeyVerificationDataLoadingViewModelViewDelegate? { get set }
var coordinatorDelegate: KeyVerificationDataLoadingViewModelCoordinatorDelegate? { get set }
var verificationKind: KeyVerificationKind { get }
func process(viewAction: KeyVerificationDataLoadingViewAction)
}

View file

@ -169,7 +169,7 @@ final class KeyVerificationScanConfirmationViewController: UIViewController {
title = VectorL10n.keyVerificationScanConfirmationScanningTitle
switch viewData.verificationKind {
case .device:
case .otherSession, .thisSession, .newSession:
waitingInfo = VectorL10n.keyVerificationScanConfirmationScanningDeviceWaitingOther
case .user:
waitingInfo = VectorL10n.keyVerificationScanConfirmationScanningUserWaitingOther(viewData.otherDisplayName)
@ -178,13 +178,14 @@ final class KeyVerificationScanConfirmationViewController: UIViewController {
title = VectorL10n.keyVerificationScanConfirmationScannedTitle
switch viewData.verificationKind {
case .device:
case .otherSession, .thisSession, .newSession:
scannedInfo = VectorL10n.keyVerificationScanConfirmationScannedDeviceInformation
case .user:
scannedInfo = VectorL10n.keyVerificationScanConfirmationScannedUserInformation(viewData.otherDisplayName)
}
}
self.title = viewData.verificationKind.verificationTitle
self.titleLabel.text = title
self.waitingLabel.text = waitingInfo
self.scannedInformationLabel.text = scannedInfo

View file

@ -82,25 +82,22 @@ final class KeyVerificationVerifiedViewController: UIViewController {
// MARK: - Private
private func setupViews() {
let title: String
let bodyTitle: String
let descriptionTextPart1: String
let descriptionTextPart2: String
switch self.verificationKind {
case .device:
title = VectorL10n.deviceVerificationTitle
case .otherSession, .thisSession, .newSession:
bodyTitle = VectorL10n.deviceVerificationVerifiedTitle
descriptionTextPart1 = VectorL10n.deviceVerificationVerifiedDescription1
descriptionTextPart2 = VectorL10n.deviceVerificationVerifiedDescription2
case .user:
title = VectorL10n.keyVerificationUserTitle
bodyTitle = VectorL10n.deviceVerificationVerifiedTitle
descriptionTextPart1 = VectorL10n.keyVerificationVerifiedUserDescription1
descriptionTextPart2 = VectorL10n.keyVerificationVerifiedUserDescription2
}
self.title = title
self.title = self.verificationKind.verificationTitle
self.titleLabel.text = bodyTitle
self.description1Label.text = descriptionTextPart1
self.description2Label.text = descriptionTextPart2

View file

@ -131,22 +131,18 @@ final class KeyVerificationVerifyBySASViewController: UIViewController {
self.decimalLabel.text = self.viewModel.decimal
}
let title: String
let instructionText: String
let adviceText: String
switch viewModel.verificationKind {
case .device:
title = VectorL10n.deviceVerificationTitle
instructionText = isVerificationByEmoji ? VectorL10n.deviceVerificationVerifyTitleEmoji : VectorL10n.deviceVerificationVerifyTitleNumber
adviceText = VectorL10n.deviceVerificationSecurityAdvice
case .user:
title = VectorL10n.keyVerificationUserTitle
instructionText = isVerificationByEmoji ? VectorL10n.keyVerificationVerifyUserTitleEmoji : VectorL10n.keyVerificationVerifyUserTitleNumber
adviceText = VectorL10n.deviceVerificationSecurityAdvice
if isVerificationByEmoji {
instructionText = VectorL10n.keyVerificationVerifyTitleEmoji
adviceText = VectorL10n.deviceVerificationSecurityAdviceEmoji
} else {
instructionText = VectorL10n.keyVerificationVerifyTitleNumber
adviceText = VectorL10n.deviceVerificationSecurityAdviceNumber
}
self.title = title
self.title = self.viewModel.verificationKind.verificationTitle
self.titleLabel.text = instructionText
self.informationLabel.text = adviceText
self.waitingPartnerLabel.text = VectorL10n.deviceVerificationVerifyWaitPartner

View file

@ -40,11 +40,11 @@ final class KeyVerificationVerifyByScanningCoordinator: KeyVerificationVerifyByS
// MARK: - Setup
init(session: MXSession, keyVerificationRequest: MXKeyVerificationRequest) {
init(session: MXSession, verificationKind: KeyVerificationKind, keyVerificationRequest: MXKeyVerificationRequest) {
self.session = session
self.keyVerificationRequest = keyVerificationRequest
let keyVerificationVerifyByScanningViewModel = KeyVerificationVerifyByScanningViewModel(session: self.session, keyVerificationRequest: keyVerificationRequest)
let keyVerificationVerifyByScanningViewModel = KeyVerificationVerifyByScanningViewModel(session: self.session, verificationKind: verificationKind, keyVerificationRequest: keyVerificationRequest)
let keyVerificationVerifyByScanningViewController = KeyVerificationVerifyByScanningViewController.instantiate(with: keyVerificationVerifyByScanningViewModel)
self.keyVerificationVerifyByScanningViewModel = keyVerificationVerifyByScanningViewModel
self.keyVerificationVerifyByScanningViewController = keyVerificationVerifyByScanningViewController

View file

@ -180,6 +180,8 @@ final class KeyVerificationVerifyByScanningViewController: UIViewController {
hideQRCodeImage = true
}
self.title = viewData.verificationKind.verificationTitle
self.titleLabel.text = viewData.verificationKind.verificationTitle
self.qrCodeContainerView.isHidden = hideQRCodeImage
self.scanButtonContainerView.isHidden = !viewData.showScanAction
}

View file

@ -29,6 +29,7 @@ final class KeyVerificationVerifyByScanningViewModel: KeyVerificationVerifyBySca
// MARK: Private
private let session: MXSession
private let verificationKind: KeyVerificationKind
private let keyVerificationRequest: MXKeyVerificationRequest
private let qrCodeDataCoder: MXQRCodeDataCoder
private let keyVerificationManager: MXKeyVerificationManager
@ -43,8 +44,9 @@ final class KeyVerificationVerifyByScanningViewModel: KeyVerificationVerifyBySca
// MARK: - Setup
init(session: MXSession, keyVerificationRequest: MXKeyVerificationRequest) {
init(session: MXSession, verificationKind: KeyVerificationKind, keyVerificationRequest: MXKeyVerificationRequest) {
self.session = session
self.verificationKind = verificationKind
self.keyVerificationManager = self.session.crypto.keyVerificationManager
self.keyVerificationRequest = keyVerificationRequest
self.qrCodeDataCoder = MXQRCodeDataCoder()
@ -94,7 +96,8 @@ final class KeyVerificationVerifyByScanningViewModel: KeyVerificationVerifyBySca
canShowScanAction = false
}
let viewData = KeyVerificationVerifyByScanningViewData(qrCodeData: qrCodePlayloadData,
let viewData = KeyVerificationVerifyByScanningViewData(verificationKind: self.verificationKind,
qrCodeData: qrCodePlayloadData,
showScanAction: canShowScanAction)
self.update(viewState: .loaded(viewData: viewData))

View file

@ -19,6 +19,7 @@
import Foundation
struct KeyVerificationVerifyByScanningViewData {
let verificationKind: KeyVerificationKind
let qrCodeData: Data?
let showScanAction: Bool
}

View file

@ -63,7 +63,7 @@ final class DeviceVerificationIncomingViewController: UIViewController {
// Do any additional setup after loading the view.
self.title = VectorL10n.deviceVerificationTitle
self.title = VectorL10n.keyVerificationOtherSessionTitle
self.vc_removeBackTitle()
self.setupViews()

View file

@ -50,7 +50,7 @@
<action selector="startVerificationButtonAction:" destination="KS5-Uc-kth" eventType="touchUpInside" id="XRr-SM-v5B"/>
</connections>
</button>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="To be secure, do this in person or use another way to communicate." textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9u5-8O-e7v">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="To be secure, do this in person or use another way to communicate." textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9u5-8O-e7v">
<rect key="frame" x="20" y="130" width="335" height="29"/>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<nil key="textColor"/>

View file

@ -60,7 +60,7 @@ final class KeyVerificationSelfVerifyStartViewController: UIViewController {
// Do any additional setup after loading the view.
self.title = VectorL10n.deviceVerificationTitle
self.title = VectorL10n.keyVerificationNewSessionTitle
self.setupViews()
self.activityPresenter = ActivityIndicatorPresenter()

View file

@ -59,7 +59,7 @@ final class DeviceVerificationStartViewController: UIViewController {
// Do any additional setup after loading the view.
self.title = VectorL10n.deviceVerificationTitle
self.title = VectorL10n.keyVerificationOtherSessionTitle
self.vc_removeBackTitle()
self.setupViews()
@ -116,7 +116,7 @@ final class DeviceVerificationStartViewController: UIViewController {
self.scrollView.keyboardDismissMode = .interactive
self.titleLabel.text = VectorL10n.deviceVerificationStartTitle
self.informationLabel.text = VectorL10n.deviceVerificationSecurityAdvice
self.informationLabel.text = VectorL10n.deviceVerificationSecurityAdviceNumber
self.waitingPartnerLabel.text = VectorL10n.deviceVerificationStartWaitPartner
self.useLegacyVerificationLabel.text = VectorL10n.deviceVerificationStartUseLegacy