Do not re-save profiles on (de)activate

Only service JSON is affected.
This commit is contained in:
Davide De Rosa 2018-11-04 14:35:12 +01:00
parent f120c51efe
commit bc0568cc38
3 changed files with 10 additions and 8 deletions

View File

@ -57,7 +57,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UISplitViewControllerDele
func applicationWillResignActive(_ application: UIApplication) { func applicationWillResignActive(_ application: UIApplication) {
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.
TransientStore.shared.serialize() // synchronize TransientStore.shared.serialize(withProfiles: true) // synchronize
} }
func applicationDidEnterBackground(_ application: UIApplication) { func applicationDidEnterBackground(_ application: UIApplication) {

View File

@ -421,7 +421,7 @@ extension OrganizerViewController {
extension OrganizerViewController: ConnectionServiceDelegate { extension OrganizerViewController: ConnectionServiceDelegate {
func connectionService(didAdd profile: ConnectionProfile) { func connectionService(didAdd profile: ConnectionProfile) {
TransientStore.shared.serialize() // add TransientStore.shared.serialize(withProfiles: true) // add
reloadModel() reloadModel()
tableView.reloadData() tableView.reloadData()
@ -444,14 +444,14 @@ extension OrganizerViewController: ConnectionServiceDelegate {
} }
func connectionService(didRename oldProfile: ConnectionProfile, to newProfile: ConnectionProfile) { func connectionService(didRename oldProfile: ConnectionProfile, to newProfile: ConnectionProfile) {
TransientStore.shared.serialize() // rename TransientStore.shared.serialize(withProfiles: true) // rename
reloadModel() reloadModel()
tableView.reloadData() tableView.reloadData()
} }
func connectionService(didRemoveProfileWithKey key: ConnectionService.ProfileKey) { func connectionService(didRemoveProfileWithKey key: ConnectionService.ProfileKey) {
TransientStore.shared.serialize() // delete TransientStore.shared.serialize(withProfiles: true) // delete
splitViewController?.serviceViewController?.hideProfileIfDeleted() splitViewController?.serviceViewController?.hideProfileIfDeleted()
} }
@ -459,13 +459,13 @@ extension OrganizerViewController: ConnectionServiceDelegate {
// XXX: deactivate + activate leads to a redundant serialization // XXX: deactivate + activate leads to a redundant serialization
func connectionService(willDeactivate profile: ConnectionProfile) { func connectionService(willDeactivate profile: ConnectionProfile) {
TransientStore.shared.serialize() // deactivate TransientStore.shared.serialize(withProfiles: false) // deactivate
tableView.reloadData() tableView.reloadData()
} }
func connectionService(didActivate profile: ConnectionProfile) { func connectionService(didActivate profile: ConnectionProfile) {
TransientStore.shared.serialize() // activate TransientStore.shared.serialize(withProfiles: false) // activate
tableView.reloadData() tableView.reloadData()
} }

View File

@ -77,8 +77,10 @@ class TransientStore {
} }
} }
func serialize() { func serialize(withProfiles: Bool) {
try? JSONEncoder().encode(service).write(to: TransientStore.serviceURL) try? JSONEncoder().encode(service).write(to: TransientStore.serviceURL)
if withProfiles {
service.saveProfiles() service.saveProfiles()
} }
} }
}