Refactor iniPasswordsTableEntries function to simplify code

This commit is contained in:
Bob Sun 2017-03-02 21:39:48 +08:00
parent bdca2c0834
commit 8ede589c71
No known key found for this signature in database
GPG key ID: 1F86BA2052FED3B4

View file

@ -54,12 +54,12 @@ class PasswordsViewController: UIViewController, UITableViewDataSource, UITableV
@IBOutlet weak var tableView: UITableView! @IBOutlet weak var tableView: UITableView!
private func initPasswordsTableEntries() { private func initPasswordsTableEntries(parent: PasswordEntity?) {
passwordsTableEntries.removeAll() passwordsTableEntries.removeAll()
filteredPasswordsTableEntries.removeAll() filteredPasswordsTableEntries.removeAll()
var passwordEntities = [PasswordEntity]() var passwordEntities = [PasswordEntity]()
if Defaults[.isShowFolderOn] { if Defaults[.isShowFolderOn] {
passwordEntities = PasswordStore.shared.fetchPasswordEntityCoreData(parent: parentPasswordEntity) passwordEntities = PasswordStore.shared.fetchPasswordEntityCoreData(parent: parent)
} else { } else {
passwordEntities = PasswordStore.shared.fetchPasswordEntityCoreData(withDir: false) passwordEntities = PasswordStore.shared.fetchPasswordEntityCoreData(withDir: false)
@ -67,6 +67,7 @@ class PasswordsViewController: UIViewController, UITableViewDataSource, UITableV
passwordsTableEntries = passwordEntities.map { passwordsTableEntries = passwordEntities.map {
PasswordsTableEntry(title: $0.name!, isDir: $0.isDir, passwordEntity: $0) PasswordsTableEntry(title: $0.name!, isDir: $0.isDir, passwordEntity: $0)
} }
parentPasswordEntity = parent
} }
@IBAction func cancelAddPassword(segue: UIStoryboardSegue) { @IBAction func cancelAddPassword(segue: UIStoryboardSegue) {
@ -121,8 +122,7 @@ class PasswordsViewController: UIViewController, UITableViewDataSource, UITableV
} }
DispatchQueue.main.async { DispatchQueue.main.async {
PasswordStore.shared.updatePasswordEntityCoreData() PasswordStore.shared.updatePasswordEntityCoreData()
self.parentPasswordEntity = nil self.initPasswordsTableEntries(parent: nil)
self.initPasswordsTableEntries()
self.reloadTableView(data: self.passwordsTableEntries) self.reloadTableView(data: self.passwordsTableEntries)
PasswordStore.shared.setAllSynced() PasswordStore.shared.setAllSynced()
self.setNavigationItemTitle() self.setNavigationItemTitle()
@ -149,7 +149,7 @@ class PasswordsViewController: UIViewController, UITableViewDataSource, UITableV
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
setNavigationItemTitle() setNavigationItemTitle()
initPasswordsTableEntries() initPasswordsTableEntries(parent: nil)
addNotificationObservers() addNotificationObservers()
generateSections(item: passwordsTableEntries) generateSections(item: passwordsTableEntries)
@ -220,15 +220,13 @@ class PasswordsViewController: UIViewController, UITableViewDataSource, UITableV
} else { } else {
tableView.deselectRow(at: indexPath, animated: true) tableView.deselectRow(at: indexPath, animated: true)
searchController.isActive = false searchController.isActive = false
parentPasswordEntity = entry.passwordEntity initPasswordsTableEntries(parent: entry.passwordEntity)
initPasswordsTableEntries()
reloadTableView(data: passwordsTableEntries) reloadTableView(data: passwordsTableEntries)
} }
} }
func backAction(_ sender: Any?) { func backAction(_ sender: Any?) {
parentPasswordEntity = parentPasswordEntity?.parent initPasswordsTableEntries(parent: parentPasswordEntity?.parent)
initPasswordsTableEntries()
reloadTableView(data: passwordsTableEntries) reloadTableView(data: passwordsTableEntries)
} }
@ -329,7 +327,7 @@ class PasswordsViewController: UIViewController, UITableViewDataSource, UITableV
} }
func actOnPasswordUpdatedNotification() { func actOnPasswordUpdatedNotification() {
initPasswordsTableEntries() initPasswordsTableEntries(parent: nil)
reloadTableView(data: passwordsTableEntries) reloadTableView(data: passwordsTableEntries)
setNavigationItemTitle() setNavigationItemTitle()
} }
@ -350,7 +348,7 @@ class PasswordsViewController: UIViewController, UITableViewDataSource, UITableV
} }
func actOnPasswordStoreErasedNotification() { func actOnPasswordStoreErasedNotification() {
initPasswordsTableEntries() initPasswordsTableEntries(parent: nil)
reloadTableView(data: passwordsTableEntries) reloadTableView(data: passwordsTableEntries)
setNavigationItemTitle() setNavigationItemTitle()
} }