From 61f439eb55ed510f819c6d68bb1fe0c8ce179a5a Mon Sep 17 00:00:00 2001 From: manuroe Date: Thu, 31 Jan 2019 16:58:41 +0100 Subject: [PATCH] key backup settings: Make it look like more to https://github.com/vector-im/riot-meta/issues/251#issuecomment-458566684 1/2 --- Riot/Assets/en.lproj/Vector.strings | 16 ++-- Riot/Generated/Strings.swift | 22 +++-- .../SettingsKeyBackupTableViewSection.swift | 82 ++++++++++++++----- 3 files changed, 87 insertions(+), 33 deletions(-) diff --git a/Riot/Assets/en.lproj/Vector.strings b/Riot/Assets/en.lproj/Vector.strings index f1b8659bf..df7cc8491 100644 --- a/Riot/Assets/en.lproj/Vector.strings +++ b/Riot/Assets/en.lproj/Vector.strings @@ -335,7 +335,7 @@ "settings_flair" = "Show flair where allowed"; "settings_devices" = "DEVICES"; "settings_cryptography" = "CRYPTOGRAPHY"; -"settings_key_backup" = "SECURE MESSAGE"; +"settings_key_backup" = "SECURE MESSAGE RECOVERY"; "settings_deactivate_account" = "DEACTIVATE ACCOUNT"; "settings_sign_out" = "Sign Out"; @@ -421,21 +421,23 @@ "settings_deactivate_my_account" = "Deactivate my account"; -"settings_key_backup_info_none" = "No backup is present"; -"settings_key_backup_info_version" = "Backup version: %@"; +"settings_key_backup_info_none" = "Secure Message Recovery has not been set up."; +"settings_key_backup_info_version" = "Key Backup Version: %@"; "settings_key_backup_info_algorithm" = "Algorithm: %@"; -"settings_key_backup_info_valid" = "This device is using key backup"; -"settings_key_backup_info_not_valid" = "This device is not using key backup"; +"settings_key_backup_info_valid" = "Backup has a valid signature from this device."; +"settings_key_backup_info_not_valid" = "Secure Message Recovery is not active on this device."; "settings_key_backup_info_progress" = "Backing up %@ keys..."; -"settings_key_backup_info_progress_done" = "All keys backed up"; +"settings_key_backup_info_progress_done" = "All keys have been backed up"; // TO DEL "settings_key_backup_info_trust_signature_unknown" = "Backup has a signature from unknown device with ID %@."; "settings_key_backup_info_trust_signature_valid" = "Backup has a valid signature from this device"; "settings_key_backup_info_trust_signature_valid_device_verified" = "Backup has a valid signature from verified device %@"; "settings_key_backup_info_trust_signature_valid_device_unverified" = "Backup has a valid signature from unverified device %@"; "settings_key_backup_info_trust_signature_invalid_device_verified" = "Backup has a invalid signature from verified device %@"; "settings_key_backup_info_trust_signature_invalid_device_unverified" = "Backup has a invalid signature from unverified device %@"; -"settings_key_backup_button_create" = "Start a new backup"; +"settings_key_backup_button_create" = "Set up Secure Message Recovery"; +"settings_key_backup_button_restore" = "Restore backup"; "settings_key_backup_button_delete" = "Delete backup"; +"settings_key_backup_button_verify" = "Verify"; "settings_key_backup_delete_confirmation_prompt_title" = "Delete Backup"; "settings_key_backup_delete_confirmation_prompt_msg" = "Delete your backed up encryption keys from the server? You will no longer be able to use your recovery key to read encrypted message history"; diff --git a/Riot/Generated/Strings.swift b/Riot/Generated/Strings.swift index 7f8c68f57..e812c8f08 100644 --- a/Riot/Generated/Strings.swift +++ b/Riot/Generated/Strings.swift @@ -1918,11 +1918,11 @@ internal enum VectorL10n { internal static var settingsIgnoredUsers: String { return VectorL10n.tr("Vector", "settings_ignored_users") } - /// SECURE MESSAGE + /// SECURE MESSAGE RECOVERY internal static var settingsKeyBackup: String { return VectorL10n.tr("Vector", "settings_key_backup") } - /// Start a new backup + /// Set up Secure Message Recovery internal static var settingsKeyBackupButtonCreate: String { return VectorL10n.tr("Vector", "settings_key_backup_button_create") } @@ -1930,6 +1930,14 @@ internal enum VectorL10n { internal static var settingsKeyBackupButtonDelete: String { return VectorL10n.tr("Vector", "settings_key_backup_button_delete") } + /// Restore backup + internal static var settingsKeyBackupButtonRestore: String { + return VectorL10n.tr("Vector", "settings_key_backup_button_restore") + } + /// Verify + internal static var settingsKeyBackupButtonVerify: String { + return VectorL10n.tr("Vector", "settings_key_backup_button_verify") + } /// Delete your backed up encryption keys from the server? You will no longer be able to use your recovery key to read encrypted message history internal static var settingsKeyBackupDeleteConfirmationPromptMsg: String { return VectorL10n.tr("Vector", "settings_key_backup_delete_confirmation_prompt_msg") @@ -1942,11 +1950,11 @@ internal enum VectorL10n { internal static func settingsKeyBackupInfoAlgorithm(_ p1: String) -> String { return VectorL10n.tr("Vector", "settings_key_backup_info_algorithm", p1) } - /// No backup is present + /// Secure Message Recovery has not been set up. internal static var settingsKeyBackupInfoNone: String { return VectorL10n.tr("Vector", "settings_key_backup_info_none") } - /// This device is not using key backup + /// Secure Message Recovery is not active on this device. internal static var settingsKeyBackupInfoNotValid: String { return VectorL10n.tr("Vector", "settings_key_backup_info_not_valid") } @@ -1954,7 +1962,7 @@ internal enum VectorL10n { internal static func settingsKeyBackupInfoProgress(_ p1: String) -> String { return VectorL10n.tr("Vector", "settings_key_backup_info_progress", p1) } - /// All keys backed up + /// All keys have been backed up internal static var settingsKeyBackupInfoProgressDone: String { return VectorL10n.tr("Vector", "settings_key_backup_info_progress_done") } @@ -1982,11 +1990,11 @@ internal enum VectorL10n { internal static func settingsKeyBackupInfoTrustSignatureValidDeviceVerified(_ p1: String) -> String { return VectorL10n.tr("Vector", "settings_key_backup_info_trust_signature_valid_device_verified", p1) } - /// This device is using key backup + /// Backup has a valid signature from this device. internal static var settingsKeyBackupInfoValid: String { return VectorL10n.tr("Vector", "settings_key_backup_info_valid") } - /// Backup version: %@ + /// Key Backup Version: %@ internal static func settingsKeyBackupInfoVersion(_ p1: String) -> String { return VectorL10n.tr("Vector", "settings_key_backup_info_version", p1) } diff --git a/Riot/Modules/Settings/KeyBackup/SettingsKeyBackupTableViewSection.swift b/Riot/Modules/Settings/KeyBackup/SettingsKeyBackupTableViewSection.swift index d1d3baa4f..7e2f45021 100644 --- a/Riot/Modules/Settings/KeyBackup/SettingsKeyBackupTableViewSection.swift +++ b/Riot/Modules/Settings/KeyBackup/SettingsKeyBackupTableViewSection.swift @@ -128,23 +128,35 @@ import UIKit private func numberOfNoBackupRows() -> Int { - return 1 + return 2 } - private func renderNoBackupCell(atRow: Int) -> UITableViewCell { + private func renderNoBackupCell(atRow row: Int) -> UITableViewCell { guard let delegate = self.delegate else { return UITableViewCell.init() } - let cell: MXKTableViewCellWithTextView = delegate.settingsKeyBackupTableViewSection(self, textCellForRow: 0) - cell.mxkTextView.text = VectorL10n.settingsKeyBackupInfoNone + var cell: UITableViewCell + switch row { + case 0: + let infoCell: MXKTableViewCellWithTextView = delegate.settingsKeyBackupTableViewSection(self, textCellForRow: row) + infoCell.mxkTextView.text = VectorL10n.settingsKeyBackupInfoNone + + cell = infoCell + + case 1: + cell = self.buttonCellForCreate(atRow: row) + + default: + cell = UITableViewCell.init() + } return cell } private func numberOfBackupRows() -> Int { - return 3 + return 5 } private func renderBackupCell(atRow row: Int, keyBackupVersion: MXKeyBackupVersion, keyBackupVersionTrust: MXKeyBackupVersionTrust) -> UITableViewCell { @@ -157,21 +169,37 @@ import UIKit case 0: let infoCell: MXKTableViewCellWithTextView = delegate.settingsKeyBackupTableViewSection(self, textCellForRow: row) - let version = VectorL10n.settingsKeyBackupInfoVersion(keyBackupVersion.version ?? "") - let algorithm = VectorL10n.settingsKeyBackupInfoAlgorithm(keyBackupVersion.algorithm) let backupStatus = VectorL10n.settingsKeyBackupInfoValid let uploadStatus = VectorL10n.settingsKeyBackupInfoProgressDone - let backupTrust = self.stringForKeyBackupTrust(keyBackupVersionTrust); - let strings = [version, algorithm, backupStatus, uploadStatus] + backupTrust + let strings = [backupStatus, uploadStatus] infoCell.mxkTextView.text = strings.joined(separator: "\n") cell = infoCell case 1: - cell = self.buttonCellForRestore(keyBackupVersion: keyBackupVersion, atRow: row) + let infoCell: MXKTableViewCellWithTextView = delegate.settingsKeyBackupTableViewSection(self, textCellForRow: row) + + let version = VectorL10n.settingsKeyBackupInfoVersion(keyBackupVersion.version ?? "") + let algorithm = VectorL10n.settingsKeyBackupInfoAlgorithm(keyBackupVersion.algorithm) + + let strings = [version, algorithm] + infoCell.mxkTextView.text = strings.joined(separator: "\n") + + cell = infoCell case 2: + let infoCell: MXKTableViewCellWithTextView = delegate.settingsKeyBackupTableViewSection(self, textCellForRow: row) + + let backupTrust = self.stringForKeyBackupTrust(keyBackupVersionTrust); + infoCell.mxkTextView.text = backupTrust.joined(separator: "\n") + + cell = infoCell + + case 3: + cell = self.buttonCellForRestore(keyBackupVersion: keyBackupVersion, atRow: row) + + case 4: cell = self.buttonCellForDelete(keyBackupVersion: keyBackupVersion, atRow: row) default: @@ -183,7 +211,7 @@ import UIKit private func numberOfBackupAndRunningRows() -> Int { - return 3 + return 5 } private func renderBackupAndRunningCell(atRow row: Int, keyBackupVersion: MXKeyBackupVersion, keyBackupVersionTrust: MXKeyBackupVersionTrust, backupProgress: Progress) -> UITableViewCell { @@ -198,21 +226,37 @@ import UIKit let remaining = backupProgress.totalUnitCount - backupProgress.completedUnitCount - let version = VectorL10n.settingsKeyBackupInfoVersion(keyBackupVersion.version ?? "") - let algorithm = VectorL10n.settingsKeyBackupInfoAlgorithm(keyBackupVersion.algorithm) let backupStatus = VectorL10n.settingsKeyBackupInfoValid let uploadStatus = VectorL10n.settingsKeyBackupInfoProgress(String(remaining)) - let backupTrust = self.stringForKeyBackupTrust(keyBackupVersionTrust); - let strings = [version, algorithm, backupStatus, uploadStatus] + backupTrust + let strings = [backupStatus, uploadStatus] infoCell.mxkTextView.text = strings.joined(separator: "\n") cell = infoCell case 1: - cell = self.buttonCellForRestore(keyBackupVersion: keyBackupVersion, atRow: row) + let infoCell: MXKTableViewCellWithTextView = delegate.settingsKeyBackupTableViewSection(self, textCellForRow: row) + + let version = VectorL10n.settingsKeyBackupInfoVersion(keyBackupVersion.version ?? "") + let algorithm = VectorL10n.settingsKeyBackupInfoAlgorithm(keyBackupVersion.algorithm) + + let strings = [version, algorithm] + infoCell.mxkTextView.text = strings.joined(separator: "\n") + + cell = infoCell case 2: + let infoCell: MXKTableViewCellWithTextView = delegate.settingsKeyBackupTableViewSection(self, textCellForRow: row) + + let backupTrust = self.stringForKeyBackupTrust(keyBackupVersionTrust); + infoCell.mxkTextView.text = backupTrust.joined(separator: "\n") + + cell = infoCell + + case 3: + cell = self.buttonCellForRestore(keyBackupVersion: keyBackupVersion, atRow: row) + + case 4: cell = self.buttonCellForDelete(keyBackupVersion: keyBackupVersion, atRow: row) default: @@ -342,7 +386,7 @@ import UIKit let cell:MXKTableViewCellWithButton = delegate.settingsKeyBackupTableViewSection(self, buttonCellForRow: row) - let btnTitle = "Start a new backup" + let btnTitle = VectorL10n.settingsKeyBackupButtonCreate cell.mxkButton.setTitle(btnTitle, for: .normal) cell.mxkButton.setTitle(btnTitle, for: .highlighted) @@ -361,7 +405,7 @@ import UIKit let cell:MXKTableViewCellWithButton = delegate.settingsKeyBackupTableViewSection(self, buttonCellForRow: row) - let btnTitle = "Verify..." + let btnTitle = VectorL10n.settingsKeyBackupButtonVerify cell.mxkButton.setTitle(btnTitle, for: .normal) cell.mxkButton.setTitle(btnTitle, for: .highlighted) @@ -378,7 +422,7 @@ import UIKit } let cell:MXKTableViewCellWithButton = delegate.settingsKeyBackupTableViewSection(self, buttonCellForRow: row) - let btnTitle = "Restore backup" + let btnTitle = VectorL10n.settingsKeyBackupButtonRestore cell.mxkButton.setTitle(btnTitle, for: .normal) cell.mxkButton.setTitle(btnTitle, for: .highlighted) cell.mxkButton.vc_addAction {