diff --git a/Account/Sources/Account/CloudKit/CloudKitArticlesZoneDelegate.swift b/CloudKitSync/Sources/CloudKitSync/CloudKitArticlesZoneDelegate.swift similarity index 90% rename from Account/Sources/Account/CloudKit/CloudKitArticlesZoneDelegate.swift rename to CloudKitSync/Sources/CloudKitSync/CloudKitArticlesZoneDelegate.swift index 61baa2c1f..2d6f0e84d 100644 --- a/Account/Sources/Account/CloudKit/CloudKitArticlesZoneDelegate.swift +++ b/CloudKitSync/Sources/CloudKitSync/CloudKitArticlesZoneDelegate.swift @@ -15,9 +15,8 @@ import SyncDatabase import Articles import ArticlesDatabase import Database -import CloudKitSync -final class CloudKitArticlesZoneDelegate: CloudKitZoneDelegate { +public final class CloudKitArticlesZoneDelegate: CloudKitZoneDelegate { public struct ArticleSupport { @@ -27,6 +26,15 @@ final class CloudKitArticlesZoneDelegate: CloudKitZoneDelegate { let markStarred: (Set) -> Void let markUnstarred: (Set) -> Void let update: (String, Set, Bool) async throws -> ArticleChanges? // feedID, parsedItems, deleteOlder + + public init(delete: @escaping (Set) -> Void, markRead: @escaping (Set) -> Void, markUnread: @escaping (Set) -> Void, markStarred: @escaping (Set) -> Void, markUnstarred: @escaping (Set) -> Void, update: @escaping (String, Set, Bool) async throws -> ArticleChanges?) { + self.delete = delete + self.markRead = markRead + self.markUnread = markUnread + self.markStarred = markStarred + self.markUnstarred = markUnstarred + self.update = update + } } let articleSupport: ArticleSupport @@ -35,13 +43,13 @@ final class CloudKitArticlesZoneDelegate: CloudKitZoneDelegate { private var log = OSLog(subsystem: Bundle.main.bundleIdentifier!, category: "CloudKit") - init(articleSupport: ArticleSupport, database: SyncDatabase, articlesZone: CloudKitArticlesZone) { + public init(articleSupport: ArticleSupport, database: SyncDatabase, articlesZone: CloudKitArticlesZone) { self.articleSupport = articleSupport self.database = database self.articlesZone = articlesZone } - func cloudKitDidModify(changed: [CKRecord], deleted: [CloudKitRecordKey], completion: @escaping (Result) -> Void) { + public func cloudKitDidModify(changed: [CKRecord], deleted: [CloudKitRecordKey], completion: @escaping (Result) -> Void) { Task { @MainActor in do {