Correct git signature logic

This commit is contained in:
Bob Sun 2017-04-27 22:48:11 -07:00
parent 2f790d7923
commit 649d709369
No known key found for this signature in database
GPG key ID: 1F86BA2052FED3B4
6 changed files with 28 additions and 35 deletions

View file

@ -35,11 +35,12 @@ class AdvancedSettingsTableViewController: UITableViewController {
}
private func setGitSignatureText() {
if let gitConfigUserName = Defaults[.gitConfigUserName],
let gitConfigUserEmail = Defaults[.gitConfigUserEmail] {
self.gitSignatureTableViewCell.detailTextLabel?.font = UIFont.systemFont(ofSize: 14)
self.gitSignatureTableViewCell.detailTextLabel?.text = "\(gitConfigUserName) <\(gitConfigUserEmail)>"
} else {
let gitSignatureName = passwordStore.gitSignatureForNow.name!
let gitSignatureEmail = passwordStore.gitSignatureForNow.email!
self.gitSignatureTableViewCell.detailTextLabel?.font = UIFont.systemFont(ofSize: 14)
self.gitSignatureTableViewCell.detailTextLabel?.text = "\(gitSignatureName) <\(gitSignatureEmail)>"
if Defaults[.gitSignatureName] == nil && Defaults[.gitSignatureEmail] == nil {
self.gitSignatureTableViewCell.detailTextLabel?.font = UIFont.systemFont(ofSize: 17)
gitSignatureTableViewCell.detailTextLabel?.text = "Not Set"
}
}
@ -92,10 +93,10 @@ class AdvancedSettingsTableViewController: UITableViewController {
@IBAction func saveGitConfigSetting(segue: UIStoryboardSegue) {
if let controller = segue.source as? GitConfigSettingTableViewController {
if let gitConfigUserName = controller.nameTextField.text,
let gitConfigUserEmail = controller.emailTextField.text {
Defaults[.gitConfigUserName] = gitConfigUserName
Defaults[.gitConfigUserEmail] = gitConfigUserEmail
if let gitSignatureName = controller.nameTextField.text,
let gitSignatureEmail = controller.emailTextField.text {
Defaults[.gitSignatureName] = gitSignatureName.isEmpty ? nil : gitSignatureName
Defaults[.gitSignatureEmail] = gitSignatureEmail.isEmpty ? nil : gitSignatureEmail
}
setGitSignatureText()
}

View file

@ -22,22 +22,16 @@ class GitConfigSettingTableViewController: UITableViewController {
let signature = passwordStore.gitSignatureForNow
nameTextField.placeholder = signature.name
emailTextField.placeholder = signature.email
if let gitConfigUserName = Defaults[.gitConfigUserName],
let gitConfigUserEmail = Defaults[.gitConfigUserEmail] {
nameTextField.text = gitConfigUserName
emailTextField.text = gitConfigUserEmail
}
nameTextField.text = Defaults[.gitSignatureName]
emailTextField.text = Defaults[.gitSignatureEmail]
}
override func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool {
if identifier == "saveGitConfigSettingSegue" {
guard let name = nameTextField.text?.trimmingCharacters(in: .whitespaces), !name.isEmpty else {
Utils.alert(title: "Cannot Save", message: "Please set name first.", controller: self, completion: nil)
return false
}
guard let email = emailTextField.text?.trimmingCharacters(in: .whitespaces), !email.isEmpty else {
Utils.alert(title: "Cannot Save", message: "Please set email first.", controller: self, completion: nil)
let name = nameTextField.text!.isEmpty ? Globals.gitSignatureDefaultName : nameTextField.text!
let email = emailTextField.text!.isEmpty ? Globals.gitSignatureDefaultEmail : nameTextField.text!
guard GTSignature(name: name, email: email, time: nil) != nil else {
Utils.alert(title: "Error", message: "Invalid name or email.", controller: self, completion: nil)
return false
}
}