From bdca2c0834e01c951513b38d946ae3c840591167 Mon Sep 17 00:00:00 2001 From: Bob Sun Date: Thu, 2 Mar 2017 20:46:06 +0800 Subject: [PATCH 1/5] Fix a bug caused by removed PasswordCategoryEnetity in erase method --- pass/Models/PasswordStore.swift | 1 - 1 file changed, 1 deletion(-) diff --git a/pass/Models/PasswordStore.swift b/pass/Models/PasswordStore.swift index 2033dad..fb003f1 100644 --- a/pass/Models/PasswordStore.swift +++ b/pass/Models/PasswordStore.swift @@ -600,7 +600,6 @@ class PasswordStore { deleteCoreData(entityName: "PasswordEntity") - deleteCoreData(entityName: "PasswordCategoryEntity") Defaults.removeAll() storeRepository = nil From 8ede589c71a70c43facace9ae6305fbe4c51f0d5 Mon Sep 17 00:00:00 2001 From: Bob Sun Date: Thu, 2 Mar 2017 21:39:48 +0800 Subject: [PATCH 2/5] Refactor iniPasswordsTableEntries function to simplify code --- .../Controllers/PasswordsViewController.swift | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/pass/Controllers/PasswordsViewController.swift b/pass/Controllers/PasswordsViewController.swift index 4b27d42..4684327 100644 --- a/pass/Controllers/PasswordsViewController.swift +++ b/pass/Controllers/PasswordsViewController.swift @@ -54,12 +54,12 @@ class PasswordsViewController: UIViewController, UITableViewDataSource, UITableV @IBOutlet weak var tableView: UITableView! - private func initPasswordsTableEntries() { + private func initPasswordsTableEntries(parent: PasswordEntity?) { passwordsTableEntries.removeAll() filteredPasswordsTableEntries.removeAll() var passwordEntities = [PasswordEntity]() if Defaults[.isShowFolderOn] { - passwordEntities = PasswordStore.shared.fetchPasswordEntityCoreData(parent: parentPasswordEntity) + passwordEntities = PasswordStore.shared.fetchPasswordEntityCoreData(parent: parent) } else { passwordEntities = PasswordStore.shared.fetchPasswordEntityCoreData(withDir: false) @@ -67,6 +67,7 @@ class PasswordsViewController: UIViewController, UITableViewDataSource, UITableV passwordsTableEntries = passwordEntities.map { PasswordsTableEntry(title: $0.name!, isDir: $0.isDir, passwordEntity: $0) } + parentPasswordEntity = parent } @IBAction func cancelAddPassword(segue: UIStoryboardSegue) { @@ -121,8 +122,7 @@ class PasswordsViewController: UIViewController, UITableViewDataSource, UITableV } DispatchQueue.main.async { PasswordStore.shared.updatePasswordEntityCoreData() - self.parentPasswordEntity = nil - self.initPasswordsTableEntries() + self.initPasswordsTableEntries(parent: nil) self.reloadTableView(data: self.passwordsTableEntries) PasswordStore.shared.setAllSynced() self.setNavigationItemTitle() @@ -149,7 +149,7 @@ class PasswordsViewController: UIViewController, UITableViewDataSource, UITableV override func viewDidLoad() { super.viewDidLoad() setNavigationItemTitle() - initPasswordsTableEntries() + initPasswordsTableEntries(parent: nil) addNotificationObservers() generateSections(item: passwordsTableEntries) @@ -220,15 +220,13 @@ class PasswordsViewController: UIViewController, UITableViewDataSource, UITableV } else { tableView.deselectRow(at: indexPath, animated: true) searchController.isActive = false - parentPasswordEntity = entry.passwordEntity - initPasswordsTableEntries() + initPasswordsTableEntries(parent: entry.passwordEntity) reloadTableView(data: passwordsTableEntries) } } func backAction(_ sender: Any?) { - parentPasswordEntity = parentPasswordEntity?.parent - initPasswordsTableEntries() + initPasswordsTableEntries(parent: parentPasswordEntity?.parent) reloadTableView(data: passwordsTableEntries) } @@ -329,7 +327,7 @@ class PasswordsViewController: UIViewController, UITableViewDataSource, UITableV } func actOnPasswordUpdatedNotification() { - initPasswordsTableEntries() + initPasswordsTableEntries(parent: nil) reloadTableView(data: passwordsTableEntries) setNavigationItemTitle() } @@ -350,7 +348,7 @@ class PasswordsViewController: UIViewController, UITableViewDataSource, UITableV } func actOnPasswordStoreErasedNotification() { - initPasswordsTableEntries() + initPasswordsTableEntries(parent: nil) reloadTableView(data: passwordsTableEntries) setNavigationItemTitle() } From f271d4870ac30093b8b3ad9a7896e05993c71e52 Mon Sep 17 00:00:00 2001 From: Bob Sun Date: Thu, 2 Mar 2017 22:10:27 +0800 Subject: [PATCH 3/5] Show disclosure indicator for folder only --- pass/Base.lproj/Main.storyboard | 45 +++++++++++-------- .../Controllers/PasswordsViewController.swift | 6 ++- 2 files changed, 31 insertions(+), 20 deletions(-) diff --git a/pass/Base.lproj/Main.storyboard b/pass/Base.lproj/Main.storyboard index f19df10..b246c5a 100644 --- a/pass/Base.lproj/Main.storyboard +++ b/pass/Base.lproj/Main.storyboard @@ -27,7 +27,7 @@ - + @@ -35,12 +35,19 @@ + @@ -82,11 +89,11 @@ - +