From 56edfcfb9c59375b2d9148fa48cb91326f499c60 Mon Sep 17 00:00:00 2001 From: Yishi Lin Date: Thu, 9 Mar 2017 02:39:13 +0800 Subject: [PATCH] Fix a bug about adding new password with empty name / without PGP key --- .../AddPasswordTableViewController.swift | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/pass/Controllers/AddPasswordTableViewController.swift b/pass/Controllers/AddPasswordTableViewController.swift index d98c52e..7ae8572 100644 --- a/pass/Controllers/AddPasswordTableViewController.swift +++ b/pass/Controllers/AddPasswordTableViewController.swift @@ -7,6 +7,7 @@ // import UIKit +import SwiftyUserDefaults class AddPasswordTableViewController: UITableViewController, FillPasswordTableViewCellDelegate { let tableTitles = ["name", "password", "additions"] @@ -65,6 +66,27 @@ class AddPasswordTableViewController: UITableViewController, FillPasswordTableVi return headerView } + override func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool { + if identifier == "saveAddPasswordSegue" { + // check PGP key + if Defaults[.pgpKeyID] == nil { + let alertTitle = "Cannot Add Password" + let alertMessage = "PGP Key is not set. Please set your PGP Key first." + Utils.alert(title: alertTitle, message: alertMessage, controller: self, completion: nil) + return false + } + // check name + let nameCell = getCellForName(name: "name")! as! TextFieldTableViewCell + if nameCell.getContent()!.isEmpty { + let alertTitle = "Cannot Add Password" + let alertMessage = "Please fill in the name." + Utils.alert(title: alertTitle, message: alertMessage, controller: self, completion: nil) + return false + } + } + return true + } + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if segue.identifier == "saveAddPasswordSegue" { let nameCell = getCellForName(name: "name")! as! TextFieldTableViewCell @@ -73,6 +95,7 @@ class AddPasswordTableViewController: UITableViewController, FillPasswordTableVi password = Password(name: nameCell.contentTextField.text!, plainText: "\(passwordCell.contentTextField.text!)\n\(additionsCell.contentTextView.text!)") } } + override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { return 44 }