From d1891190143154399d5e23ba2d7686f365de88d3 Mon Sep 17 00:00:00 2001 From: Nathan Mattes Date: Wed, 20 Dec 2023 21:38:55 +0100 Subject: [PATCH] Remove obsolete Core Data-controller --- .../FollowedTagsFetchedResultController.swift | 75 ------------------- 1 file changed, 75 deletions(-) delete mode 100644 MastodonSDK/Sources/MastodonCore/FetchedResultsController/FollowedTagsFetchedResultController.swift diff --git a/MastodonSDK/Sources/MastodonCore/FetchedResultsController/FollowedTagsFetchedResultController.swift b/MastodonSDK/Sources/MastodonCore/FetchedResultsController/FollowedTagsFetchedResultController.swift deleted file mode 100644 index 4c3670283..000000000 --- a/MastodonSDK/Sources/MastodonCore/FetchedResultsController/FollowedTagsFetchedResultController.swift +++ /dev/null @@ -1,75 +0,0 @@ -// -// FollowedTagsFetchedResultController.swift -// -// -// Created by Marcus Kida on 23.11.22. -// - -import UIKit -import Combine -import CoreData -import CoreDataStack -import MastodonSDK - -public final class FollowedTagsFetchedResultController: NSObject { - - var disposeBag = Set() - - let fetchedResultsController: NSFetchedResultsController - - // input - @Published public var domain: String? = nil - @Published public var user: MastodonUser? = nil - - // output - @Published public private(set) var records: [Tag] = [] - - public init(managedObjectContext: NSManagedObjectContext, domain: String, user: MastodonUser) { - self.domain = domain - self.fetchedResultsController = { - let fetchRequest = Tag.sortedFetchRequest - fetchRequest.predicate = Tag.predicate(domain: domain, following: true, by: user) - fetchRequest.sortDescriptors = Tag.defaultSortDescriptors - fetchRequest.returnsObjectsAsFaults = false - fetchRequest.fetchBatchSize = 20 - let controller = NSFetchedResultsController( - fetchRequest: fetchRequest, - managedObjectContext: managedObjectContext, - sectionNameKeyPath: nil, - cacheName: nil - ) - - return controller - }() - super.init() - - fetchedResultsController.delegate = self - try? fetchedResultsController.performFetch() - - Publishers.CombineLatest( - self.$domain, - self.$user - ) - .receive(on: DispatchQueue.main) - .sink { [weak self] domain, user in - guard let self = self, let domain = domain, let user = user else { return } - self.fetchedResultsController.fetchRequest.predicate = Tag.predicate(domain: domain, following: true, by: user) - do { - try self.fetchedResultsController.performFetch() - } catch { - assertionFailure(error.localizedDescription) - } - } - .store(in: &disposeBag) - } - -} - -// MARK: - NSFetchedResultsControllerDelegate -extension FollowedTagsFetchedResultController: NSFetchedResultsControllerDelegate { - public func controller(_ controller: NSFetchedResultsController, didChangeContentWith snapshot: NSDiffableDataSourceSnapshotReference) { - - let objects = fetchedResultsController.fetchedObjects ?? [] - self.records = objects - } -}