From db4413d6ba12930e0fd4a01de3f77284b517a9cc Mon Sep 17 00:00:00 2001 From: Yishi Lin Date: Sat, 11 Mar 2017 02:14:53 +0800 Subject: [PATCH] Polish the "discard all local changes" feature --- .../AdvancedSettingsTableViewController.swift | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/pass/Controllers/AdvancedSettingsTableViewController.swift b/pass/Controllers/AdvancedSettingsTableViewController.swift index 0454c60..b73305b 100644 --- a/pass/Controllers/AdvancedSettingsTableViewController.swift +++ b/pass/Controllers/AdvancedSettingsTableViewController.swift @@ -35,15 +35,24 @@ class AdvancedSettingsTableViewController: UITableViewController { tableView.deselectRow(at: indexPath, animated: true) } else if tableView.cellForRow(at: indexPath) == discardChangesTableViewCell { let alert = UIAlertController(title: "Discard All Changes?", message: "Do you want to permanently discard all changes to the local copy of your password data? You cannot undo this action.", preferredStyle: UIAlertControllerStyle.alert) - alert.addAction(UIAlertAction(title: "Discard All Changesa", style: UIAlertActionStyle.destructive, handler: {[unowned self] (action) -> Void in + alert.addAction(UIAlertAction(title: "Discard All Changes", style: UIAlertActionStyle.destructive, handler: {[unowned self] (action) -> Void in DispatchQueue.global(qos: .userInitiated).async { SVProgressHUD.show(withStatus: "Resetting ...") DispatchQueue.main.async { do { let numberDiscarded = try PasswordStore.shared.reset() - NotificationCenter.default.post(Notification(name: Notification.Name("passwordStoreChangeDiscarded"))) + if numberDiscarded > 0 { + NotificationCenter.default.post(Notification(name: Notification.Name("passwordStoreChangeDiscarded"))) + } self.navigationController!.popViewController(animated: true) - SVProgressHUD.showSuccess(withStatus: "Discarded \(numberDiscarded) commits") + switch numberDiscarded { + case 0: + SVProgressHUD.showSuccess(withStatus: "No local commits") + case 1: + SVProgressHUD.showSuccess(withStatus: "Discarded 1 commit") + default: + SVProgressHUD.showSuccess(withStatus: "Discarded \(numberDiscarded) commits") + } SVProgressHUD.dismiss(withDelay: 1) } catch { DispatchQueue.main.async {