diff --git a/App/Navigation.swift b/App/Navigation.swift index 59b8aa0..1a1d15b 100644 --- a/App/Navigation.swift +++ b/App/Navigation.swift @@ -31,12 +31,13 @@ final class Navigation { .data(forKey: .filterKey) .flatMap { Filter(rawValue: $0) } markDeselectedAsRead() - - Item.RequestCount(filter: Filter(isRead: false)) - .publisher(in: self.store) - .replaceError(with: .zero) - .sink { UNUserNotificationCenter.current().setBadgeCount($0) } - .store(in: &bag) + Task { @MainActor in + Item.RequestCount(filter: Filter(isRead: false)) + .publisher(in: self.store) + .replaceError(with: .zero) + .sink { UNUserNotificationCenter.current().setBadgeCount($0) } + .store(in: &bag) + } } private func persistFilter() { diff --git a/App/Support/Assets.xcassets/AppIcon.appiconset/Contents.json b/App/Support/Assets.xcassets/AppIcon.appiconset/Contents.json index b6a6104..7665283 100644 --- a/App/Support/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/App/Support/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -6,6 +6,30 @@ "platform" : "ios", "size" : "1024x1024" }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "filename" : "iOS-dark.png", + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "tinted" + } + ], + "filename" : "iOS-tint.png", + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + }, { "filename" : "macOS-16.png", "idiom" : "mac", diff --git a/App/Support/Assets.xcassets/AppIcon.appiconset/iOS-dark.png b/App/Support/Assets.xcassets/AppIcon.appiconset/iOS-dark.png new file mode 100644 index 0000000..f0de048 Binary files /dev/null and b/App/Support/Assets.xcassets/AppIcon.appiconset/iOS-dark.png differ diff --git a/App/Support/Assets.xcassets/AppIcon.appiconset/iOS-dark.pxd b/App/Support/Assets.xcassets/AppIcon.appiconset/iOS-dark.pxd new file mode 100644 index 0000000..a88e529 Binary files /dev/null and b/App/Support/Assets.xcassets/AppIcon.appiconset/iOS-dark.pxd differ diff --git a/App/Support/Assets.xcassets/AppIcon.appiconset/iOS-tint.png b/App/Support/Assets.xcassets/AppIcon.appiconset/iOS-tint.png new file mode 100644 index 0000000..30da47e Binary files /dev/null and b/App/Support/Assets.xcassets/AppIcon.appiconset/iOS-tint.png differ diff --git a/App/Sync/Sync.swift b/App/Sync/Sync.swift index 8737aa2..da9b74f 100644 --- a/App/Sync/Sync.swift +++ b/App/Sync/Sync.swift @@ -148,7 +148,7 @@ extension Sync: CKSyncEngineDelegate { .filter { context.options.scope.contains($0) } ) { recordID in Logger.sync.info("Dequeued \(recordID.recordName)") - return store.item(id: recordID.itemId)?.record + return await store.item(id: recordID.itemId)?.record } } } diff --git a/App/Views/Representables/ContentViewController.swift b/App/Views/Representables/ContentViewController.swift index 06faa5f..2e500aa 100644 --- a/App/Views/Representables/ContentViewController.swift +++ b/App/Views/Representables/ContentViewController.swift @@ -1,6 +1,6 @@ import UIKit import SwiftUI -import WebKit +@preconcurrency import WebKit struct ContentViewController: UIViewControllerRepresentable { let display: ItemDetailView.Display diff --git a/App/Views/Representables/LogView.swift b/App/Views/Representables/LogView.swift deleted file mode 100644 index 4ba3fc5..0000000 --- a/App/Views/Representables/LogView.swift +++ /dev/null @@ -1,17 +0,0 @@ -import SwiftUI -import UIKit - -struct LogView: UIViewRepresentable { - static var count: Int = .zero - - func makeUIView(context: Context) -> UILabel { - Self.count += 1 - let label = UILabel() - label.backgroundColor = .magenta - return label - } - - func updateUIView(_ view: UILabel, context: Context) { - view.text = "\(Self.count)" - } -} diff --git a/FeedRadar.xcodeproj/project.pbxproj b/FeedRadar.xcodeproj/project.pbxproj index 65d497e..c7b6cc3 100644 --- a/FeedRadar.xcodeproj/project.pbxproj +++ b/FeedRadar.xcodeproj/project.pbxproj @@ -54,7 +54,6 @@ CEDEC5E82B06809000D83636 /* SafariViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEDEC5E72B06809000D83636 /* SafariViewController.swift */; }; CEDEFFE72B17695000AC9623 /* NavigationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEDEFFE62B17695000AC9623 /* NavigationView.swift */; }; CEDFBB282B1D0BE9009607BC /* FilterSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEDFBB272B1D0BE9009607BC /* FilterSettingsView.swift */; }; - CEE1734D2BB41EF100F6B0BA /* LogView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEE1734C2BB41EF100F6B0BA /* LogView.swift */; }; CEE41B412B0833C1005E0289 /* FeedImportView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEE41B402B0833C1005E0289 /* FeedImportView.swift */; }; CEED7B8A2B0B9AB2004B29C6 /* Store.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEED7B892B0B9AB2004B29C6 /* Store.swift */; }; CEF02BF32B432180007842A5 /* FeedKit in Frameworks */ = {isa = PBXBuildFile; productRef = CEF02BF22B432180007842A5 /* FeedKit */; }; @@ -126,7 +125,6 @@ CEDEC5E72B06809000D83636 /* SafariViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SafariViewController.swift; sourceTree = ""; }; CEDEFFE62B17695000AC9623 /* NavigationView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationView.swift; sourceTree = ""; }; CEDFBB272B1D0BE9009607BC /* FilterSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FilterSettingsView.swift; sourceTree = ""; }; - CEE1734C2BB41EF100F6B0BA /* LogView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogView.swift; sourceTree = ""; }; CEE41B402B0833C1005E0289 /* FeedImportView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedImportView.swift; sourceTree = ""; }; CEED7B892B0B9AB2004B29C6 /* Store.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Store.swift; sourceTree = ""; }; CEF02BFA2B448A06007842A5 /* Readability.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; name = Readability.js; path = Submodules/Readability/Readability.js; sourceTree = SOURCE_ROOT; }; @@ -205,7 +203,6 @@ CE1D89EF2B232F2C00CC2CFF /* LoadingOverlayView.swift */, CE32192F2B50A7E400490F02 /* PlayerViewController.swift */, CEDEC5E72B06809000D83636 /* SafariViewController.swift */, - CEE1734C2BB41EF100F6B0BA /* LogView.swift */, ); path = Representables; sourceTree = ""; @@ -513,7 +510,6 @@ CE351BF32B0D3873006FF948 /* Feed.swift in Sources */, CEDEC5E82B06809000D83636 /* SafariViewController.swift in Sources */, CE76F89F2B1262FE007ED642 /* Sync.swift in Sources */, - CEE1734D2BB41EF100F6B0BA /* LogView.swift in Sources */, CEDEC5CD2B0650F700D83636 /* FeedRadarApp.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/FeedRadar.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/FeedRadar.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index bb78b61..45add48 100644 --- a/FeedRadar.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/FeedRadar.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -15,8 +15,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/groue/GRDB.swift.git", "state" : { - "revision" : "77b85bed259b7f107710a0b78c439b1c5839dc45", - "version" : "6.26.0" + "revision" : "2cf6c756e1e5ef6901ebae16576a7e4e4b834622", + "version" : "6.29.3" } }, { @@ -24,8 +24,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/groue/GRDBQuery.git", "state" : { - "revision" : "42fef11503d221229ec39201c08316b6930755b2", - "version" : "0.8.0" + "revision" : "a6c46dd38ecf11a5c37732870dc03a384d582fba", + "version" : "0.9.0" } }, { @@ -38,5 +38,5 @@ } } ], - "version" : 2 + "version" : 3 }