mirror of
https://github.com/vector-im/element-ios.git
synced 2024-09-28 15:22:39 +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_unverified" = "Backup has a invalid signature from unverified device %@";
|
||||
"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_title" = "Room Details";
|
||||
|
|
|
@ -1926,6 +1926,18 @@ internal enum VectorL10n {
|
|||
internal static var settingsKeyBackupButtonCreate: String {
|
||||
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: %@
|
||||
internal static func settingsKeyBackupInfoAlgorithm(_ p1: String) -> String {
|
||||
return VectorL10n.tr("Vector", "settings_key_backup_info_algorithm", p1)
|
||||
|
|
|
@ -26,6 +26,7 @@ import UIKit
|
|||
func settingsKeyBackupTableViewSectionShowKeyBackupSetup(_ settingsKeyBackupTableViewSection: SettingsKeyBackupTableViewSection)
|
||||
func settingsKeyBackup(_ settingsKeyBackupTableViewSection: SettingsKeyBackupTableViewSection, showVerifyDevice deviceId:String)
|
||||
func settingsKeyBackup(_ settingsKeyBackupTableViewSection: SettingsKeyBackupTableViewSection, showKeyBackupRecover keyBackupVersion:MXKeyBackupVersion)
|
||||
func settingsKeyBackup(_ settingsKeyBackupTableViewSection: SettingsKeyBackupTableViewSection, showKeyBackupDeleteConfirm keyBackupVersion:MXKeyBackupVersion)
|
||||
}
|
||||
|
||||
@objc class SettingsKeyBackupTableViewSection: NSObject {
|
||||
|
@ -56,6 +57,10 @@ import UIKit
|
|||
self.viewModel.process(viewAction: .load)
|
||||
}
|
||||
|
||||
@objc func delete(keyBackupVersion: MXKeyBackupVersion) {
|
||||
self.viewModel.process(viewAction: .delete(keyBackupVersion))
|
||||
}
|
||||
|
||||
// MARK: - Private
|
||||
|
||||
private func render(viewState: SettingsKeyBackupViewState) {
|
||||
|
@ -281,13 +286,12 @@ import UIKit
|
|||
}
|
||||
|
||||
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: .highlighted)
|
||||
deleteCell.mxkButton.tintColor = ThemeService.shared().theme.warningColor
|
||||
deleteCell.mxkButton.vc_addAction {
|
||||
// TODO: Ask confirmation
|
||||
self.viewModel.process(viewAction: .delete(keyBackupVersion))
|
||||
self.viewModel.process(viewAction: .confirmDelete(keyBackupVersion))
|
||||
}
|
||||
|
||||
return [restoreCell, deleteCell]
|
||||
|
@ -309,4 +313,7 @@ extension SettingsKeyBackupTableViewSection: SettingsKeyBackupViewModelViewDeleg
|
|||
func settingsKeyBackup(_ viewModel: SettingsKeyBackupViewModelType, showKeyBackupRecover keyBackupVersion: MXKeyBackupVersion) {
|
||||
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 verify(String)
|
||||
case restore(MXKeyBackupVersion)
|
||||
case confirmDelete(MXKeyBackupVersion)
|
||||
case delete(MXKeyBackupVersion)
|
||||
}
|
||||
|
|
|
@ -55,6 +55,9 @@ class SettingsKeyBackupViewModel: SettingsKeyBackupViewModelType {
|
|||
case .restore(let keyBackupVersion):
|
||||
viewDelegate.settingsKeyBackup(self, showKeyBackupRecover: keyBackupVersion)
|
||||
break
|
||||
case .confirmDelete(let keyBackupVersion):
|
||||
viewDelegate.settingsKeyBackup(self, showKeyBackupDeleteConfirm: keyBackupVersion)
|
||||
break
|
||||
case .delete(let keyBackupVersion):
|
||||
self.deleteKeyBackupVersion(keyBackupVersion)
|
||||
break
|
||||
|
|
|
@ -22,6 +22,7 @@ protocol SettingsKeyBackupViewModelViewDelegate: class {
|
|||
func settingsKeyBackupViewModelShowKeyBackupSetup(_ viewModel: SettingsKeyBackupViewModelType)
|
||||
func settingsKeyBackup(_ viewModel: SettingsKeyBackupViewModelType, showVerifyDevice deviceId:String)
|
||||
func settingsKeyBackup(_ viewModel: SettingsKeyBackupViewModelType, showKeyBackupRecover keyBackupVersion:MXKeyBackupVersion)
|
||||
func settingsKeyBackup(_ viewModel: SettingsKeyBackupViewModelType, showKeyBackupDeleteConfirm keyBackupVersion:MXKeyBackupVersion)
|
||||
}
|
||||
|
||||
protocol SettingsKeyBackupViewModelType {
|
||||
|
|
|
@ -4304,6 +4304,36 @@ KeyBackupRecoverCoordinatorBridgePresenterDelegate>
|
|||
[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
|
||||
|
||||
- (void)showDeviceInfo:(MXDeviceInfo*)deviceInfo
|
||||
|
|
Loading…
Reference in a new issue