Fix a few concurrency warnings.
This commit is contained in:
parent
81cede769a
commit
19fd3d96ab
@ -20,7 +20,7 @@ public extension Notification.Name {
|
|||||||
|
|
||||||
public protocol FeedIconDownloaderDelegate: Sendable {
|
public protocol FeedIconDownloaderDelegate: Sendable {
|
||||||
|
|
||||||
var appIconImage: IconImage? { get }
|
@MainActor var appIconImage: IconImage? { get }
|
||||||
|
|
||||||
func downloadMetadata(_ url: String) async throws -> RSHTMLMetadata?
|
func downloadMetadata(_ url: String) async throws -> RSHTMLMetadata?
|
||||||
}
|
}
|
||||||
|
@ -11,14 +11,14 @@ import WebKit
|
|||||||
import Articles
|
import Articles
|
||||||
|
|
||||||
final class DetailIconSchemeHandler: NSObject, WKURLSchemeHandler {
|
final class DetailIconSchemeHandler: NSObject, WKURLSchemeHandler {
|
||||||
|
|
||||||
var currentArticle: Article?
|
var currentArticle: Article?
|
||||||
|
|
||||||
func webView(_ webView: WKWebView, start urlSchemeTask: WKURLSchemeTask) {
|
func webView(_ webView: WKWebView, start urlSchemeTask: WKURLSchemeTask) {
|
||||||
|
|
||||||
Task { @MainActor in
|
Task { @MainActor in
|
||||||
|
|
||||||
guard let responseURL = urlSchemeTask.request.url, let iconImage = self.currentArticle?.iconImage() else {
|
guard let responseURL = urlSchemeTask.request.url, let iconImage = self.currentArticle?.iconImage() else {
|
||||||
urlSchemeTask.didFailWithError(URLError(.fileDoesNotExist))
|
urlSchemeTask.didFailWithError(URLError(.fileDoesNotExist))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,8 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
protocol ScriptingObject {
|
protocol ScriptingObject {
|
||||||
var objectSpecifier: NSScriptObjectSpecifier? { get }
|
|
||||||
|
@MainActor var objectSpecifier: NSScriptObjectSpecifier? { get }
|
||||||
@MainActor var scriptingKey: String { get }
|
@MainActor var scriptingKey: String { get }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,6 +18,6 @@ extension AppDelegate: FaviconDownloaderDelegate, FeedIconDownloaderDelegate {
|
|||||||
|
|
||||||
func downloadMetadata(_ url: String) async throws -> RSHTMLMetadata? {
|
func downloadMetadata(_ url: String) async throws -> RSHTMLMetadata? {
|
||||||
|
|
||||||
try await HTMLMetadataDownloader.downloadMetadata(for: url)
|
await HTMLMetadataDownloader.downloadMetadata(for: url)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -50,7 +50,7 @@ extension Array where Element == Article {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func sortedByDate(_ sortDirection: ComparisonResult, groupByFeed: Bool = false) -> ArticleArray {
|
@MainActor func sortedByDate(_ sortDirection: ComparisonResult, groupByFeed: Bool = false) -> ArticleArray {
|
||||||
return ArticleSorter.sortedByDate(articles: self, sortDirection: sortDirection, groupByFeed: groupByFeed)
|
return ArticleSorter.sortedByDate(articles: self, sortDirection: sortDirection, groupByFeed: groupByFeed)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ import Foundation
|
|||||||
|
|
||||||
protocol SortableArticle {
|
protocol SortableArticle {
|
||||||
|
|
||||||
var sortableName: String { get }
|
@MainActor var sortableName: String { get }
|
||||||
var sortableDate: Date { get }
|
var sortableDate: Date { get }
|
||||||
var sortableArticleID: String { get }
|
var sortableArticleID: String { get }
|
||||||
var sortableFeedID: String { get }
|
var sortableFeedID: String { get }
|
||||||
@ -19,7 +19,7 @@ protocol SortableArticle {
|
|||||||
|
|
||||||
struct ArticleSorter {
|
struct ArticleSorter {
|
||||||
|
|
||||||
static func sortedByDate<T: SortableArticle>(articles: [T],
|
@MainActor static func sortedByDate<T: SortableArticle>(articles: [T],
|
||||||
sortDirection: ComparisonResult,
|
sortDirection: ComparisonResult,
|
||||||
groupByFeed: Bool) -> [T] {
|
groupByFeed: Bool) -> [T] {
|
||||||
if groupByFeed {
|
if groupByFeed {
|
||||||
@ -31,7 +31,7 @@ struct ArticleSorter {
|
|||||||
|
|
||||||
// MARK: -
|
// MARK: -
|
||||||
|
|
||||||
private static func sortedByFeedName<T: SortableArticle>(articles: [T],
|
@MainActor private static func sortedByFeedName<T: SortableArticle>(articles: [T],
|
||||||
sortByDateDirection: ComparisonResult) -> [T] {
|
sortByDateDirection: ComparisonResult) -> [T] {
|
||||||
// Group articles by "feed-feedID" - feed ID is used to differentiate between
|
// Group articles by "feed-feedID" - feed ID is used to differentiate between
|
||||||
// two feeds that have the same name
|
// two feeds that have the same name
|
||||||
|
Loading…
x
Reference in New Issue
Block a user