From 0b714ffec2e28472d68a76e7fefd0b78227a0755 Mon Sep 17 00:00:00 2001 From: Bob Sun Date: Mon, 13 Feb 2017 14:30:38 +0800 Subject: [PATCH] fix small bugs --- .../AboutRepositoryTableViewController.swift | 4 ++- .../SettingsTableViewController.swift | 6 ++-- pass/Helpers/DefaultsKeys.swift | 35 ++++--------------- pass/Models/PasswordStore.swift | 7 ++-- 4 files changed, 16 insertions(+), 36 deletions(-) diff --git a/pass/Controllers/AboutRepositoryTableViewController.swift b/pass/Controllers/AboutRepositoryTableViewController.swift index d8d1b09..117f7c9 100644 --- a/pass/Controllers/AboutRepositoryTableViewController.swift +++ b/pass/Controllers/AboutRepositoryTableViewController.swift @@ -36,7 +36,9 @@ class AboutRepositoryTableViewController: BasicStaticTableViewController { var size = UInt64(0) do { - size = try fm.allocatedSizeOfDirectoryAtURL(directoryURL: PasswordStore.shared.storeURL) + if fm.fileExists(atPath: PasswordStore.shared.storeURL.path) { + size = try fm.allocatedSizeOfDirectoryAtURL(directoryURL: PasswordStore.shared.storeURL) + } } catch { print(error) } diff --git a/pass/Controllers/SettingsTableViewController.swift b/pass/Controllers/SettingsTableViewController.swift index ddb0abb..9f88df0 100644 --- a/pass/Controllers/SettingsTableViewController.swift +++ b/pass/Controllers/SettingsTableViewController.swift @@ -26,9 +26,7 @@ class SettingsTableViewController: UITableViewController { @IBAction func save(segue: UIStoryboardSegue) { if let controller = segue.source as? PGPKeySettingTableViewController { - if Defaults[.pgpPrivateKeyURL] != URL(string: controller.pgpPrivateKeyURLTextField.text!) || - Defaults[.pgpPublicKeyURL] != URL(string: controller.pgpPublicKeyURLTextField.text!) || - Defaults[.pgpKeyPassphrase] != controller.pgpKeyPassphraseTextField.text! { + if Defaults[.pgpKeyID] == nil { Defaults[.pgpPrivateKeyURL] = URL(string: controller.pgpPrivateKeyURLTextField.text!) Defaults[.pgpPublicKeyURL] = URL(string: controller.pgpPublicKeyURLTextField.text!) Defaults[.pgpKeyPassphrase] = controller.pgpKeyPassphraseTextField.text! @@ -49,6 +47,8 @@ class SettingsTableViewController: UITableViewController { } } catch { DispatchQueue.main.async { + self.pgpKeyTableViewCell.detailTextLabel?.text = "Not Set" + Defaults[.pgpKeyID] = nil SVProgressHUD.showError(withStatus: error.localizedDescription) SVProgressHUD.dismiss(withDelay: 1) } diff --git a/pass/Helpers/DefaultsKeys.swift b/pass/Helpers/DefaultsKeys.swift index 243dacc..82db734 100644 --- a/pass/Helpers/DefaultsKeys.swift +++ b/pass/Helpers/DefaultsKeys.swift @@ -14,14 +14,14 @@ extension DefaultsKeys { static let pgpPublicKeyURL = DefaultsKey("pgpPublicKeyURL") static let pgpPrivateKeyURL = DefaultsKey("pgpPrivateKeyURL") - static let pgpKeyPassphrase = DefaultsKey("pgpKeyPassphrase") - static let pgpKeyID = DefaultsKey("pgpKeyID") - static let pgpKeyUserID = DefaultsKey("pgpKeyUserID") + static let pgpKeyPassphrase = DefaultsKey("pgpKeyPassphrase") + static let pgpKeyID = DefaultsKey("pgpKeyID") + static let pgpKeyUserID = DefaultsKey("pgpKeyUserID") static let gitRepositoryURL = DefaultsKey("gitRepositoryURL") - static let gitRepositoryAuthenticationMethod = DefaultsKey("gitRepositoryAuthenticationMethod") - static let gitRepositoryUsername = DefaultsKey("gitRepositoryUsername") - static let gitRepositoryPassword = DefaultsKey("gitRepositoryPassword") + static let gitRepositoryAuthenticationMethod = DefaultsKey("gitRepositoryAuthenticationMethod") + static let gitRepositoryUsername = DefaultsKey("gitRepositoryUsername") + static let gitRepositoryPassword = DefaultsKey("gitRepositoryPassword") static let gitRepositorySSHPublicKeyURL = DefaultsKey("gitRepositorySSHPublicKeyURL") static let gitRepositorySSHPrivateKeyURL = DefaultsKey("gitRepositorySSHPrivateKeyURL") static let gitRepositorySSHPrivateKeyPassphrase = DefaultsKey("gitRepositorySSHPrivateKeyPassphrase") @@ -30,26 +30,3 @@ extension DefaultsKeys { static let isTouchIDOn = DefaultsKey("isTouchIDOn") static let passcodeKey = DefaultsKey("passcodeKey") } - -extension Utils { - static func eraseAllUserDefaults() { - Defaults.remove(.pgpPublicKeyURL) - Defaults.remove(.pgpPrivateKeyURL) - - Defaults.remove(.pgpKeyPassphrase) - Defaults.remove(.pgpKeyID) - Defaults.remove(.pgpKeyUserID) - - Defaults.remove(.gitRepositoryURL) - Defaults.remove(.gitRepositoryAuthenticationMethod) - Defaults.remove(.gitRepositoryUsername) - Defaults.remove(.gitRepositoryPassword) - Defaults.remove(.gitRepositorySSHPublicKeyURL) - Defaults.remove(.gitRepositorySSHPrivateKeyURL) - Defaults.remove(.gitRepositorySSHPrivateKeyPassphrase) - Defaults.remove(.lastUpdatedTime) - - Defaults.remove(.isTouchIDOn) - Defaults.remove(.passcodeKey) - } -} diff --git a/pass/Models/PasswordStore.swift b/pass/Models/PasswordStore.swift index 74fc0f5..c681cbf 100644 --- a/pass/Models/PasswordStore.swift +++ b/pass/Models/PasswordStore.swift @@ -63,9 +63,9 @@ class PasswordStore { } if Defaults[.gitRepositoryAuthenticationMethod] == "Password" { - gitCredential = GitCredential(credential: GitCredential.Credential.http(userName: Defaults[.gitRepositoryUsername], password: Defaults[.gitRepositoryPassword])) + gitCredential = GitCredential(credential: GitCredential.Credential.http(userName: Defaults[.gitRepositoryUsername]!, password: Defaults[.gitRepositoryPassword]!)) } else if Defaults[.gitRepositoryAuthenticationMethod] == "SSH Key"{ - gitCredential = GitCredential(credential: GitCredential.Credential.ssh(userName: Defaults[.gitRepositoryUsername], password: Defaults[.gitRepositorySSHPrivateKeyPassphrase]!, publicKeyFile: Globals.sshPublicKeyURL, privateKeyFile: Globals.sshPrivateKeyURL)) + gitCredential = GitCredential(credential: GitCredential.Credential.ssh(userName: Defaults[.gitRepositoryUsername]!, password: Defaults[.gitRepositorySSHPrivateKeyPassphrase]!, publicKeyFile: Globals.sshPublicKeyURL, privateKeyFile: Globals.sshPrivateKeyURL)) } else { gitCredential = nil } @@ -358,6 +358,7 @@ class PasswordStore { deleteCoreData(entityName: "PasswordEntity") deleteCoreData(entityName: "PasswordCategoryEntity") - Utils.eraseAllUserDefaults() + Defaults.removeAll() + storeRepository = nil } }