Polish logic of setting git signature

This commit is contained in:
Mingshen Sun 2017-04-27 21:48:10 -07:00
parent 8d0553a417
commit b429a6baf1
No known key found for this signature in database
GPG key ID: 1F86BA2052FED3B4
4 changed files with 28 additions and 13 deletions

View file

@ -31,8 +31,14 @@ class AdvancedSettingsTableViewController: UITableViewController {
encryptInASCIIArmoredSwitch.isOn = Defaults[.encryptInArmored] encryptInASCIIArmoredSwitch.isOn = Defaults[.encryptInArmored]
encryptInASCIIArmoredTableViewCell.accessoryView = encryptInASCIIArmoredSwitch encryptInASCIIArmoredTableViewCell.accessoryView = encryptInASCIIArmoredSwitch
encryptInASCIIArmoredTableViewCell.selectionStyle = .none encryptInASCIIArmoredTableViewCell.selectionStyle = .none
if Defaults[.gitName]?.isEmpty == false && Defaults[.gitEmail]?.isEmpty == false { setGitSignatureText()
gitSignatureTableViewCell.detailTextLabel?.text = "Set" }
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 { } else {
gitSignatureTableViewCell.detailTextLabel?.text = "Not Set" gitSignatureTableViewCell.detailTextLabel?.text = "Not Set"
} }
@ -90,11 +96,12 @@ class AdvancedSettingsTableViewController: UITableViewController {
@IBAction func saveGitConfigSetting(segue: UIStoryboardSegue) { @IBAction func saveGitConfigSetting(segue: UIStoryboardSegue) {
if let controller = segue.source as? GitConfigSettingTableViewController { if let controller = segue.source as? GitConfigSettingTableViewController {
Defaults[.gitName] = controller.nameTextField.text if let gitConfigUserName = controller.nameTextField.text,
Defaults[.gitEmail] = controller.emailTextField.text let gitConfigUserEmail = controller.emailTextField.text {
DispatchQueue.main.async { Defaults[.gitConfigUserName] = gitConfigUserName
self.gitSignatureTableViewCell.detailTextLabel?.text = "Set" Defaults[.gitConfigUserEmail] = gitConfigUserEmail
} }
setGitSignatureText()
} }
} }

View file

@ -23,8 +23,11 @@ class GitConfigSettingTableViewController: UITableViewController {
nameTextField.placeholder = signature.name nameTextField.placeholder = signature.name
emailTextField.placeholder = signature.email emailTextField.placeholder = signature.email
nameTextField.text = Defaults[.gitName] if let gitConfigUserName = Defaults[.gitConfigUserName],
emailTextField.text = Defaults[.gitEmail] let gitConfigUserEmail = Defaults[.gitConfigUserEmail] {
nameTextField.text = gitConfigUserName
emailTextField.text = gitConfigUserEmail
}
} }
override func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool { override func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool {

View file

@ -26,8 +26,8 @@ extension DefaultsKeys {
static let gitSSHKeySource = DefaultsKey<String?>("gitSSHKeySource") static let gitSSHKeySource = DefaultsKey<String?>("gitSSHKeySource")
static let gitSSHPublicKeyArmor = DefaultsKey<String?>("gitSSHPublicKeyArmor") static let gitSSHPublicKeyArmor = DefaultsKey<String?>("gitSSHPublicKeyArmor")
static let gitSSHPrivateKeyArmor = DefaultsKey<String?>("gitSSHPrivateKeyArmor") static let gitSSHPrivateKeyArmor = DefaultsKey<String?>("gitSSHPrivateKeyArmor")
static let gitName = DefaultsKey<String?>("gitName") static let gitConfigUserName = DefaultsKey<String?>("gitConfigUserName")
static let gitEmail = DefaultsKey<String?>("gitEmail") static let gitConfigUserEmail = DefaultsKey<String?>("gitConfigUserEmail")
static let lastSyncedTime = DefaultsKey<Date?>("lastSyncedTime") static let lastSyncedTime = DefaultsKey<Date?>("lastSyncedTime")

View file

@ -84,9 +84,14 @@ class PasswordStore {
var gitSignatureForNow: GTSignature { var gitSignatureForNow: GTSignature {
get { get {
let name = Defaults[.gitName] ?? Defaults[.gitUsername] ?? "user" if let gitConfigUserName = Defaults[.gitConfigUserName],
let email = Defaults[.gitEmail] ?? ((Defaults[.gitUsername] ?? "user") + "@passforios") let gitConfigUserEmail = Defaults[.gitConfigUserEmail] {
return GTSignature(name: name, email: email, time: Date())! 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())!
}
} }
} }