From 48aef8570733f11220fb8ab38e384d86a3d0cda3 Mon Sep 17 00:00:00 2001 From: Brent Simmons Date: Sat, 1 Apr 2023 21:12:57 -0700 Subject: [PATCH] Start adopting structured concurrency by starting to use @MainActor. --- Mac/CrashReporter/CrashReportWindowController.swift | 2 +- Mac/CrashReporter/CrashReporter.swift | 2 +- Mac/Preferences/Accounts/AccountCell.swift | 2 +- .../Accounts/AccountsAddCloudKitWindowController.swift | 2 +- Mac/Preferences/Accounts/AccountsAddLocalWindowController.swift | 2 +- Mac/Preferences/Accounts/AccountsDetailViewController.swift | 2 +- Mac/Preferences/Accounts/AccountsFeedbinWindowController.swift | 2 +- Mac/Preferences/Accounts/AccountsNewsBlurWindowController.swift | 2 +- .../Accounts/AccountsPreferencesViewController.swift | 2 +- .../Accounts/AccountsReaderAPIWindowController.swift | 2 +- .../Advanced/AdvancedPreferencesViewController.swift | 2 +- .../ExtensionPoints/ExtensionPointDetailViewController.swift | 2 +- .../ExtensionPoints/ExtensionPointEnableWindowController.swift | 2 +- .../ExtensionPointPreferencesViewController.swift | 2 +- Mac/Preferences/General/GeneralPrefencesViewController.swift | 2 +- Mac/Preferences/PreferencesControlsBackgroundView.swift | 2 +- Mac/Preferences/PreferencesTableViewBackgroundView.swift | 2 +- Mac/Preferences/PreferencesWindowController.swift | 2 +- Shared/Importers/DefaultFeedsImporter.swift | 2 +- 19 files changed, 19 insertions(+), 19 deletions(-) diff --git a/Mac/CrashReporter/CrashReportWindowController.swift b/Mac/CrashReporter/CrashReportWindowController.swift index 7c7ce9ee7..5579e0ef3 100644 --- a/Mac/CrashReporter/CrashReportWindowController.swift +++ b/Mac/CrashReporter/CrashReportWindowController.swift @@ -8,7 +8,7 @@ import AppKit -final class CrashReportWindowController: NSWindowController { +@MainActor final class CrashReportWindowController: NSWindowController { @IBOutlet var textView: NSTextView! { didSet { diff --git a/Mac/CrashReporter/CrashReporter.swift b/Mac/CrashReporter/CrashReporter.swift index b37810a9d..09d1db06b 100644 --- a/Mac/CrashReporter/CrashReporter.swift +++ b/Mac/CrashReporter/CrashReporter.swift @@ -16,7 +16,7 @@ import CrashReporter // At some point this code should probably move into RSCore, so Rainier and any other // future apps can use it. -struct CrashReporter { +@MainActor struct CrashReporter { struct DefaultsKey { static let sendCrashLogsAutomaticallyKey = "SendCrashLogsAutomatically" diff --git a/Mac/Preferences/Accounts/AccountCell.swift b/Mac/Preferences/Accounts/AccountCell.swift index 7a1dbecef..b6fb2eef3 100644 --- a/Mac/Preferences/Accounts/AccountCell.swift +++ b/Mac/Preferences/Accounts/AccountCell.swift @@ -8,7 +8,7 @@ import AppKit -class AccountCell: NSTableCellView { +@MainActor class AccountCell: NSTableCellView { private var originalImage: NSImage? diff --git a/Mac/Preferences/Accounts/AccountsAddCloudKitWindowController.swift b/Mac/Preferences/Accounts/AccountsAddCloudKitWindowController.swift index 6c01d9ef9..945453122 100644 --- a/Mac/Preferences/Accounts/AccountsAddCloudKitWindowController.swift +++ b/Mac/Preferences/Accounts/AccountsAddCloudKitWindowController.swift @@ -17,7 +17,7 @@ enum AccountsAddCloudKitWindowControllerError: LocalizedError { } } -class AccountsAddCloudKitWindowController: NSWindowController { +@MainActor class AccountsAddCloudKitWindowController: NSWindowController { @IBOutlet weak var limitationsAndSolutionsTextField: NSTextField! diff --git a/Mac/Preferences/Accounts/AccountsAddLocalWindowController.swift b/Mac/Preferences/Accounts/AccountsAddLocalWindowController.swift index 8aedbccd7..373ffea30 100644 --- a/Mac/Preferences/Accounts/AccountsAddLocalWindowController.swift +++ b/Mac/Preferences/Accounts/AccountsAddLocalWindowController.swift @@ -9,7 +9,7 @@ import AppKit import Account -class AccountsAddLocalWindowController: NSWindowController { +@MainActor class AccountsAddLocalWindowController: NSWindowController { @IBOutlet private weak var nameTextField: NSTextField! @IBOutlet private weak var localAccountNameTextField: NSTextField! diff --git a/Mac/Preferences/Accounts/AccountsDetailViewController.swift b/Mac/Preferences/Accounts/AccountsDetailViewController.swift index 3fe5487ee..6b395249e 100644 --- a/Mac/Preferences/Accounts/AccountsDetailViewController.swift +++ b/Mac/Preferences/Accounts/AccountsDetailViewController.swift @@ -9,7 +9,7 @@ import AppKit import Account -final class AccountsDetailViewController: NSViewController, NSTextFieldDelegate { +@MainActor final class AccountsDetailViewController: NSViewController, NSTextFieldDelegate { @IBOutlet weak var typeLabel: NSTextField! @IBOutlet weak var nameTextField: NSTextField! diff --git a/Mac/Preferences/Accounts/AccountsFeedbinWindowController.swift b/Mac/Preferences/Accounts/AccountsFeedbinWindowController.swift index 6ac802851..687e0c864 100644 --- a/Mac/Preferences/Accounts/AccountsFeedbinWindowController.swift +++ b/Mac/Preferences/Accounts/AccountsFeedbinWindowController.swift @@ -12,7 +12,7 @@ import RSCore import RSWeb import Secrets -class AccountsFeedbinWindowController: NSWindowController, Logging { +@MainActor class AccountsFeedbinWindowController: NSWindowController, Logging { @IBOutlet weak var signInTextField: NSTextField! @IBOutlet weak var noAccountTextField: NSTextField! diff --git a/Mac/Preferences/Accounts/AccountsNewsBlurWindowController.swift b/Mac/Preferences/Accounts/AccountsNewsBlurWindowController.swift index 0af42818e..9cb726e17 100644 --- a/Mac/Preferences/Accounts/AccountsNewsBlurWindowController.swift +++ b/Mac/Preferences/Accounts/AccountsNewsBlurWindowController.swift @@ -12,7 +12,7 @@ import RSWeb import RSCore import Secrets -class AccountsNewsBlurWindowController: NSWindowController, Logging { +@MainActor class AccountsNewsBlurWindowController: NSWindowController, Logging { @IBOutlet weak var signInTextField: NSTextField! @IBOutlet weak var noAccountTextField: NSTextField! diff --git a/Mac/Preferences/Accounts/AccountsPreferencesViewController.swift b/Mac/Preferences/Accounts/AccountsPreferencesViewController.swift index 307f5b8b5..66a0173cb 100644 --- a/Mac/Preferences/Accounts/AccountsPreferencesViewController.swift +++ b/Mac/Preferences/Accounts/AccountsPreferencesViewController.swift @@ -17,7 +17,7 @@ protocol AccountsPreferencesAddAccountDelegate { } // MARK: - AccountsPreferencesViewController -final class AccountsPreferencesViewController: NSViewController { +@MainActor final class AccountsPreferencesViewController: NSViewController { @IBOutlet weak var tableView: NSTableView! @IBOutlet weak var detailView: NSView! diff --git a/Mac/Preferences/Accounts/AccountsReaderAPIWindowController.swift b/Mac/Preferences/Accounts/AccountsReaderAPIWindowController.swift index b127003db..e282f327e 100644 --- a/Mac/Preferences/Accounts/AccountsReaderAPIWindowController.swift +++ b/Mac/Preferences/Accounts/AccountsReaderAPIWindowController.swift @@ -12,7 +12,7 @@ import RSWeb import RSCore import Secrets -class AccountsReaderAPIWindowController: NSWindowController, Logging { +@MainActor class AccountsReaderAPIWindowController: NSWindowController, Logging { @IBOutlet weak var titleImageView: NSImageView! @IBOutlet weak var titleLabel: NSTextField! diff --git a/Mac/Preferences/Advanced/AdvancedPreferencesViewController.swift b/Mac/Preferences/Advanced/AdvancedPreferencesViewController.swift index a48e9fe91..da3392bbc 100644 --- a/Mac/Preferences/Advanced/AdvancedPreferencesViewController.swift +++ b/Mac/Preferences/Advanced/AdvancedPreferencesViewController.swift @@ -8,7 +8,7 @@ import AppKit -final class AdvancedPreferencesViewController: NSViewController { +@MainActor final class AdvancedPreferencesViewController: NSViewController { @IBOutlet var releaseBuildsButton: NSButton! @IBOutlet var testBuildsButton: NSButton! diff --git a/Mac/Preferences/ExtensionPoints/ExtensionPointDetailViewController.swift b/Mac/Preferences/ExtensionPoints/ExtensionPointDetailViewController.swift index f94d0ae59..0a97d68ae 100644 --- a/Mac/Preferences/ExtensionPoints/ExtensionPointDetailViewController.swift +++ b/Mac/Preferences/ExtensionPoints/ExtensionPointDetailViewController.swift @@ -8,7 +8,7 @@ import Cocoa -class ExtensionPointDetailViewController: NSViewController { +@MainActor class ExtensionPointDetailViewController: NSViewController { @IBOutlet weak var imageView: NSImageView! @IBOutlet weak var titleLabel: NSTextField! diff --git a/Mac/Preferences/ExtensionPoints/ExtensionPointEnableWindowController.swift b/Mac/Preferences/ExtensionPoints/ExtensionPointEnableWindowController.swift index f8aed7ff5..1af42d40e 100644 --- a/Mac/Preferences/ExtensionPoints/ExtensionPointEnableWindowController.swift +++ b/Mac/Preferences/ExtensionPoints/ExtensionPointEnableWindowController.swift @@ -11,7 +11,7 @@ import AuthenticationServices import OAuthSwift import Secrets -class ExtensionPointEnableWindowController: NSWindowController { +@MainActor class ExtensionPointEnableWindowController: NSWindowController { @IBOutlet weak var imageView: NSImageView! @IBOutlet weak var titleLabel: NSTextField! diff --git a/Mac/Preferences/ExtensionPoints/ExtensionPointPreferencesViewController.swift b/Mac/Preferences/ExtensionPoints/ExtensionPointPreferencesViewController.swift index d79525d30..16a797a80 100644 --- a/Mac/Preferences/ExtensionPoints/ExtensionPointPreferencesViewController.swift +++ b/Mac/Preferences/ExtensionPoints/ExtensionPointPreferencesViewController.swift @@ -16,7 +16,7 @@ protocol ExtensionPointPreferencesEnabler: AnyObject { func enable(_ extensionPointType: ExtensionPoint.Type) } -final class ExtensionPointPreferencesViewController: NSViewController { +@MainActor final class ExtensionPointPreferencesViewController: NSViewController { @IBOutlet weak var tableView: NSTableView! @IBOutlet weak var detailView: NSView! diff --git a/Mac/Preferences/General/GeneralPrefencesViewController.swift b/Mac/Preferences/General/GeneralPrefencesViewController.swift index 19fa9b7a0..0b55a756d 100644 --- a/Mac/Preferences/General/GeneralPrefencesViewController.swift +++ b/Mac/Preferences/General/GeneralPrefencesViewController.swift @@ -11,7 +11,7 @@ import RSCore import RSWeb import UserNotifications -final class GeneralPreferencesViewController: NSViewController { +@MainActor final class GeneralPreferencesViewController: NSViewController { private var userNotificationSettings: UNNotificationSettings? diff --git a/Mac/Preferences/PreferencesControlsBackgroundView.swift b/Mac/Preferences/PreferencesControlsBackgroundView.swift index 36353dd6b..307109c50 100644 --- a/Mac/Preferences/PreferencesControlsBackgroundView.swift +++ b/Mac/Preferences/PreferencesControlsBackgroundView.swift @@ -9,7 +9,7 @@ import AppKit import RSCore -final class PreferencesControlsBackgroundView: NSView { +@MainActor final class PreferencesControlsBackgroundView: NSView { private let lightModeFillColor = NSColor(white: 0.97, alpha: 1.0) private let darkModeFillColor = NSColor(red: 0.32, green: 0.34, blue: 0.35, alpha: 1.0) diff --git a/Mac/Preferences/PreferencesTableViewBackgroundView.swift b/Mac/Preferences/PreferencesTableViewBackgroundView.swift index 34548e429..df9fce2db 100644 --- a/Mac/Preferences/PreferencesTableViewBackgroundView.swift +++ b/Mac/Preferences/PreferencesTableViewBackgroundView.swift @@ -8,7 +8,7 @@ import AppKit -final class PreferencesTableViewBackgroundView: NSView { +@MainActor final class PreferencesTableViewBackgroundView: NSView { let lightBorderColor = NSColor(white: 0.71, alpha: 1.0) let darkBorderColor = NSColor(red: 0.41, green: 0.43, blue: 0.44, alpha: 1.0) diff --git a/Mac/Preferences/PreferencesWindowController.swift b/Mac/Preferences/PreferencesWindowController.swift index 738aa5d81..f4d7b898f 100644 --- a/Mac/Preferences/PreferencesWindowController.swift +++ b/Mac/Preferences/PreferencesWindowController.swift @@ -28,7 +28,7 @@ private struct ToolbarItemIdentifier { static let Advanced = "Advanced" } -class PreferencesWindowController : NSWindowController, NSToolbarDelegate { +@MainActor class PreferencesWindowController : NSWindowController, NSToolbarDelegate { private let windowWidth = CGFloat(512.0) // Width is constant for all views; only the height changes private var viewControllers = [String: NSViewController]() diff --git a/Shared/Importers/DefaultFeedsImporter.swift b/Shared/Importers/DefaultFeedsImporter.swift index 8ed67d3b9..d02b2cec3 100644 --- a/Shared/Importers/DefaultFeedsImporter.swift +++ b/Shared/Importers/DefaultFeedsImporter.swift @@ -10,7 +10,7 @@ import Foundation import Account import RSCore -struct DefaultFeedsImporter { +@MainActor struct DefaultFeedsImporter { static func importDefaultFeeds(account: Account) { let defaultFeedsURL = Bundle.main.url(forResource: "DefaultFeeds", withExtension: "opml")!