mirror of
https://github.com/vector-im/element-ios.git
synced 2024-09-28 23:32:41 +00:00
Key verification: Update key verification screens title. Update SAS screen wordings.
This commit is contained in:
parent
16772c8eec
commit
7ce9bbfcb0
16 changed files with 59 additions and 44 deletions
|
@ -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()
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -35,5 +35,7 @@ protocol KeyVerificationDataLoadingViewModelType {
|
|||
var viewDelegate: KeyVerificationDataLoadingViewModelViewDelegate? { get set }
|
||||
var coordinatorDelegate: KeyVerificationDataLoadingViewModelCoordinatorDelegate? { get set }
|
||||
|
||||
var verificationKind: KeyVerificationKind { get }
|
||||
|
||||
func process(viewAction: KeyVerificationDataLoadingViewAction)
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
import Foundation
|
||||
|
||||
struct KeyVerificationVerifyByScanningViewData {
|
||||
let verificationKind: KeyVerificationKind
|
||||
let qrCodeData: Data?
|
||||
let showScanAction: Bool
|
||||
}
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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"/>
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in a new issue