From 5985b00480da00fb8a0a3660fe399bd18cb1f20a Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Thu, 12 Sep 2019 10:59:26 -0500 Subject: [PATCH] Inject the Accounts folder name so that it can be in different locations between the iOS and Mac Apps. --- Frameworks/Account/AccountManager.swift | 9 ++++++--- Mac/AppDelegate.swift | 2 ++ iOS/AppDelegate.swift | 5 ++--- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/Frameworks/Account/AccountManager.swift b/Frameworks/Account/AccountManager.swift index 52e847e5c..08b27bd97 100644 --- a/Frameworks/Account/AccountManager.swift +++ b/Frameworks/Account/AccountManager.swift @@ -14,10 +14,11 @@ import Articles public final class AccountManager: UnreadCountProvider { - public static let shared = AccountManager() + public static var shared: AccountManager! + public let defaultAccount: Account - private let accountsFolder = RSDataSubfolder(nil, "Accounts")! + private let accountsFolder: String private var accountsDictionary = [String: Account]() private let defaultAccountFolderName = "OnMyMac" @@ -71,7 +72,9 @@ public final class AccountManager: UnreadCountProvider { return CombinedRefreshProgress(downloadProgressArray: downloadProgressArray) } - public init() { + public init(accountsFolder: String) { + self.accountsFolder = accountsFolder + // The local "On My Mac" account must always exist, even if it's empty. let localAccountFolder = (accountsFolder as NSString).appendingPathComponent("OnMyMac") do { diff --git a/Mac/AppDelegate.swift b/Mac/AppDelegate.swift index dd300884a..a0a34dba3 100644 --- a/Mac/AppDelegate.swift +++ b/Mac/AppDelegate.swift @@ -69,6 +69,8 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserInterfaceValidations, NSWindow.allowsAutomaticWindowTabbing = false super.init() + AccountManager.shared = AccountManager(accountsFolder: RSDataSubfolder(nil, "Accounts")!) + NotificationCenter.default.addObserver(self, selector: #selector(unreadCountDidChange(_:)), name: .UnreadCountDidChange, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(inspectableObjectsDidChange(_:)), name: .InspectableObjectsDidChange, object: nil) diff --git a/iOS/AppDelegate.swift b/iOS/AppDelegate.swift index da8995f38..d74176d9d 100644 --- a/iOS/AppDelegate.swift +++ b/iOS/AppDelegate.swift @@ -52,6 +52,8 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UISplitViewControllerDele super.init() appDelegate = self + + AccountManager.shared = AccountManager(accountsFolder: RSDataSubfolder(nil, "Accounts")!) registerBackgroundTasks() @@ -59,9 +61,6 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UISplitViewControllerDele NotificationCenter.default.addObserver(self, selector: #selector(accountRefreshDidFinish(_:)), name: .AccountRefreshDidFinish, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(userDefaultsDidChange(_:)), name: UserDefaults.didChangeNotification, object: nil) - // Reinitialize the shared state as early as possible - _ = AccountManager.shared - } func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {