diff --git a/Riot/Assets/en.lproj/Vector.strings b/Riot/Assets/en.lproj/Vector.strings
index da5664a40..5535ce24b 100644
--- a/Riot/Assets/en.lproj/Vector.strings
+++ b/Riot/Assets/en.lproj/Vector.strings
@@ -794,6 +794,13 @@
"sign_out_key_backup_in_progress_alert_cancel_action" = "I'll wait";
// MARK: - Device Verification
+"device_verification_title" = "Verify device";
// MARK: - Start
-"device_verification_start_verify_button" = "Verify";
+"device_verification_start_title" = "Verify by comparing a short text string";
+"device_verification_start_security_advise" = "For maximum security, we recommend you do this in person or use another trusted means of communication";
+"device_verification_start_wait_partner" = "Waiting for partner to accept...";
+"device_verification_start_verify_button" = "Begin Verifying";
+"device_verification_start_use_legacy_action" = "Use Legacy Verification (for older clients)";
+
+
diff --git a/Riot/Generated/Strings.swift b/Riot/Generated/Strings.swift
index 29015294a..04a9c6a07 100644
--- a/Riot/Generated/Strings.swift
+++ b/Riot/Generated/Strings.swift
@@ -426,10 +426,30 @@ internal enum VectorL10n {
internal static var decline: String {
return VectorL10n.tr("Vector", "decline")
}
- /// Verify
+ /// For maximum security, we recommend you do this in person or use another trusted means of communication
+ internal static var deviceVerificationStartSecurityAdvise: String {
+ return VectorL10n.tr("Vector", "device_verification_start_security_advise")
+ }
+ /// Verify by comparing a short text string
+ internal static var deviceVerificationStartTitle: String {
+ return VectorL10n.tr("Vector", "device_verification_start_title")
+ }
+ /// Use Legacy Verification (for older clients)
+ internal static var deviceVerificationStartUseLegacyAction: String {
+ return VectorL10n.tr("Vector", "device_verification_start_use_legacy_action")
+ }
+ /// Begin Verifying
internal static var deviceVerificationStartVerifyButton: String {
return VectorL10n.tr("Vector", "device_verification_start_verify_button")
}
+ /// Waiting for partner to accept...
+ internal static var deviceVerificationStartWaitPartner: String {
+ return VectorL10n.tr("Vector", "device_verification_start_wait_partner")
+ }
+ /// Verify device
+ internal static var deviceVerificationTitle: String {
+ return VectorL10n.tr("Vector", "device_verification_title")
+ }
/// %tu rooms
internal static func directoryCellDescription(_ p1: Int) -> String {
return VectorL10n.tr("Vector", "directory_cell_description", p1)
diff --git a/Riot/Modules/DeviceVerification/Start/DeviceVerificationStartCoordinator.swift b/Riot/Modules/DeviceVerification/Start/DeviceVerificationStartCoordinator.swift
index 8f283cc91..b3259b0b4 100644
--- a/Riot/Modules/DeviceVerification/Start/DeviceVerificationStartCoordinator.swift
+++ b/Riot/Modules/DeviceVerification/Start/DeviceVerificationStartCoordinator.swift
@@ -60,7 +60,11 @@ final class DeviceVerificationStartCoordinator: DeviceVerificationStartCoordinat
// MARK: - DeviceVerificationStartViewModelCoordinatorDelegate
extension DeviceVerificationStartCoordinator: DeviceVerificationStartViewModelCoordinatorDelegate {
-
+ func deviceVerificationStartViewModelUseLegacyVerification(_ viewModel: DeviceVerificationStartViewModelType) {
+ // TODO
+ self.delegate?.deviceVerificationStartCoordinatorDidCancel(self)
+ }
+
func deviceVerificationStartViewModel(_ viewModel: DeviceVerificationStartViewModelType, didCompleteWithOutgoingTransaction transaction: MXSASTransaction) {
self.delegate?.deviceVerificationStartCoordinator(self, didCompleteWithOutgoingTransaction: transaction)
}
diff --git a/Riot/Modules/DeviceVerification/Start/DeviceVerificationStartViewAction.swift b/Riot/Modules/DeviceVerification/Start/DeviceVerificationStartViewAction.swift
index 90d6d2c28..ce7024a06 100644
--- a/Riot/Modules/DeviceVerification/Start/DeviceVerificationStartViewAction.swift
+++ b/Riot/Modules/DeviceVerification/Start/DeviceVerificationStartViewAction.swift
@@ -20,7 +20,7 @@ import Foundation
/// DeviceVerificationStartViewController view actions exposed to view model
enum DeviceVerificationStartViewAction {
- case sayHello
+ case useLegacyVerification
case beginVerifying
case cancel
}
diff --git a/Riot/Modules/DeviceVerification/Start/DeviceVerificationStartViewController.storyboard b/Riot/Modules/DeviceVerification/Start/DeviceVerificationStartViewController.storyboard
index 1a6ffab2d..621055610 100644
--- a/Riot/Modules/DeviceVerification/Start/DeviceVerificationStartViewController.storyboard
+++ b/Riot/Modules/DeviceVerification/Start/DeviceVerificationStartViewController.storyboard
@@ -22,30 +22,72 @@
-
+
-
+
-
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -55,7 +97,7 @@
-
+
@@ -63,13 +105,13 @@
-
+
-
+
@@ -79,9 +121,12 @@
-
+
+
+
+
diff --git a/Riot/Modules/DeviceVerification/Start/DeviceVerificationStartViewController.swift b/Riot/Modules/DeviceVerification/Start/DeviceVerificationStartViewController.swift
index 403505b2c..ee617ad48 100644
--- a/Riot/Modules/DeviceVerification/Start/DeviceVerificationStartViewController.swift
+++ b/Riot/Modules/DeviceVerification/Start/DeviceVerificationStartViewController.swift
@@ -31,10 +31,13 @@ final class DeviceVerificationStartViewController: UIViewController {
// MARK: Outlets
@IBOutlet private weak var scrollView: UIScrollView!
-
- @IBOutlet private weak var messageLabel: UILabel!
+
+ @IBOutlet private weak var titleLabel: UILabel!
+ @IBOutlet private weak var informationLabel: UILabel!
+ @IBOutlet weak var verifyButtonBackgroundView: UIView!
@IBOutlet private weak var verifyButton: UIButton!
-
+ @IBOutlet weak var useLegacyVerificationButton: UIButton!
+
// MARK: Private
private var viewModel: DeviceVerificationStartViewModelType!
@@ -59,7 +62,7 @@ final class DeviceVerificationStartViewController: UIViewController {
// Do any additional setup after loading the view.
- self.title = "Template"
+ self.title = VectorL10n.deviceVerificationTitle
self.setupViews()
self.keyboardAvoider = KeyboardAvoider(scrollViewContainerView: self.view, scrollView: self.scrollView)
@@ -70,8 +73,6 @@ final class DeviceVerificationStartViewController: UIViewController {
self.update(theme: self.theme)
self.viewModel.viewDelegate = self
-
- self.viewModel.process(viewAction: .sayHello)
}
override func viewWillAppear(_ animated: Bool) {
@@ -109,12 +110,13 @@ final class DeviceVerificationStartViewController: UIViewController {
theme.applyStyle(onNavigationBar: navigationBar)
}
-
- // TODO:
- self.messageLabel.textColor = theme.textPrimaryColor
+ self.titleLabel.textColor = theme.textPrimaryColor
+ self.informationLabel.textColor = theme.textPrimaryColor
self.verifyButton.backgroundColor = theme.backgroundColor
theme.applyStyle(onButton: self.verifyButton)
+
+ theme.applyStyle(onButton: self.useLegacyVerificationButton)
}
private func registerThemeServiceDidChangeThemeNotification() {
@@ -134,10 +136,11 @@ final class DeviceVerificationStartViewController: UIViewController {
self.scrollView.keyboardDismissMode = .interactive
+ self.titleLabel.text = VectorL10n.deviceVerificationStartTitle
+ self.informationLabel.text = VectorL10n.deviceVerificationStartSecurityAdvise
+
self.verifyButton.setTitle(VectorL10n.deviceVerificationStartVerifyButton, for: .normal)
-
- self.messageLabel.text = "VectorL10n.deviceVerificationStartTitle"
- self.messageLabel.isHidden = true
+ self.useLegacyVerificationButton.setTitle(VectorL10n.deviceVerificationStartUseLegacyAction, for: .normal)
}
private func render(viewState: DeviceVerificationStartViewState) {
@@ -157,9 +160,7 @@ final class DeviceVerificationStartViewController: UIViewController {
private func renderLoaded() {
self.activityPresenter.removeCurrentActivityIndicator(animated: true)
-
- self.messageLabel.text = self.viewModel.message
- self.messageLabel.isHidden = false
+ //self.informationLabel.text = self.viewModel.message
}
private func render(error: Error) {
@@ -174,6 +175,10 @@ final class DeviceVerificationStartViewController: UIViewController {
self.viewModel.process(viewAction: .beginVerifying)
}
+ @IBAction private func useLegacyVerificationButtonAction(_ sender: Any) {
+ self.viewModel.process(viewAction: .useLegacyVerification)
+ }
+
private func cancelButtonAction() {
self.viewModel.process(viewAction: .cancel)
}
diff --git a/Riot/Modules/DeviceVerification/Start/DeviceVerificationStartViewModel.swift b/Riot/Modules/DeviceVerification/Start/DeviceVerificationStartViewModel.swift
index cbbd63935..e048d0f7c 100644
--- a/Riot/Modules/DeviceVerification/Start/DeviceVerificationStartViewModel.swift
+++ b/Riot/Modules/DeviceVerification/Start/DeviceVerificationStartViewModel.swift
@@ -53,12 +53,12 @@ final class DeviceVerificationStartViewModel: DeviceVerificationStartViewModelTy
func process(viewAction: DeviceVerificationStartViewAction) {
switch viewAction {
+ case .useLegacyVerification:
+ self.coordinatorDelegate?.deviceVerificationStartViewModelUseLegacyVerification(self)
case .beginVerifying:
self.beginVerifying()
case .cancel:
self.coordinatorDelegate?.deviceVerificationStartViewModelDidCancel(self)
- case .sayHello:
- break
}
}
diff --git a/Riot/Modules/DeviceVerification/Start/DeviceVerificationStartViewModelType.swift b/Riot/Modules/DeviceVerification/Start/DeviceVerificationStartViewModelType.swift
index b9b6c5859..c4a6c64de 100644
--- a/Riot/Modules/DeviceVerification/Start/DeviceVerificationStartViewModelType.swift
+++ b/Riot/Modules/DeviceVerification/Start/DeviceVerificationStartViewModelType.swift
@@ -23,6 +23,8 @@ protocol DeviceVerificationStartViewModelViewDelegate: class {
}
protocol DeviceVerificationStartViewModelCoordinatorDelegate: class {
+ func deviceVerificationStartViewModelUseLegacyVerification(_ viewModel: DeviceVerificationStartViewModelType)
+
func deviceVerificationStartViewModel(_ viewModel: DeviceVerificationStartViewModelType, didCompleteWithOutgoingTransaction transaction: MXSASTransaction)
func deviceVerificationStartViewModel(_ viewModel: DeviceVerificationStartViewModelType, didTransactionCancelled transaction: MXSASTransaction)