From 63cc39dc4f60a2a6c6c999f37875b10d4bfb02b4 Mon Sep 17 00:00:00 2001 From: Brent Simmons Date: Sun, 9 Jul 2023 11:41:42 -0700 Subject: [PATCH] Continue adopting MainActor. --- Shared/ShareExtension/ExtensionContainersFile.swift | 6 +++--- iOS/Account/CloudKitAddAccountView.swift | 2 +- iOS/Account/FeedbinAddAccountView.swift | 2 +- iOS/Account/LocalAddAccountView.swift | 2 +- iOS/Account/NewsBlurAddAccountView.swift | 2 +- iOS/Account/ReaderAPIAddAccountView.swift | 2 +- iOS/Inspector/AccountInspectorView.swift | 2 +- iOS/Intents/AddFeedIntentHandler.swift | 2 +- iOS/MasterFeed/MasterFeedViewController+Drop.swift | 2 +- iOS/MasterFeed/RefreshProgressView.swift | 2 +- iOS/SceneCoordinator.swift | 2 +- iOS/Settings/Accounts/AccountsManagementView.swift | 2 +- iOS/Settings/Accounts/AddAccountListView.swift | 2 +- iOS/Settings/General/SettingsRows.swift | 2 +- .../NewArticleNotificationsView.swift | 2 +- 15 files changed, 17 insertions(+), 17 deletions(-) diff --git a/Shared/ShareExtension/ExtensionContainersFile.swift b/Shared/ShareExtension/ExtensionContainersFile.swift index f8a58eda9..51373cffe 100644 --- a/Shared/ShareExtension/ExtensionContainersFile.swift +++ b/Shared/ShareExtension/ExtensionContainersFile.swift @@ -28,7 +28,7 @@ final class ExtensionContainersFile: Logging { } @MainActor private let saveQueue = CoalescingQueue(name: "Save Queue", interval: 0.5) - init() { + @MainActor init() { if !FileManager.default.fileExists(atPath: ExtensionContainersFile.filePath) { save() } @@ -72,14 +72,14 @@ private extension ExtensionContainersFile { saveQueue.add(self, #selector(saveToDiskIfNeeded)) } - @objc func saveToDiskIfNeeded() { + @MainActor @objc func saveToDiskIfNeeded() { if isDirty { isDirty = false save() } } - func save() { + @MainActor func save() { let encoder = PropertyListEncoder() encoder.outputFormat = .binary diff --git a/iOS/Account/CloudKitAddAccountView.swift b/iOS/Account/CloudKitAddAccountView.swift index 7de98f92e..2e3c6d0ba 100644 --- a/iOS/Account/CloudKitAddAccountView.swift +++ b/iOS/Account/CloudKitAddAccountView.swift @@ -9,7 +9,7 @@ import SwiftUI import Account -struct CloudKitAddAccountView: View { +@MainActor struct CloudKitAddAccountView: View { @Environment(\.dismiss) private var dismiss @State private var accountError: (Error?, Bool) = (nil, false) diff --git a/iOS/Account/FeedbinAddAccountView.swift b/iOS/Account/FeedbinAddAccountView.swift index 23e4a0580..e4966dd2b 100644 --- a/iOS/Account/FeedbinAddAccountView.swift +++ b/iOS/Account/FeedbinAddAccountView.swift @@ -14,7 +14,7 @@ import SafariServices import RSCore -struct FeedbinAddAccountView: View { +@MainActor struct FeedbinAddAccountView: View { @Environment(\.dismiss) private var dismiss @State var account: Account? = nil diff --git a/iOS/Account/LocalAddAccountView.swift b/iOS/Account/LocalAddAccountView.swift index c823296d7..d619be570 100644 --- a/iOS/Account/LocalAddAccountView.swift +++ b/iOS/Account/LocalAddAccountView.swift @@ -9,7 +9,7 @@ import SwiftUI import Account -struct LocalAddAccountView: View { +@MainActor struct LocalAddAccountView: View { @Environment(\.dismiss) var dismiss @State private var accountName: String = "" diff --git a/iOS/Account/NewsBlurAddAccountView.swift b/iOS/Account/NewsBlurAddAccountView.swift index db83bcede..ce512b31a 100644 --- a/iOS/Account/NewsBlurAddAccountView.swift +++ b/iOS/Account/NewsBlurAddAccountView.swift @@ -12,7 +12,7 @@ import Secrets import RSWeb import RSCore -struct NewsBlurAddAccountView: View, Logging { +@MainActor struct NewsBlurAddAccountView: View, Logging { @Environment(\.dismiss) private var dismiss @State var account: Account? = nil diff --git a/iOS/Account/ReaderAPIAddAccountView.swift b/iOS/Account/ReaderAPIAddAccountView.swift index 0474c40c8..b9a871c70 100644 --- a/iOS/Account/ReaderAPIAddAccountView.swift +++ b/iOS/Account/ReaderAPIAddAccountView.swift @@ -13,7 +13,7 @@ import RSWeb import SafariServices import RSCore -struct ReaderAPIAddAccountView: View { +@MainActor struct ReaderAPIAddAccountView: View { @Environment(\.dismiss) var dismiss diff --git a/iOS/Inspector/AccountInspectorView.swift b/iOS/Inspector/AccountInspectorView.swift index 41d1c4214..10a24ea48 100644 --- a/iOS/Inspector/AccountInspectorView.swift +++ b/iOS/Inspector/AccountInspectorView.swift @@ -10,7 +10,7 @@ import SwiftUI import SafariServices import Account -struct AccountInspectorView: View { +@MainActor struct AccountInspectorView: View { @Environment(\.dismiss) var dismiss @State private var showRemoveAccountAlert: Bool = false diff --git a/iOS/Intents/AddFeedIntentHandler.swift b/iOS/Intents/AddFeedIntentHandler.swift index 7b36b7feb..983265a65 100644 --- a/iOS/Intents/AddFeedIntentHandler.swift +++ b/iOS/Intents/AddFeedIntentHandler.swift @@ -126,7 +126,7 @@ public class AddFeedIntentHandler: NSObject, AddFeedIntentHandling { } - public func handle(intent: AddFeedIntent, completion: @escaping (AddFeedIntentResponse) -> Void) { + @MainActor public func handle(intent: AddFeedIntent, completion: @escaping (AddFeedIntentResponse) -> Void) { guard let url = intent.url, let extensionContainers = ExtensionContainersFile.read() else { completion(AddFeedIntentResponse(code: .failure, userActivity: nil)) return diff --git a/iOS/MasterFeed/MasterFeedViewController+Drop.swift b/iOS/MasterFeed/MasterFeedViewController+Drop.swift index 123a69377..1fd5c48af 100644 --- a/iOS/MasterFeed/MasterFeedViewController+Drop.swift +++ b/iOS/MasterFeed/MasterFeedViewController+Drop.swift @@ -189,7 +189,7 @@ private extension MasterFeedViewController { private extension Container { - func hasChildFeed(withURL url: String) -> Bool { + @MainActor func hasChildFeed(withURL url: String) -> Bool { return topLevelFeeds.contains(where: { $0.url == url }) } diff --git a/iOS/MasterFeed/RefreshProgressView.swift b/iOS/MasterFeed/RefreshProgressView.swift index 05c030d2f..98aad2784 100644 --- a/iOS/MasterFeed/RefreshProgressView.swift +++ b/iOS/MasterFeed/RefreshProgressView.swift @@ -68,7 +68,7 @@ import Account } -class RefreshProgressModel: ObservableObject { +@MainActor class RefreshProgressModel: ObservableObject { @Published var isRefreshing = false @Published var isIndeterminate = false diff --git a/iOS/SceneCoordinator.swift b/iOS/SceneCoordinator.swift index d7fc80bbf..5d5cd80d1 100644 --- a/iOS/SceneCoordinator.swift +++ b/iOS/SceneCoordinator.swift @@ -53,7 +53,7 @@ struct FeedNode: Hashable { } } -final class SceneCoordinator: NSObject, UndoableCommandRunner, Logging { +@MainActor final class SceneCoordinator: NSObject, UndoableCommandRunner, Logging { var undoableCommands = [UndoableCommand]() var undoManager: UndoManager? { diff --git a/iOS/Settings/Accounts/AccountsManagementView.swift b/iOS/Settings/Accounts/AccountsManagementView.swift index 5bf780cf7..48b8a498b 100644 --- a/iOS/Settings/Accounts/AccountsManagementView.swift +++ b/iOS/Settings/Accounts/AccountsManagementView.swift @@ -10,7 +10,7 @@ import SwiftUI import Account import Combine -public final class AccountManagementViewModel: ObservableObject { +@MainActor public final class AccountManagementViewModel: ObservableObject { @Published var sortedActiveAccounts = [Account]() @Published var sortedInactiveAccounts = [Account]() diff --git a/iOS/Settings/Accounts/AddAccountListView.swift b/iOS/Settings/Accounts/AddAccountListView.swift index a4a6138ea..88dec125c 100644 --- a/iOS/Settings/Accounts/AddAccountListView.swift +++ b/iOS/Settings/Accounts/AddAccountListView.swift @@ -41,7 +41,7 @@ public final class AddAccountListViewModel: ObservableObject, OAuthAccountAuthor return rootViewController } - public func oauthAccountAuthorizationOperation(_ operation: OAuthAccountAuthorizationOperation, didCreate account: Account) { + @MainActor public func oauthAccountAuthorizationOperation(_ operation: OAuthAccountAuthorizationOperation, didCreate account: Account) { account.refreshAll { [weak self] result in switch result { case .success: diff --git a/iOS/Settings/General/SettingsRows.swift b/iOS/Settings/General/SettingsRows.swift index b8e8dc6ee..8087c8422 100644 --- a/iOS/Settings/General/SettingsRows.swift +++ b/iOS/Settings/General/SettingsRows.swift @@ -13,7 +13,7 @@ import UniformTypeIdentifiers // MARK: - Rows -struct SettingsRow { +@MainActor struct SettingsRow { /// This row, when tapped, will open iOS System Settings. static var openSystemSettings: some View { diff --git a/iOS/Settings/New Article Notifications/NewArticleNotificationsView.swift b/iOS/Settings/New Article Notifications/NewArticleNotificationsView.swift index b392274a2..eafa217d9 100644 --- a/iOS/Settings/New Article Notifications/NewArticleNotificationsView.swift +++ b/iOS/Settings/New Article Notifications/NewArticleNotificationsView.swift @@ -11,7 +11,7 @@ import Account import RSCore -struct NewArticleNotificationsView: View, Logging { +@MainActor struct NewArticleNotificationsView: View, Logging { @State private var activeAccounts = AccountManager.shared.sortedActiveAccounts