Skip to content

Commit 7150b07

Browse files
committed
Replace all ContextManager sharedInstance() usages with shared
Apart from being more Swift-y, this will also allow us to differentiate between a shared instance for the Objective-C layer (`CoreDataStack`) and one for the Swift layer (`CoreDataStackSwift`). This differentiation will be valuable if/when we'll replace `ContextManager` references with `CoreDataStack`/`CoreDataStackSwift` so that WordPressDataObjC can refer to the functionality without knowing about `ContextManager`, which is defined in the Swift WordPressData layer.
1 parent b8f184b commit 7150b07

File tree

87 files changed

+133
-133
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

87 files changed

+133
-133
lines changed

WordPress/Classes/Models/Blog/Blog+HomepageSettings.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ extension Blog {
106106
guard let pageID = homepageType == .page ? homepagePageID
107107
: homepageType == .posts ? homepagePostsPageID
108108
: nil else { return nil }
109-
let context = ContextManager.sharedInstance().mainContext
109+
let context = ContextManager.shared.mainContext
110110
return lookupPost(withID: Int64(pageID), in: context) as? Page
111111
}
112112
}

WordPress/Classes/Models/Notifications/Actions/NotificationAction.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class DefaultNotificationActionCommand: FormattableContentActionCommand {
1515
}
1616

1717
private(set) lazy var mainContext: NSManagedObjectContext? = {
18-
return ContextManager.sharedInstance().mainContext
18+
return ContextManager.shared.mainContext
1919
}()
2020

