From 591af8cbd61a698fd771b143f2a35c3b97566c09 Mon Sep 17 00:00:00 2001 From: Maxime Marinel Date: Tue, 30 Jan 2024 08:18:41 +0100 Subject: [PATCH] Targeted concurrency --- App/Features/Entry/Picture/ImageCache.swift | 2 +- .../PasteBoard/PasteBoardViewModel.swift | 20 +++++++++---------- .../Endpoint/WallabagKitEndpoint.swift | 2 +- .../Model/WallabagCollection.swift | 2 +- .../WallabagKit/Model/WallabagConfig.swift | 2 +- .../WallabagKit/Model/WallabagEntry.swift | 2 +- .../WallabagKit/Model/WallabagTag.swift | 2 +- .../WallabagKit/Model/WallabagToken.swift | 2 +- wallabag.xcodeproj/project.pbxproj | 2 ++ 9 files changed, 19 insertions(+), 17 deletions(-) diff --git a/App/Features/Entry/Picture/ImageCache.swift b/App/Features/Entry/Picture/ImageCache.swift index cecf5e86..42588dfd 100644 --- a/App/Features/Entry/Picture/ImageCache.swift +++ b/App/Features/Entry/Picture/ImageCache.swift @@ -4,7 +4,7 @@ import Foundation import UIKit actor ImageCache { - static var shared = ImageCache() + static let shared = ImageCache() private var memoryCache: NSCache = { let cache = NSCache() diff --git a/App/Features/PasteBoard/PasteBoardViewModel.swift b/App/Features/PasteBoard/PasteBoardViewModel.swift index 20f7a753..f11a0b73 100644 --- a/App/Features/PasteBoard/PasteBoardViewModel.swift +++ b/App/Features/PasteBoard/PasteBoardViewModel.swift @@ -23,16 +23,16 @@ private var cancellableNotification: AnyCancellable? init() { - cancellableNotification = NotificationCenter.default.publisher(for: UIApplication.didBecomeActiveNotification) - .map { _ -> Bool in - guard let pasteBoardUrl = UIPasteboard.general.url, - pasteBoardUrl.absoluteString != WallabagUserDefaults.previousPasteBoardUrl - else { - return false - } - return true - } - .assign(to: \.showPasteBoardView, on: self) +// cancellableNotification = NotificationCenter.default.publisher(for: UIApplication.didBecomeActiveNotification) +// .map { _ -> Bool in +// guard let pasteBoardUrl = UIPasteboard.general.url, +// pasteBoardUrl.absoluteString != WallabagUserDefaults.previousPasteBoardUrl +// else { +// return false +// } +// return true +// } +// .assign(to: \.showPasteBoardView, on: self) } deinit { diff --git a/WallabagKit/Sources/WallabagKit/Endpoint/WallabagKitEndpoint.swift b/WallabagKit/Sources/WallabagKit/Endpoint/WallabagKitEndpoint.swift index ef95e02c..794c8fdc 100644 --- a/WallabagKit/Sources/WallabagKit/Endpoint/WallabagKitEndpoint.swift +++ b/WallabagKit/Sources/WallabagKit/Endpoint/WallabagKitEndpoint.swift @@ -7,7 +7,7 @@ import Foundation -public protocol WallabagKitEndpoint { +public protocol WallabagKitEndpoint: Sendable { associatedtype Object: Decodable func method() -> HttpMethod func endpoint() -> String diff --git a/WallabagKit/Sources/WallabagKit/Model/WallabagCollection.swift b/WallabagKit/Sources/WallabagKit/Model/WallabagCollection.swift index b5599ca7..b941ccbd 100644 --- a/WallabagKit/Sources/WallabagKit/Model/WallabagCollection.swift +++ b/WallabagKit/Sources/WallabagKit/Model/WallabagCollection.swift @@ -1,6 +1,6 @@ import Foundation -public struct WallabagCollection: Decodable { +public struct WallabagCollection: Decodable, Sendable { public let limit: Int public let page: Int public let pages: Int diff --git a/WallabagKit/Sources/WallabagKit/Model/WallabagConfig.swift b/WallabagKit/Sources/WallabagKit/Model/WallabagConfig.swift index 738f7fd1..b84382e6 100644 --- a/WallabagKit/Sources/WallabagKit/Model/WallabagConfig.swift +++ b/WallabagKit/Sources/WallabagKit/Model/WallabagConfig.swift @@ -1,6 +1,6 @@ import Foundation -public struct WallabagConfig: Decodable { +public struct WallabagConfig: Decodable, Sendable { public let id: Int public let itemsPerPage: Int public let language: String diff --git a/WallabagKit/Sources/WallabagKit/Model/WallabagEntry.swift b/WallabagKit/Sources/WallabagKit/Model/WallabagEntry.swift index f3607027..26603aa3 100644 --- a/WallabagKit/Sources/WallabagKit/Model/WallabagEntry.swift +++ b/WallabagKit/Sources/WallabagKit/Model/WallabagEntry.swift @@ -1,6 +1,6 @@ import Foundation -public struct WallabagEntry: Decodable { +public struct WallabagEntry: Decodable, Sendable { public let id: Int public let userId: Int? public let uid: String? diff --git a/WallabagKit/Sources/WallabagKit/Model/WallabagTag.swift b/WallabagKit/Sources/WallabagKit/Model/WallabagTag.swift index de0bc808..abdd74bb 100644 --- a/WallabagKit/Sources/WallabagKit/Model/WallabagTag.swift +++ b/WallabagKit/Sources/WallabagKit/Model/WallabagTag.swift @@ -1,6 +1,6 @@ import Foundation -public struct WallabagTag: Decodable { +public struct WallabagTag: Decodable, Sendable { public let id: Int public let label: String public let slug: String diff --git a/WallabagKit/Sources/WallabagKit/Model/WallabagToken.swift b/WallabagKit/Sources/WallabagKit/Model/WallabagToken.swift index 82cfd4f7..69f2c6e4 100644 --- a/WallabagKit/Sources/WallabagKit/Model/WallabagToken.swift +++ b/WallabagKit/Sources/WallabagKit/Model/WallabagToken.swift @@ -1,6 +1,6 @@ import Foundation -public struct WallabagToken: Decodable { +public struct WallabagToken: Decodable, Sendable { public let accessToken: String public let expiresIn: Int public let tokenType: String diff --git a/wallabag.xcodeproj/project.pbxproj b/wallabag.xcodeproj/project.pbxproj index 0b52c21e..3f1b80d0 100644 --- a/wallabag.xcodeproj/project.pbxproj +++ b/wallabag.xcodeproj/project.pbxproj @@ -1281,6 +1281,7 @@ ONLY_ACTIVE_ARCH = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_STRICT_CONCURRENCY = complete; }; name = Debug; }; @@ -1338,6 +1339,7 @@ MTL_FAST_MATH = YES; SWIFT_COMPILATION_MODE = wholemodule; SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_STRICT_CONCURRENCY = complete; }; name = Release; };