key backup settings: add delete confirmation dialog

This commit is contained in:
manuroe
2019-01-31 09:45:03 +01:00
parent b4aa3d732f
commit 71f6b06f02
7 changed files with 60 additions and 3 deletions
@@ -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 {