Make sure to refresh provider managers after saving.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
@@ -10,6 +10,7 @@ import Foundation
|
|||||||
import NetworkExtension
|
import NetworkExtension
|
||||||
import os.log
|
import os.log
|
||||||
import ZIPFoundation
|
import ZIPFoundation
|
||||||
|
import PromiseKit
|
||||||
|
|
||||||
import CoreData
|
import CoreData
|
||||||
import BNRCoreDataStack
|
import BNRCoreDataStack
|
||||||
@@ -64,15 +65,9 @@ class AppCoordinator: RootViewCoordinator {
|
|||||||
|
|
||||||
/// Starts the coordinator
|
/// Starts the coordinator
|
||||||
public func start() {
|
public func start() {
|
||||||
NETunnelProviderManager.loadAllFromPreferences { [weak self] (managers, error) in
|
_ = refreshProviderManagers().then { () -> Promise<Void> in
|
||||||
if let error = error {
|
self.persistentContainer.viewContext.automaticallyMergesChangesFromParent = true
|
||||||
os_log("Unable to load provider managers: %{public}@", log: Log.general, type: .error, error.localizedDescription)
|
self.persistentContainer.loadPersistentStores { [weak self] (_, error) in
|
||||||
}
|
|
||||||
self?.providerManagers = managers
|
|
||||||
}
|
|
||||||
|
|
||||||
persistentContainer.viewContext.automaticallyMergesChangesFromParent = true
|
|
||||||
persistentContainer.loadPersistentStores { [weak self] (_, error) in
|
|
||||||
if let error = error {
|
if let error = error {
|
||||||
print("Unable to Load Persistent Store. \(error), \(error.localizedDescription)")
|
print("Unable to Load Persistent Store. \(error), \(error.localizedDescription)")
|
||||||
|
|
||||||
@@ -95,6 +90,20 @@ class AppCoordinator: RootViewCoordinator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return Promise.value(())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func refreshProviderManagers() -> Promise<Void> {
|
||||||
|
return Promise { (resolver) in
|
||||||
|
NETunnelProviderManager.loadAllFromPreferences { [weak self] (managers, error) in
|
||||||
|
if let error = error {
|
||||||
|
os_log("Unable to load provider managers: %{public}@", log: Log.general, type: .error, error.localizedDescription)
|
||||||
|
}
|
||||||
|
self?.providerManagers = managers
|
||||||
|
resolver.fulfill(())
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func importConfig(config: URL) throws {
|
func importConfig(config: URL) throws {
|
||||||
@@ -458,7 +467,10 @@ extension AppCoordinator: TunnelsTableViewControllerDelegate {
|
|||||||
os_log("saved preferences", log: Log.general, type: .info)
|
os_log("saved preferences", log: Log.general, type: .info)
|
||||||
}
|
}
|
||||||
|
|
||||||
navigationController.popToRootViewController(animated: true)
|
_ = refreshProviderManagers().then { () -> Promise<Void> in
|
||||||
|
self.navigationController.popToRootViewController(animated: true)
|
||||||
|
return Promise.value(())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user