From 81b707266d087b3be180d459403aca139f227d76 Mon Sep 17 00:00:00 2001 From: Bob Sun Date: Mon, 6 Feb 2017 10:55:24 +0800 Subject: [PATCH] show error message if PGP key is not set (fix #1) --- pass/PasswordsViewController.swift | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/pass/PasswordsViewController.swift b/pass/PasswordsViewController.swift index 5f34c1f..358280a 100644 --- a/pass/PasswordsViewController.swift +++ b/pass/PasswordsViewController.swift @@ -9,6 +9,7 @@ import UIKit import Result import SVProgressHUD +import SwiftyUserDefaults class PasswordsViewController: UIViewController, UITableViewDataSource, UITableViewDelegate { private var passwordEntities: [PasswordEntity]? @@ -31,7 +32,6 @@ class PasswordsViewController: UIViewController, UITableViewDataSource, UITableV } func syncPasswords() { - SVProgressHUD.setDefaultMaskType(.black) SVProgressHUD.show(withStatus: "Sync Password Store") DispatchQueue.global(qos: .userInitiated).async { [unowned self] in do { @@ -69,6 +69,7 @@ class PasswordsViewController: UIViewController, UITableViewDataSource, UITableV searchBarView.addSubview(searchController.searchBar) view.addSubview(searchBarView) tableView.insertSubview(refreshControl, at: 0) + SVProgressHUD.setDefaultMaskType(.black) } override func viewWillAppear(_ animated: Bool) { @@ -151,6 +152,22 @@ class PasswordsViewController: UIViewController, UITableViewDataSource, UITableV reloadTableView(data: passwordEntities!) print("actOnPasswordUpdatedNotification") } + + override func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool { + if identifier == "showPasswordDetail" { + if Defaults[.pgpKeyID] == "" { + let alert = UIAlertController(title: "Unable to Decrypt Password", message: "PGP Key is not set. Please set your PGP Key first.", preferredStyle: UIAlertControllerStyle.alert) + alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: nil)) + self.present(alert, animated: true, completion: nil) + if let s = sender as? UITableViewCell { + let selectedIndexPath = tableView.indexPath(for: s)! + tableView.deselectRow(at: selectedIndexPath, animated: true) + } + return false + } + } + return true + } override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if segue.identifier == "showPasswordDetail" {