From 4008ad5dd009ad622883db7bec8801cdc5c27999 Mon Sep 17 00:00:00 2001 From: Brent Simmons Date: Sat, 1 Feb 2025 20:16:33 -0800 Subject: [PATCH] Create ExtensionFeedAddRequestFile.shared and WidgetDataEncoder.shared. --- Mac/AppDelegate.swift | 4 +--- .../ExtensionFeedAddRequestFile.swift | 2 ++ Shared/Widget/WidgetDataEncoder.swift | 2 ++ iOS/AppDelegate.swift | 19 +++++++------------ 4 files changed, 12 insertions(+), 15 deletions(-) diff --git a/Mac/AppDelegate.swift b/Mac/AppDelegate.swift index c6c5e1edf..f1a7ae5b6 100644 --- a/Mac/AppDelegate.swift +++ b/Mac/AppDelegate.swift @@ -26,8 +26,6 @@ final class AppDelegate: NSObject, NSApplicationDelegate, NSUserInterfaceValidat static let mainWindow = "mainWindow" } - var extensionFeedAddRequestFile: ExtensionFeedAddRequestFile! - var refreshTimer: AccountRefreshTimer? var syncTimer: ArticleStatusSyncTimer? var lastRefreshInterval = AppDefaults.refreshInterval @@ -195,7 +193,7 @@ final class AppDelegate: NSObject, NSApplicationDelegate, NSUserInterfaceValidat } _ = ExtensionContainersFile.shared - extensionFeedAddRequestFile = ExtensionFeedAddRequestFile() + _ = ExtensionFeedAddRequestFile.shared refreshTimer = AccountRefreshTimer() _ = ArticleStatusSyncTimer.shared diff --git a/Shared/ShareExtension/ExtensionFeedAddRequestFile.swift b/Shared/ShareExtension/ExtensionFeedAddRequestFile.swift index b9529a7c0..202e87b0e 100644 --- a/Shared/ShareExtension/ExtensionFeedAddRequestFile.swift +++ b/Shared/ShareExtension/ExtensionFeedAddRequestFile.swift @@ -12,6 +12,8 @@ import Account final class ExtensionFeedAddRequestFile: NSObject, NSFilePresenter { + static let shared = ExtensionFeedAddRequestFile() + private static var log = OSLog(subsystem: Bundle.main.bundleIdentifier!, category: "extensionFeedAddRequestFile") private static var filePath: String = { diff --git a/Shared/Widget/WidgetDataEncoder.swift b/Shared/Widget/WidgetDataEncoder.swift index 83dbf0da9..832b2e8df 100644 --- a/Shared/Widget/WidgetDataEncoder.swift +++ b/Shared/Widget/WidgetDataEncoder.swift @@ -16,6 +16,8 @@ import Account public final class WidgetDataEncoder { + static let shared = WidgetDataEncoder() + private let log = OSLog(subsystem: Bundle.main.bundleIdentifier!, category: "Application") private let fetchLimit = 7 diff --git a/iOS/AppDelegate.swift b/iOS/AppDelegate.swift index 71d7e5a8a..bd8566a17 100644 --- a/iOS/AppDelegate.swift +++ b/iOS/AppDelegate.swift @@ -25,9 +25,6 @@ final class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationC private let logger = Logger(subsystem: Bundle.main.bundleIdentifier!, category: "Application") - var extensionFeedAddRequestFile: ExtensionFeedAddRequestFile! - var widgetDataEncoder: WidgetDataEncoder! - private var unreadCount = 0 { didSet { if unreadCount != oldValue { @@ -85,13 +82,11 @@ final class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationC } UNUserNotificationCenter.current().delegate = self + _ = UserNotificationManager.shared - _ = ExtensionContainersFile.shared - extensionFeedAddRequestFile = ExtensionFeedAddRequestFile() - - widgetDataEncoder = WidgetDataEncoder() - + _ = ExtensionFeedAddRequestFile.shared + _ = WidgetDataEncoder.shared _ = ArticleStatusSyncTimer.shared #if DEBUG @@ -184,16 +179,16 @@ final class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationC } func prepareAccountsForBackground() { - extensionFeedAddRequestFile.suspend() + ExtensionFeedAddRequestFile.shared.suspend() ArticleStatusSyncTimer.shared.invalidate() scheduleBackgroundFeedRefresh() syncArticleStatus() - widgetDataEncoder.encode() + WidgetDataEncoder.shared.encode() waitForSyncTasksToFinish() } func prepareAccountsForForeground() { - extensionFeedAddRequestFile.resume() + ExtensionFeedAddRequestFile.shared.resume() ArticleStatusSyncTimer.shared.update() if let lastRefresh = AppDefaults.lastRefresh { @@ -307,7 +302,7 @@ private extension AppDelegate { return } - if AccountManager.shared.refreshInProgress || isSyncArticleStatusRunning || widgetDataEncoder.isRunning { + if AccountManager.shared.refreshInProgress || isSyncArticleStatusRunning || WidgetDataEncoder.shared.isRunning { logger.info("Waiting for sync to finish…") DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) { [weak self] in self?.waitToComplete(completion: completion)