diff --git a/Core/Sources/Core/RSScreen.swift b/Core/Sources/Core/RSScreen.swift index 4fee278db..78fd8faed 100644 --- a/Core/Sources/Core/RSScreen.swift +++ b/Core/Sources/Core/RSScreen.swift @@ -10,7 +10,7 @@ import AppKit public class RSScreen { - public static var maxScreenScale = CGFloat(2) + public static let maxScreenScale = CGFloat(2) } #endif @@ -19,7 +19,7 @@ public class RSScreen { import UIKit public class RSScreen { - public static var maxScreenScale = CGFloat(3) + public static let maxScreenScale = CGFloat(3) } #endif diff --git a/Mac/AppAssets.swift b/Mac/AppAssets.swift index a71a44364..f445b5692 100644 --- a/Mac/AppAssets.swift +++ b/Mac/AppAssets.swift @@ -71,6 +71,7 @@ struct AppAssets { static let legacyArticleExtractorProgress4 = NSImage(named: "legacyArticleExtractorProgress4") + @MainActor static let folderImage: IconImage = { let image = NSImage(systemSymbolName: "folder", accessibilityDescription: nil)! let preferredColor = NSColor(named: "AccentColor")! @@ -96,6 +97,7 @@ struct AppAssets { static let refreshImage = NSImage(systemSymbolName: "arrow.clockwise", accessibilityDescription: nil)! + @MainActor static let searchFeedImage: IconImage = { return IconImage(NSImage(named: NSImage.smartBadgeTemplateName)!, isSymbol: true, isBackgroundSupressed: true) }() @@ -108,6 +110,7 @@ struct AppAssets { static let starOpenImage = NSImage(systemSymbolName: "star", accessibilityDescription: nil)! + @MainActor static let starredFeedImage: IconImage = { let image = NSImage(systemSymbolName: "star.fill", accessibilityDescription: nil)! let preferredColor = NSColor(named: "StarColor")! @@ -121,6 +124,7 @@ struct AppAssets { static let timelineStarUnselected = NSImage(named: "timelineStar")?.tinted(with: starColor) + @MainActor static let todayFeedImage: IconImage = { let image = NSImage(systemSymbolName: "sun.max.fill", accessibilityDescription: nil)! let preferredColor = NSColor.orange @@ -128,6 +132,7 @@ struct AppAssets { return IconImage(coloredImage, isSymbol: true, isBackgroundSupressed: true, preferredColor: preferredColor.cgColor) }() + @MainActor static let unreadFeedImage: IconImage = { let image = NSImage(systemSymbolName: "largecircle.fill.circle", accessibilityDescription: nil)! let preferredColor = NSColor(named: "AccentColor")! diff --git a/Mac/ErrorHandler.swift b/Mac/ErrorHandler.swift index 258712b5e..33ff42275 100644 --- a/Mac/ErrorHandler.swift +++ b/Mac/ErrorHandler.swift @@ -10,6 +10,11 @@ import AppKit import Account import os.log +// asserts that OSLog is a sendable type +// @preconcurrency import os.log _should_ resolve the warning in this scenario, but does +// not due to a bug (in Swift 5.10) +extension OSLog: @unchecked Sendable { } + struct ErrorHandler { private static let log = OSLog(subsystem: Bundle.main.bundleIdentifier!, category: "Account") diff --git a/Shared/ArticleStyles/ArticleTheme.swift b/Shared/ArticleStyles/ArticleTheme.swift index 302c45a53..832e4ef8b 100644 --- a/Shared/ArticleStyles/ArticleTheme.swift +++ b/Shared/ArticleStyles/ArticleTheme.swift @@ -8,7 +8,7 @@ import Foundation -struct ArticleTheme: Equatable { +struct ArticleTheme: Equatable, Sendable { static let defaultTheme = ArticleTheme() static let nnwThemeSuffix = ".nnwtheme" diff --git a/Shared/ArticleStyles/ArticleThemePlist.swift b/Shared/ArticleStyles/ArticleThemePlist.swift index f324cdbde..b18a38146 100644 --- a/Shared/ArticleStyles/ArticleThemePlist.swift +++ b/Shared/ArticleStyles/ArticleThemePlist.swift @@ -8,7 +8,7 @@ import Foundation -public struct ArticleThemePlist: Codable, Equatable { +public struct ArticleThemePlist: Codable, Equatable, Sendable { public var name: String public var themeIdentifier: String public var creatorHomePage: String diff --git a/Shared/Extensions/RSImage-AppIcons.swift b/Shared/Extensions/RSImage-AppIcons.swift index 04964d85d..2015d1284 100644 --- a/Shared/Extensions/RSImage-AppIcons.swift +++ b/Shared/Extensions/RSImage-AppIcons.swift @@ -27,7 +27,7 @@ extension RSImage { } extension IconImage { - static var appIcon: IconImage? = { + static let appIcon: IconImage? = { if let image = RSImage.appIconImage { return IconImage(image) }