2121
private(set) lazy var actionsService: NotificationActionsService? = {

WordPress/Classes/Services/AccountSettingsService.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ class AccountSettingsService {
6464
self.init(userID: userID, remote: remote)
6565
}
6666

67-
init(userID: Int, remote: AccountSettingsRemoteInterface, coreDataStack: CoreDataStackSwift = ContextManager.sharedInstance()) {
67+
init(userID: Int, remote: AccountSettingsRemoteInterface, coreDataStack: CoreDataStackSwift = ContextManager.shared) {
6868
self.userID = userID
6969
self.remote = remote
7070
self.coreDataStack = coreDataStack

WordPress/Classes/Services/JetpackNotificationMigrationService.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ final class JetpackNotificationMigrationService: JetpackNotificationMigrationSer
2626
}
2727

2828
private lazy var notificationSettingsService: NotificationSettingsService? = {
29-
NotificationSettingsService(coreDataStack: ContextManager.sharedInstance())
29+
NotificationSettingsService(coreDataStack: ContextManager.shared)
3030
}()
3131

3232
private lazy var bloggingRemindersScheduler: BloggingRemindersScheduler? = {

WordPress/Classes/Services/NotificationSyncMediator.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ final class NotificationSyncMediator: NotificationSyncMediatorProtocol {
7979
/// Designed Initializer
8080
///
8181
convenience init?() {
82-
let manager = ContextManager.sharedInstance()
82+
let manager = ContextManager.shared
8383

8484
guard let dotcomAPI = try? WPAccount.lookupDefaultWordPressComAccount(in: manager.mainContext)?.wordPressComRestApi else {
8585
return nil

WordPress/Classes/Services/PostCoordinator.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ class PostCoordinator: NSObject {
6161

6262
init(mediaCoordinator: MediaCoordinator? = nil,
6363
actionDispatcherFacade: ActionDispatcherFacade = ActionDispatcherFacade(),
64-
coreDataStack: CoreDataStackSwift = ContextManager.sharedInstance()) {
64+
coreDataStack: CoreDataStackSwift = ContextManager.shared) {
6565
self.coreDataStack = coreDataStack
6666
self.mediaCoordinator = mediaCoordinator ?? MediaCoordinator.shared
6767
self.actionDispatcherFacade = actionDispatcherFacade

WordPress/Classes/Services/PostService+Revisions.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ extension PostService {
2323
for: postId.intValue,
2424
with: blogId.intValue
2525
)
26-
ContextManager.sharedInstance().save(self.managedObjectContext, completion: success, on: .main)
26+
ContextManager.shared.save(self.managedObjectContext, completion: success, on: .main)
2727
}
2828
}, failure: failure)
2929
}

WordPress/Classes/Services/PostService+UnattachedMedia.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ extension PostService {
1515

1616
let mediaService = MediaService(managedObjectContext: self.managedObjectContext)
1717
mediaService.updateMedia(mediaToUpdate, fieldsToUpdate: ["postID"], overallSuccess: {
18-
ContextManager.sharedInstance().save(self.managedObjectContext)
18+
ContextManager.shared.save(self.managedObjectContext)
1919
success()
2020
}) { error in
2121
failure(error)

WordPress/Classes/Services/WordPressComSyncService.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ class WordPressComSyncService {
6565
/// - onFailure: Failure block
6666
///
6767
func syncOrAssociateBlogs(account: WPAccount, isJetpackLogin: Bool, onSuccess: @escaping (WPAccount) -> Void, onFailure: @escaping (Error) -> Void) {
68-
let accountService = AccountService(coreDataStack: ContextManager.sharedInstance())
68+
let accountService = AccountService(coreDataStack: ContextManager.shared)
6969

7070
let onFailureInternal = { (error: Error) in
7171
/// At this point the user is authed and there is a valid account in core data. Make a note of the error and just dismiss

WordPress/Classes/Stores/ActivityStore.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ class ActivityStore: QueryStore<ActivityStoreState, ActivityQuery> {
100100
activityServiceRemote: ActivityServiceRemote? = nil,
101101
backupService: JetpackBackupService? = nil) {
102102
self.activityServiceRemote = activityServiceRemote
103-
self.backupService = backupService ?? JetpackBackupService(coreDataStack: ContextManager.sharedInstance())
103+
self.backupService = backupService ?? JetpackBackupService(coreDataStack: ContextManager.shared)
104104
super.init(initialState: ActivityStoreState(), dispatcher: dispatcher)
105105
}
106106

WordPress/Classes/System/3D Touch/WP3DTouchShortcutCreator.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ open class WP3DTouchShortcutCreator: NSObject {
1919
}
2020

2121
var shortcutsProvider: ApplicationShortcutsProvider
22-
@objc let mainContext = ContextManager.sharedInstance().mainContext
22+
@objc let mainContext = ContextManager.shared.mainContext
2323

2424
fileprivate let logInShortcutIconImageName = "icon-shortcut-signin"
2525
fileprivate let notificationsShortcutIconImageName = "icon-shortcut-notifications"

WordPress/Classes/System/3D Touch/WP3DTouchShortcutHandler.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ open class WP3DTouchShortcutHandler: NSObject {
2929
case ShortcutIdentifier.Stats.type:
3030
WPAnalytics.track(.shortcutStats)
3131
clearCurrentViewController()
32-
if let mainBlog = Blog.lastUsedOrFirst(in: ContextManager.sharedInstance().mainContext) {
32+
if let mainBlog = Blog.lastUsedOrFirst(in: ContextManager.shared.mainContext) {
3333
rootViewPresenter.showStats(for: mainBlog, source: .shortcut)
3434
}
3535
return true

WordPress/Classes/System/WordPressAppDelegate+openURL.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ import AutomatticTracks
149149
let title = params.value(of: NewPostKey.title)
150150
let tags = params.value(of: NewPostKey.tags)
151151

152-
let context = ContextManager.sharedInstance().mainContext
152+
let context = ContextManager.shared.mainContext
153153
guard let blog = Blog.lastUsedOrFirst(in: context) else {
154154
return false
155155
}
@@ -186,7 +186,7 @@ import AutomatticTracks
186186

187187
let title = params.value(of: NewPostKey.title)
188188

189-
let context = ContextManager.sharedInstance().mainContext
189+
let context = ContextManager.shared.mainContext
190190
guard let blog = Blog.lastUsedOrFirst(in: context) else {
191191
return false
192192
}

WordPress/Classes/System/WordPressAppDelegate.swift

+3-3
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ class WordPressAppDelegate: UIResponder, UIApplicationDelegate {
9393
window.makeKeyAndVisible()
9494

9595
// Restore a disassociated account prior to fixing tokens.
96-
AccountService(coreDataStack: ContextManager.sharedInstance()).restoreDisassociatedAccountIfNecessary()
96+
AccountService(coreDataStack: ContextManager.shared).restoreDisassociatedAccountIfNecessary()
9797

9898
customizeAppearance()
9999
configureAnalytics()
@@ -290,7 +290,7 @@ class WordPressAppDelegate: UIResponder, UIApplicationDelegate {
290290
}
291291

292292
private func mergeDuplicateAccountsIfNeeded() {
293-
AccountService(coreDataStack: ContextManager.sharedInstance()).mergeDuplicatesIfNecessary()
293+
AccountService(coreDataStack: ContextManager.shared).mergeDuplicatesIfNecessary()
294294
}
295295

296296
private func setupPingHub() {
@@ -721,7 +721,7 @@ extension WordPressAppDelegate {
721721
extension WordPressAppDelegate {
722722

723723
func setupWordPressExtensions() {
724-
let accountService = AccountService(coreDataStack: ContextManager.sharedInstance())
724+
let accountService = AccountService(coreDataStack: ContextManager.shared)
725725
accountService.setupAppExtensionsWithDefaultAccount()
726726

727727
let maxImagesize = MediaSettings().maxImageSizeSetting

WordPress/Classes/Utility/AccountHelper.swift

+6-6
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import Foundation
66
/// Threadsafe Helper that indicates whether a Default Dotcom Account is available, or not
77
///
88
@objc static func isDotcomAvailable() -> Bool {
9-
let context = ContextManager.sharedInstance().mainContext
9+
let context = ContextManager.shared.mainContext
1010
var available = false
1111

1212
context.performAndWait {
@@ -23,12 +23,12 @@ import Foundation
2323
}
2424

2525
@objc static var noSelfHostedBlogs: Bool {
26-
let context = ContextManager.sharedInstance().mainContext
26+
let context = ContextManager.shared.mainContext
2727
return BlogQuery().hostedByWPCom(false).count(in: context) == 0 && (try? Blog.hasAnyJetpackBlogs(in: context)) == false
2828
}
2929

3030
static var hasBlogs: Bool {
31-
let context = ContextManager.sharedInstance().mainContext
31+
let context = ContextManager.shared.mainContext
3232
return Blog.count(in: context) > 0
3333
}
3434

@@ -37,13 +37,13 @@ import Foundation
3737
}
3838

3939
static var defaultSiteId: NSNumber? {
40-
let context = ContextManager.sharedInstance().mainContext
40+
let context = ContextManager.shared.mainContext
4141
let account = try? WPAccount.lookupDefaultWordPressComAccount(in: context)
4242
return account?.defaultBlog?.dotComID
4343
}
4444

4545
static var authToken: String? {
46-
let context = ContextManager.sharedInstance().mainContext
46+
let context = ContextManager.shared.mainContext
4747
let account = try? WPAccount.lookupDefaultWordPressComAccount(in: context)
4848
return account?.authToken
4949
}
@@ -74,7 +74,7 @@ import Foundation
7474

7575
static func logOutDefaultWordPressComAccount() {
7676
// Unschedule any scheduled blogging reminders
77-
let service = AccountService(coreDataStack: ContextManager.sharedInstance())
77+
let service = AccountService(coreDataStack: ContextManager.shared)
7878

7979
// Unschedule any scheduled blogging reminders for the account's blogs.
8080
// We don't just clear all reminders, in case the user has self-hosted

WordPress/Classes/Utility/Automated Transfer/AutomatedTransferHelper.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@ class AutomatedTransferHelper {
266266

267267
let service = BlogService(coreDataStack: ContextManager.shared)
268268

269-
guard let blog = try? BlogQuery().blogID(site.siteID).dotComAccountUsername(site.username).blog(in: ContextManager.sharedInstance().mainContext) else {
269+
guard let blog = try? BlogQuery().blogID(site.siteID).dotComAccountUsername(site.username).blog(in: ContextManager.shared.mainContext) else {
270270
DDLogInfo("[AT] Couldn't find a blog with provided JetpackSiteRef. This definitely shouldn't have happened. Bailing.")
271271

272272
SVProgressHUD.dismiss()

WordPress/Classes/Utility/Notifications/InteractiveNotificationsManager.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ final class InteractiveNotificationsManager: NSObject {
2020
/// Returns the Core Data main context.
2121
///
2222
@objc var context: NSManagedObjectContext {
23-
return ContextManager.sharedInstance().mainContext
23+
return ContextManager.shared.mainContext
2424
}
2525

2626
/// Returns a CommentService instance.

WordPress/Classes/Utility/Notifications/PushNotificationsManager.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ final public class PushNotificationsManager: NSObject {
116116
deviceToken = newToken
117117

118118
// Register against WordPress.com
119-
let noteService = NotificationSettingsService(coreDataStack: ContextManager.sharedInstance())
119+
let noteService = NotificationSettingsService(coreDataStack: ContextManager.shared)
120120

121121
noteService.registerDeviceForPushNotifications(newToken, success: { deviceId in
122122
DDLogVerbose("Successfully registered Device ID \(deviceId) for Push Notifications")
@@ -157,7 +157,7 @@ final public class PushNotificationsManager: NSObject {
157157
/// the session getting invalidated on logout.
158158
/// - issue: https://github.com/wordpress-mobile/WordPress-iOS/issues/24040
159159
let noteService = NotificationSettingsService(
160-
coreDataStack: ContextManager.sharedInstance(),
160+
coreDataStack: ContextManager.shared,
161161
wordPressComRestApi: WordPressComRestApi.defaultV2Api(in: ContextManager.shared.mainContext)
162162
)
163163

WordPress/Classes/Utility/Spotlight/SearchManager.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ fileprivate extension SearchManager {
296296
func fetchBlog(_ blogID: NSNumber,
297297
onSuccess: @escaping (_ blog: Blog) -> Void,
298298
onFailure: @escaping () -> Void) {
299-
let context = ContextManager.sharedInstance().mainContext
299+
let context = ContextManager.shared.mainContext
300300

301301
guard let blog = Blog.lookup(withID: blogID, in: context) else {
302302
onFailure()
@@ -308,7 +308,7 @@ fileprivate extension SearchManager {
308308
func fetchSelfHostedBlog(_ blogXMLRpcString: String,
309309
onSuccess: @escaping (_ blog: Blog) -> Void,
310310
onFailure: @escaping () -> Void) {
311-
let context = ContextManager.sharedInstance().mainContext
311+
let context = ContextManager.shared.mainContext
312312
guard let blog = Blog.selfHosted(in: context).first(where: { $0.xmlrpc == blogXMLRpcString }) else {
313313
onFailure()
314314
return

WordPress/Classes/Utility/Universal Links/NavigationActionHelpers.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import WordPressFlux
33

44
extension NavigationAction {
55
func defaultBlog() -> Blog? {
6-
let context = ContextManager.sharedInstance().mainContext
6+
let context = ContextManager.shared.mainContext
77
return Blog.lastUsedOrFirst(in: context)
88
}
99

@@ -12,7 +12,7 @@ extension NavigationAction {
1212
return nil
1313
}
1414

15-
let context = ContextManager.sharedInstance().mainContext
15+
let context = ContextManager.shared.mainContext
1616

1717
if let blog = Blog.lookup(hostname: domain, in: context) {
1818
return blog

WordPress/Classes/Utility/ZendeskUtils.swift

+4-4
Original file line numberDiff line numberDiff line change
@@ -528,7 +528,7 @@ private extension ZendeskUtils {
528528
2. If not, use selected site.
529529
*/
530530

531-
let context = ContextManager.sharedInstance().mainContext
531+
let context = ContextManager.shared.mainContext
532532

533533
// 1. Check for WP account
534534
if let defaultAccount = try? WPAccount.lookupDefaultWordPressComAccount(in: context) {
@@ -753,7 +753,7 @@ private extension ZendeskUtils {
753753
}
754754

755755
static func getCurrentSiteDescription() -> String {
756-
guard let blog = Blog.lastUsed(in: ContextManager.sharedInstance().mainContext) else {
756+
guard let blog = Blog.lastUsed(in: ContextManager.shared.mainContext) else {
757757
return Constants.noValue
758758
}
759759

@@ -762,7 +762,7 @@ private extension ZendeskUtils {
762762
}
763763

764764
static func getBlogInformation() -> String {
765-
let allBlogs = (try? BlogQuery().blogs(in: ContextManager.sharedInstance().mainContext)) ?? []
765+
let allBlogs = (try? BlogQuery().blogs(in: ContextManager.shared.mainContext)) ?? []
766766
guard allBlogs.count > 0 else {
767767
return Constants.noValue
768768
}
@@ -779,7 +779,7 @@ private extension ZendeskUtils {
779779

780780
static func getTags() -> [String] {
781781

782-
let context = ContextManager.sharedInstance().mainContext
782+
let context = ContextManager.shared.mainContext
783783
let allBlogs = (try? BlogQuery().blogs(in: context)) ?? []
784784
var tags = [String]()
785785

WordPress/Classes/ViewRelated/Activity/ActivityDateFormatting.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ struct ActivityDateFormatting {
2222
return formatter
2323
}
2424

25-
static func timeZone(for site: JetpackSiteRef, managedObjectContext: NSManagedObjectContext = ContextManager.sharedInstance().mainContext) -> TimeZone {
25+
static func timeZone(for site: JetpackSiteRef, managedObjectContext: NSManagedObjectContext = ContextManager.shared.mainContext) -> TimeZone {
2626

2727
guard let blog = try? Blog.lookup(withID: site.siteID, in: managedObjectContext) else {
2828
DDLogInfo("[ActivityDateFormatting] Couldn't find a blog with specified siteID. Falling back to UTC.")

WordPress/Classes/ViewRelated/Activity/ActivityDetailViewController.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ class ActivityDetailViewController: UIViewController, StoryboardLoadable {
265265
router = nil
266266
return
267267
}
268-
let coordinator = DefaultContentCoordinator(controller: self, context: ContextManager.sharedInstance().mainContext)
268+
let coordinator = DefaultContentCoordinator(controller: self, context: ContextManager.shared.mainContext)
269269
router = ActivityContentRouter(
270270
activity: activity,
271271
coordinator: coordinator)

WordPress/Classes/ViewRelated/Aztec/Helpers/AztecVerificationPromptHelper.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class AztecVerificationPromptHelper: NSObject, VerificationPromptHelper {
3636

3737
self.wpComAccount = passedAccount
3838
self.managedObjectContext = managedObjectContext
39-
self.accountService = AccountService(coreDataStack: ContextManager.sharedInstance())
39+
self.accountService = AccountService(coreDataStack: ContextManager.shared)
4040

4141
super.init()
4242

WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -798,7 +798,7 @@ final class MySiteViewController: UIViewController, UIScrollViewDelegate, NoSite
798798
return
799799
}
800800

801-
guard let blog = Blog.lastUsedOrFirst(in: ContextManager.sharedInstance().mainContext) else {
801+
guard let blog = Blog.lastUsedOrFirst(in: ContextManager.shared.mainContext) else {
802802
return
803803
}
804804

WordPress/Classes/ViewRelated/Blog/Sharing/SharingButtonsViewController.swift

+3-3
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ import WordPressShared
4444
/// Core Data Context
4545
///
4646
var viewContext: NSManagedObjectContext {
47-
ContextManager.sharedInstance().mainContext
47+
ContextManager.shared.mainContext
4848
}
4949

5050
struct SharingCellIdentifiers {
@@ -628,8 +628,8 @@ import WordPressShared
628628
/// - Parameter refreshAfterSync: If true buttons are reloaded when the sync completes.
629629
///
630630
private func saveButtonChanges(_ refreshAfterSync: Bool) {
631-
let context = ContextManager.sharedInstance().mainContext
632-
ContextManager.sharedInstance().save(context, completion: { [weak self] in
631+
let context = ContextManager.shared.mainContext
632+
ContextManager.shared.save(context, completion: { [weak self] in
633633
self?.reloadButtons()
634634
self?.syncButtonChangesToBlog(refreshAfterSync)
635635
}, on: .main)

WordPress/Classes/ViewRelated/Blog/Site Management/DeleteSiteViewController.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ open class DeleteSiteViewController: UITableViewController {
214214

215215
let trackedBlog = blog
216216
WPAppAnalytics.track(.siteSettingsDeleteSiteRequested, with: trackedBlog)
217-
let service = SiteManagementService(coreDataStack: ContextManager.sharedInstance())
217+
let service = SiteManagementService(coreDataStack: ContextManager.shared)
218218
service.deleteSiteForBlog(blog, success: { [weak self] in
219219
WPAppAnalytics.track(.siteSettingsDeleteSiteResponseOK, with: trackedBlog)
220220
let status = NSLocalizedString("Site deleted", comment: "Overlay message displayed when site successfully deleted")
@@ -225,7 +225,7 @@ open class DeleteSiteViewController: UITableViewController {
225225
let context = ContextManager.shared.mainContext
226226
let account = try? WPAccount.lookupDefaultWordPressComAccount(in: context)
227227
if let account {
228-
AccountService(coreDataStack: ContextManager.sharedInstance()).updateUserDetails(for: account,
228+
AccountService(coreDataStack: ContextManager.shared).updateUserDetails(for: account,
229229
success: {},
230230
failure: { _ in })
231231
}

0 commit comments

Comments
 (0)