From b429a6baf150af857645cc15b962c566f66ca106 Mon Sep 17 00:00:00 2001 From: Mingshen Sun Date: Thu, 27 Apr 2017 21:48:10 -0700 Subject: [PATCH] Polish logic of setting git signature --- .../AdvancedSettingsTableViewController.swift | 19 +++++++++++++------ .../GitConfigSettingTableViewController.swift | 7 +++++-- pass/Helpers/DefaultsKeys.swift | 4 ++-- pass/Models/PasswordStore.swift | 11 ++++++++--- 4 files changed, 28 insertions(+), 13 deletions(-) diff --git a/pass/Controllers/AdvancedSettingsTableViewController.swift b/pass/Controllers/AdvancedSettingsTableViewController.swift index fec3648..2baf952 100644 --- a/pass/Controllers/AdvancedSettingsTableViewController.swift +++ b/pass/Controllers/AdvancedSettingsTableViewController.swift @@ -31,8 +31,14 @@ class AdvancedSettingsTableViewController: UITableViewController { encryptInASCIIArmoredSwitch.isOn = Defaults[.encryptInArmored] encryptInASCIIArmoredTableViewCell.accessoryView = encryptInASCIIArmoredSwitch encryptInASCIIArmoredTableViewCell.selectionStyle = .none - if Defaults[.gitName]?.isEmpty == false && Defaults[.gitEmail]?.isEmpty == false { - gitSignatureTableViewCell.detailTextLabel?.text = "Set" + setGitSignatureText() + } + + 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 { gitSignatureTableViewCell.detailTextLabel?.text = "Not Set" } @@ -90,11 +96,12 @@ class AdvancedSettingsTableViewController: UITableViewController { @IBAction func saveGitConfigSetting(segue: UIStoryboardSegue) { if let controller = segue.source as? GitConfigSettingTableViewController { - Defaults[.gitName] = controller.nameTextField.text - Defaults[.gitEmail] = controller.emailTextField.text - DispatchQueue.main.async { - self.gitSignatureTableViewCell.detailTextLabel?.text = "Set" + if let gitConfigUserName = controller.nameTextField.text, + let gitConfigUserEmail = controller.emailTextField.text { + Defaults[.gitConfigUserName] = gitConfigUserName + Defaults[.gitConfigUserEmail] = gitConfigUserEmail } + setGitSignatureText() } } diff --git a/pass/Controllers/GitConfigSettingTableViewController.swift b/pass/Controllers/GitConfigSettingTableViewController.swift index cc49eba..49ec9d4 100644 --- a/pass/Controllers/GitConfigSettingTableViewController.swift +++ b/pass/Controllers/GitConfigSettingTableViewController.swift @@ -23,8 +23,11 @@ class GitConfigSettingTableViewController: UITableViewController { nameTextField.placeholder = signature.name emailTextField.placeholder = signature.email - nameTextField.text = Defaults[.gitName] - emailTextField.text = Defaults[.gitEmail] + if let gitConfigUserName = Defaults[.gitConfigUserName], + let gitConfigUserEmail = Defaults[.gitConfigUserEmail] { + nameTextField.text = gitConfigUserName + emailTextField.text = gitConfigUserEmail + } } override func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool { diff --git a/pass/Helpers/DefaultsKeys.swift b/pass/Helpers/DefaultsKeys.swift index fe1bb00..9b4db16 100644 --- a/pass/Helpers/DefaultsKeys.swift +++ b/pass/Helpers/DefaultsKeys.swift @@ -26,8 +26,8 @@ extension DefaultsKeys { static let gitSSHKeySource = DefaultsKey("gitSSHKeySource") static let gitSSHPublicKeyArmor = DefaultsKey("gitSSHPublicKeyArmor") static let gitSSHPrivateKeyArmor = DefaultsKey("gitSSHPrivateKeyArmor") - static let gitName = DefaultsKey("gitName") - static let gitEmail = DefaultsKey("gitEmail") + static let gitConfigUserName = DefaultsKey("gitConfigUserName") + static let gitConfigUserEmail = DefaultsKey("gitConfigUserEmail") static let lastSyncedTime = DefaultsKey("lastSyncedTime") diff --git a/pass/Models/PasswordStore.swift b/pass/Models/PasswordStore.swift index b934d6a..1ebea5c 100644 --- a/pass/Models/PasswordStore.swift +++ b/pass/Models/PasswordStore.swift @@ -84,9 +84,14 @@ class PasswordStore { var gitSignatureForNow: GTSignature { get { - let name = Defaults[.gitName] ?? Defaults[.gitUsername] ?? "user" - let email = Defaults[.gitEmail] ?? ((Defaults[.gitUsername] ?? "user") + "@passforios") - return GTSignature(name: name, email: email, time: Date())! + if let gitConfigUserName = Defaults[.gitConfigUserName], + let gitConfigUserEmail = Defaults[.gitConfigUserEmail] { + return GTSignature(name: gitConfigUserName, email: gitConfigUserEmail, time: Date())! + } else { + let name = Defaults[.gitUsername] ?? "user" + let email = (Defaults[.gitUsername] ?? "user") + "@passforios" + return GTSignature(name: name, email: email, time: Date())! + } } }