diff --git a/Mac/AppDefaults.swift b/Mac/AppDefaults.swift index d88ebbfae..274caf8e1 100644 --- a/Mac/AppDefaults.swift +++ b/Mac/AppDefaults.swift @@ -49,13 +49,11 @@ final class AppDefaults { static let showTitleOnMainWindow = "KafasisTitleMode" static let feedDoubleClickMarkAsRead = "GruberFeedDoubleClickMarkAsRead" static let suppressSyncOnLaunch = "DevroeSuppressSyncOnLaunch" - - #if !MAC_APP_STORE - static let webInspectorEnabled = "WebInspectorEnabled" - static let webInspectorStartsAttached = "__WebInspectorPageGroupLevel1__.WebKit2InspectorStartsAttached" - #endif + + static let webInspectorEnabled = "WebInspectorEnabled" + static let webInspectorStartsAttached = "__WebInspectorPageGroupLevel1__.WebKit2InspectorStartsAttached" } - + private static let smallestFontSizeRawValue = FontSize.small.rawValue private static let largestFontSizeRawValue = FontSize.veryLarge.rawValue @@ -237,27 +235,25 @@ final class AppDefaults { AppDefaults.setBool(for: Key.suppressSyncOnLaunch, newValue) } } - - #if !MAC_APP_STORE - var webInspectorEnabled: Bool { - get { - return AppDefaults.bool(for: Key.webInspectorEnabled) - } - set { - AppDefaults.setBool(for: Key.webInspectorEnabled, newValue) - } + + var webInspectorEnabled: Bool { + get { + return AppDefaults.bool(for: Key.webInspectorEnabled) } - - var webInspectorStartsAttached: Bool { - get { - return AppDefaults.bool(for: Key.webInspectorStartsAttached) - } - set { - AppDefaults.setBool(for: Key.webInspectorStartsAttached, newValue) - } + set { + AppDefaults.setBool(for: Key.webInspectorEnabled, newValue) } - #endif - + } + + var webInspectorStartsAttached: Bool { + get { + return AppDefaults.bool(for: Key.webInspectorStartsAttached) + } + set { + AppDefaults.setBool(for: Key.webInspectorStartsAttached, newValue) + } + } + var timelineSortDirection: ComparisonResult { get { return AppDefaults.sortDirection(for: Key.timelineSortDirection) diff --git a/Mac/AppDelegate.swift b/Mac/AppDelegate.swift index 150affc05..b25613f65 100644 --- a/Mac/AppDelegate.swift +++ b/Mac/AppDelegate.swift @@ -17,15 +17,7 @@ import RSCoreResources import Secrets import OSLog import CrashReporter - -// If we're not going to import Sparkle, provide dummy protocols to make it easy -// for AppDelegate to comply -#if MAC_APP_STORE || TEST -protocol SPUStandardUserDriverDelegate {} -protocol SPUUpdaterDelegate {} -#else import Sparkle -#endif var appDelegate: AppDelegate! @@ -100,22 +92,18 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserInterfaceValidations, private var inspectorWindowController: InspectorWindowController? private var crashReportWindowController: CrashReportWindowController? // For testing only private let appMovementMonitor = RSAppMovementMonitor() - #if !MAC_APP_STORE && !TEST private var softwareUpdater: SPUUpdater! private var crashReporter: PLCrashReporter! - #endif - + private var themeImportPath: String? override init() { NSWindow.allowsAutomaticWindowTabbing = false super.init() - #if !MAC_APP_STORE let crashReporterConfig = PLCrashReporterConfig.defaultConfiguration() crashReporter = PLCrashReporter(configuration: crashReporterConfig) crashReporter.enable() - #endif AccountManager.shared = AccountManager(accountsFolder: Platform.dataSubfolder(forApplication: nil, folderName: "Accounts")!) ArticleThemesManager.shared = ArticleThemesManager(folderPath: Platform.dataSubfolder(forApplication: nil, folderName: "Themes")!) @@ -171,22 +159,18 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserInterfaceValidations, func applicationDidFinishLaunching(_ note: Notification) { - #if MAC_APP_STORE || TEST - checkForUpdatesMenuItem.isHidden = true - #else - // Initialize Sparkle... - let hostBundle = Bundle.main - let updateDriver = SPUStandardUserDriver(hostBundle: hostBundle, delegate: self) - self.softwareUpdater = SPUUpdater(hostBundle: hostBundle, applicationBundle: hostBundle, userDriver: updateDriver, delegate: self) + // Initialize Sparkle... + let hostBundle = Bundle.main + let updateDriver = SPUStandardUserDriver(hostBundle: hostBundle, delegate: self) + self.softwareUpdater = SPUUpdater(hostBundle: hostBundle, applicationBundle: hostBundle, userDriver: updateDriver, delegate: self) + + do { + try self.softwareUpdater.start() + } + catch { + NSLog("Failed to start software updater with error: \(error)") + } - do { - try self.softwareUpdater.start() - } - catch { - NSLog("Failed to start software updater with error: \(error)") - } - #endif - AppDefaults.shared.registerDefaults() let isFirstRun = AppDefaults.shared.isFirstRun if isFirstRun { @@ -258,25 +242,13 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserInterfaceValidations, } #endif - if AppDefaults.shared.showDebugMenu { - // The Web Inspector uses SPI and can never appear in a MAC_APP_STORE build. - #if MAC_APP_STORE - let debugMenu = debugMenuItem.submenu! - let toggleWebInspectorItemIndex = debugMenu.indexOfItem(withTarget: self, andAction: #selector(toggleWebInspectorEnabled(_:))) - if toggleWebInspectorItemIndex != -1 { - debugMenu.removeItem(at: toggleWebInspectorItemIndex) - } - #endif - } else { + if !AppDefaults.shared.showDebugMenu { debugMenuItem.menu?.removeItem(debugMenuItem) } - #if !MAC_APP_STORE DispatchQueue.main.async { CrashReporter.check(crashReporter: self.crashReporter) } - #endif - } func application(_ application: NSApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([NSUserActivityRestoring]) -> Void) -> Bool { @@ -456,12 +428,10 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserInterfaceValidations, return !isDisplayingSheet && !AccountManager.shared.activeAccounts.isEmpty } - #if !MAC_APP_STORE if item.action == #selector(toggleWebInspectorEnabled(_:)) { (item as! NSMenuItem).state = AppDefaults.shared.webInspectorEnabled ? .on : .off } - #endif - + return true } @@ -682,11 +652,8 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserInterfaceValidations, } @IBAction func checkForUpdates(_ sender: Any?) { - #if !MAC_APP_STORE && !TEST - self.softwareUpdater.checkForUpdates() - #endif + self.softwareUpdater.checkForUpdates() } - } // MARK: - Debug Menu @@ -728,18 +695,16 @@ extension AppDelegate { } @IBAction func toggleWebInspectorEnabled(_ sender: Any?) { - #if !MAC_APP_STORE + let newValue = !AppDefaults.shared.webInspectorEnabled AppDefaults.shared.webInspectorEnabled = newValue - // An attached inspector can display incorrectly on certain setups (like mine); default to displaying in a separate window, - // and reset the default to a separate window when the preference is toggled off and on again in case the inspector is - // accidentally reattached. + // An attached inspector can display incorrectly on certain setups (like mine); default to displaying in a separate window, + // and reset the default to a separate window when the preference is toggled off and on again in case the inspector is + // accidentally reattached. AppDefaults.shared.webInspectorStartsAttached = false - NotificationCenter.default.post(name: .WebInspectorEnabledDidChange, object: newValue) - #endif + NotificationCenter.default.post(name: .WebInspectorEnabledDidChange, object: newValue) } - } internal extension AppDelegate { diff --git a/Mac/MainWindow/Detail/DetailWebViewController.swift b/Mac/MainWindow/Detail/DetailWebViewController.swift index 67f7877b8..37a3cfb25 100644 --- a/Mac/MainWindow/Detail/DetailWebViewController.swift +++ b/Mac/MainWindow/Detail/DetailWebViewController.swift @@ -47,17 +47,15 @@ final class DetailWebViewController: NSViewController { } private var articleTextSize = AppDefaults.shared.articleTextSize - - #if !MAC_APP_STORE - private var webInspectorEnabled: Bool { - get { - return webView.configuration.preferences._developerExtrasEnabled - } - set { - webView.configuration.preferences._developerExtrasEnabled = newValue - } + + private var webInspectorEnabled: Bool { + get { + return webView.configuration.preferences._developerExtrasEnabled } - #endif + set { + webView.configuration.preferences._developerExtrasEnabled = newValue + } + } private let detailIconSchemeHandler = DetailIconSchemeHandler() private var waitingForFirstReload = false @@ -98,11 +96,9 @@ final class DetailWebViewController: NSViewController { // See bug #901. webView.isHidden = true waitingForFirstReload = true - - #if !MAC_APP_STORE - webInspectorEnabled = AppDefaults.shared.webInspectorEnabled - NotificationCenter.default.addObserver(self, selector: #selector(webInspectorEnabledDidChange(_:)), name: .WebInspectorEnabledDidChange, object: nil) - #endif + + webInspectorEnabled = AppDefaults.shared.webInspectorEnabled + NotificationCenter.default.addObserver(self, selector: #selector(webInspectorEnabledDidChange(_:)), name: .WebInspectorEnabledDidChange, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(feedIconDidBecomeAvailable(_:)), name: .feedIconDidBecomeAvailable, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(avatarDidBecomeAvailable(_:)), name: .AvatarDidBecomeAvailable, object: nil) @@ -322,11 +318,9 @@ private extension DetailWebViewController { } } - #if !MAC_APP_STORE - @objc func webInspectorEnabledDidChange(_ notification: Notification) { - self.webInspectorEnabled = notification.object! as! Bool - } - #endif + @objc func webInspectorEnabledDidChange(_ notification: Notification) { + self.webInspectorEnabled = notification.object! as! Bool + } } // MARK: - ScrollInfo diff --git a/Mac/Preferences/PreferencesWindowController.swift b/Mac/Preferences/PreferencesWindowController.swift index be7ef37c8..8525241f4 100644 --- a/Mac/Preferences/PreferencesWindowController.swift +++ b/Mac/Preferences/PreferencesWindowController.swift @@ -39,16 +39,9 @@ class PreferencesWindowController : NSWindowController, NSToolbarDelegate { specs += [PreferencesToolbarItemSpec(identifierRawValue: ToolbarItemIdentifier.Accounts, name: NSLocalizedString("Accounts", comment: "Preferences"), image: AppAssets.preferencesToolbarAccountsImage)] - - // Omit the Advanced Preferences for now because the Software Update related functionality is - // forbidden/non-applicable, and we can rely upon Apple to some extent for crash reports. We - // can add back the Crash Reporter preferences when we're ready to dynamically shuffle the rest - // of the content in this tab. - #if !MAC_APP_STORE - specs += [PreferencesToolbarItemSpec(identifierRawValue: ToolbarItemIdentifier.Advanced, - name: NSLocalizedString("Advanced", comment: "Preferences"), - image: AppAssets.preferencesToolbarAdvancedImage)] - #endif + specs += [PreferencesToolbarItemSpec(identifierRawValue: ToolbarItemIdentifier.Advanced, + name: NSLocalizedString("Advanced", comment: "Preferences"), + image: AppAssets.preferencesToolbarAdvancedImage)] return specs }() diff --git a/Shared/AppNotifications.swift b/Shared/AppNotifications.swift index 84cfd9a72..82fa76922 100644 --- a/Shared/AppNotifications.swift +++ b/Shared/AppNotifications.swift @@ -12,8 +12,5 @@ import Articles extension Notification.Name { static let InspectableObjectsDidChange = Notification.Name("TimelineSelectionDidChangeNotification") static let UserDidAddFeed = Notification.Name("UserDidAddFeedNotification") - - #if !MAC_APP_STORE - static let WebInspectorEnabledDidChange = Notification.Name("WebInspectorEnabledDidChange") - #endif + static let WebInspectorEnabledDidChange = Notification.Name("WebInspectorEnabledDidChange") }