mirror of
https://github.com/vector-im/element-ios.git
synced 2024-09-28 23:32:41 +00:00
key backup settings: add delete confirmation dialog
This commit is contained in:
parent
91861ef4df
commit
0de85dd93c
7 changed files with 60 additions and 3 deletions
|
@ -435,6 +435,9 @@
|
||||||
"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_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_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" = "Start a new backup";
|
||||||
|
"settings_key_backup_button_delete" = "Delete backup";
|
||||||
|
"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";
|
||||||
|
|
||||||
// Room Details
|
// Room Details
|
||||||
"room_details_title" = "Room Details";
|
"room_details_title" = "Room Details";
|
||||||
|
|
|
@ -1926,6 +1926,18 @@ internal enum VectorL10n {
|
||||||
internal static var settingsKeyBackupButtonCreate: String {
|
internal static var settingsKeyBackupButtonCreate: String {
|
||||||
return VectorL10n.tr("Vector", "settings_key_backup_button_create")
|
return VectorL10n.tr("Vector", "settings_key_backup_button_create")
|
||||||
}
|
}
|
||||||
|
/// Delete backup
|
||||||
|
internal static var settingsKeyBackupButtonDelete: String {
|
||||||
|
return VectorL10n.tr("Vector", "settings_key_backup_button_delete")
|
||||||
|
}
|
||||||
|
/// 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")
|
||||||
|
}
|
||||||
|
/// Delete Backup
|
||||||
|
internal static var settingsKeyBackupDeleteConfirmationPromptTitle: String {
|
||||||
|
return VectorL10n.tr("Vector", "settings_key_backup_delete_confirmation_prompt_title")
|
||||||
|
}
|
||||||
/// Algorithm: %@
|
/// Algorithm: %@
|
||||||
internal static func settingsKeyBackupInfoAlgorithm(_ p1: String) -> String {
|
internal static func settingsKeyBackupInfoAlgorithm(_ p1: String) -> String {
|
||||||
return VectorL10n.tr("Vector", "settings_key_backup_info_algorithm", p1)
|
return VectorL10n.tr("Vector", "settings_key_backup_info_algorithm", p1)
|
||||||
|
|
|
@ -26,6 +26,7 @@ import UIKit
|
||||||
func settingsKeyBackupTableViewSectionShowKeyBackupSetup(_ settingsKeyBackupTableViewSection: SettingsKeyBackupTableViewSection)
|
func settingsKeyBackupTableViewSectionShowKeyBackupSetup(_ settingsKeyBackupTableViewSection: SettingsKeyBackupTableViewSection)
|
||||||
func settingsKeyBackup(_ settingsKeyBackupTableViewSection: SettingsKeyBackupTableViewSection, showVerifyDevice deviceId:String)
|
func settingsKeyBackup(_ settingsKeyBackupTableViewSection: SettingsKeyBackupTableViewSection, showVerifyDevice deviceId:String)
|
||||||
func settingsKeyBackup(_ settingsKeyBackupTableViewSection: SettingsKeyBackupTableViewSection, showKeyBackupRecover keyBackupVersion:MXKeyBackupVersion)
|
func settingsKeyBackup(_ settingsKeyBackupTableViewSection: SettingsKeyBackupTableViewSection, showKeyBackupRecover keyBackupVersion:MXKeyBackupVersion)
|
||||||
|
func settingsKeyBackup(_ settingsKeyBackupTableViewSection: SettingsKeyBackupTableViewSection, showKeyBackupDeleteConfirm keyBackupVersion:MXKeyBackupVersion)
|
||||||
}
|
}
|
||||||
|
|
||||||
@objc class SettingsKeyBackupTableViewSection: NSObject {
|
@objc class SettingsKeyBackupTableViewSection: NSObject {
|
||||||
|
@ -56,6 +57,10 @@ import UIKit
|
||||||
self.viewModel.process(viewAction: .load)
|
self.viewModel.process(viewAction: .load)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@objc func delete(keyBackupVersion: MXKeyBackupVersion) {
|
||||||
|
self.viewModel.process(viewAction: .delete(keyBackupVersion))
|
||||||
|
}
|
||||||
|
|
||||||
// MARK: - Private
|
// MARK: - Private
|
||||||
|
|
||||||
private func render(viewState: SettingsKeyBackupViewState) {
|
private func render(viewState: SettingsKeyBackupViewState) {
|
||||||
|
@ -281,13 +286,12 @@ import UIKit
|
||||||
}
|
}
|
||||||
|
|
||||||
let deleteCell:MXKTableViewCellWithButton = delegate.settingsKeyBackupTableViewSection(self, buttonCellForRow: fromCellIndex + 1)
|
let deleteCell:MXKTableViewCellWithButton = delegate.settingsKeyBackupTableViewSection(self, buttonCellForRow: fromCellIndex + 1)
|
||||||
let deleteTitle = "Delete backup"
|
let deleteTitle = VectorL10n.settingsKeyBackupButtonDelete
|
||||||
deleteCell.mxkButton.setTitle(deleteTitle, for: .normal)
|
deleteCell.mxkButton.setTitle(deleteTitle, for: .normal)
|
||||||
deleteCell.mxkButton.setTitle(deleteTitle, for: .highlighted)
|
deleteCell.mxkButton.setTitle(deleteTitle, for: .highlighted)
|
||||||
deleteCell.mxkButton.tintColor = ThemeService.shared().theme.warningColor
|
deleteCell.mxkButton.tintColor = ThemeService.shared().theme.warningColor
|
||||||
deleteCell.mxkButton.vc_addAction {
|
deleteCell.mxkButton.vc_addAction {
|
||||||
// TODO: Ask confirmation
|
self.viewModel.process(viewAction: .confirmDelete(keyBackupVersion))
|
||||||
self.viewModel.process(viewAction: .delete(keyBackupVersion))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return [restoreCell, deleteCell]
|
return [restoreCell, deleteCell]
|
||||||
|
@ -309,4 +313,7 @@ extension SettingsKeyBackupTableViewSection: SettingsKeyBackupViewModelViewDeleg
|
||||||
func settingsKeyBackup(_ viewModel: SettingsKeyBackupViewModelType, showKeyBackupRecover keyBackupVersion: MXKeyBackupVersion) {
|
func settingsKeyBackup(_ viewModel: SettingsKeyBackupViewModelType, showKeyBackupRecover keyBackupVersion: MXKeyBackupVersion) {
|
||||||
self.delegate?.settingsKeyBackup(self, showKeyBackupRecover: keyBackupVersion)
|
self.delegate?.settingsKeyBackup(self, showKeyBackupRecover: keyBackupVersion)
|
||||||
}
|
}
|
||||||
|
func settingsKeyBackup(_ viewModel: SettingsKeyBackupViewModelType, showKeyBackupDeleteConfirm keyBackupVersion: MXKeyBackupVersion) {
|
||||||
|
self.delegate?.settingsKeyBackup(self, showKeyBackupDeleteConfirm: keyBackupVersion)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,5 +21,6 @@ enum SettingsKeyBackupViewAction {
|
||||||
case create
|
case create
|
||||||
case verify(String)
|
case verify(String)
|
||||||
case restore(MXKeyBackupVersion)
|
case restore(MXKeyBackupVersion)
|
||||||
|
case confirmDelete(MXKeyBackupVersion)
|
||||||
case delete(MXKeyBackupVersion)
|
case delete(MXKeyBackupVersion)
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,6 +55,9 @@ class SettingsKeyBackupViewModel: SettingsKeyBackupViewModelType {
|
||||||
case .restore(let keyBackupVersion):
|
case .restore(let keyBackupVersion):
|
||||||
viewDelegate.settingsKeyBackup(self, showKeyBackupRecover: keyBackupVersion)
|
viewDelegate.settingsKeyBackup(self, showKeyBackupRecover: keyBackupVersion)
|
||||||
break
|
break
|
||||||
|
case .confirmDelete(let keyBackupVersion):
|
||||||
|
viewDelegate.settingsKeyBackup(self, showKeyBackupDeleteConfirm: keyBackupVersion)
|
||||||
|
break
|
||||||
case .delete(let keyBackupVersion):
|
case .delete(let keyBackupVersion):
|
||||||
self.deleteKeyBackupVersion(keyBackupVersion)
|
self.deleteKeyBackupVersion(keyBackupVersion)
|
||||||
break
|
break
|
||||||
|
|
|
@ -22,6 +22,7 @@ protocol SettingsKeyBackupViewModelViewDelegate: class {
|
||||||
func settingsKeyBackupViewModelShowKeyBackupSetup(_ viewModel: SettingsKeyBackupViewModelType)
|
func settingsKeyBackupViewModelShowKeyBackupSetup(_ viewModel: SettingsKeyBackupViewModelType)
|
||||||
func settingsKeyBackup(_ viewModel: SettingsKeyBackupViewModelType, showVerifyDevice deviceId:String)
|
func settingsKeyBackup(_ viewModel: SettingsKeyBackupViewModelType, showVerifyDevice deviceId:String)
|
||||||
func settingsKeyBackup(_ viewModel: SettingsKeyBackupViewModelType, showKeyBackupRecover keyBackupVersion:MXKeyBackupVersion)
|
func settingsKeyBackup(_ viewModel: SettingsKeyBackupViewModelType, showKeyBackupRecover keyBackupVersion:MXKeyBackupVersion)
|
||||||
|
func settingsKeyBackup(_ viewModel: SettingsKeyBackupViewModelType, showKeyBackupDeleteConfirm keyBackupVersion:MXKeyBackupVersion)
|
||||||
}
|
}
|
||||||
|
|
||||||
protocol SettingsKeyBackupViewModelType {
|
protocol SettingsKeyBackupViewModelType {
|
||||||
|
|
|
@ -4304,6 +4304,36 @@ KeyBackupRecoverCoordinatorBridgePresenterDelegate>
|
||||||
[self showKeyBackupRecover:keyBackupVersion];
|
[self showKeyBackupRecover:keyBackupVersion];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)settingsKeyBackup:(SettingsKeyBackupTableViewSection *)settingsKeyBackupTableViewSection showKeyBackupDeleteConfirm:(MXKeyBackupVersion *)keyBackupVersion
|
||||||
|
{
|
||||||
|
MXWeakify(self);
|
||||||
|
[currentAlert dismissViewControllerAnimated:NO completion:nil];
|
||||||
|
|
||||||
|
currentAlert =
|
||||||
|
[UIAlertController alertControllerWithTitle:NSLocalizedStringFromTable(@"settings_key_backup_delete_confirmation_prompt_title", @"Vector", nil)
|
||||||
|
message:NSLocalizedStringFromTable(@"settings_key_backup_delete_confirmation_prompt_msg", @"Vector", nil)
|
||||||
|
preferredStyle:UIAlertControllerStyleAlert];
|
||||||
|
|
||||||
|
[currentAlert addAction:[UIAlertAction actionWithTitle:[NSBundle mxk_localizedStringForKey:@"cancel"]
|
||||||
|
style:UIAlertActionStyleCancel
|
||||||
|
handler:^(UIAlertAction * action) {
|
||||||
|
MXStrongifyAndReturnIfNil(self);
|
||||||
|
self->currentAlert = nil;
|
||||||
|
}]];
|
||||||
|
|
||||||
|
[currentAlert addAction:[UIAlertAction actionWithTitle:NSLocalizedStringFromTable(@"remove", @"Vector", nil)
|
||||||
|
style:UIAlertActionStyleDefault
|
||||||
|
handler:^(UIAlertAction * action) {
|
||||||
|
MXStrongifyAndReturnIfNil(self);
|
||||||
|
self->currentAlert = nil;
|
||||||
|
|
||||||
|
[self->keyBackupSection deleteWithKeyBackupVersion:keyBackupVersion];
|
||||||
|
}]];
|
||||||
|
|
||||||
|
[currentAlert mxk_setAccessibilityIdentifier: @"SettingsVCDeleteKeyBackup"];
|
||||||
|
[self presentViewController:currentAlert animated:YES completion:nil];
|
||||||
|
}
|
||||||
|
|
||||||
#pragma mark - MXKEncryptionInfoView
|
#pragma mark - MXKEncryptionInfoView
|
||||||
|
|
||||||
- (void)showDeviceInfo:(MXDeviceInfo*)deviceInfo
|
- (void)showDeviceInfo:(MXDeviceInfo*)deviceInfo
|
||||||
|
|
Loading…
Reference in a new issue