chore: clean up
This commit is contained in:
parent
ee497e9046
commit
50f37a8ec6
|
@ -180,136 +180,3 @@ extension HomeTimelineViewModel {
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//// MARK: - NSFetchedResultsControllerDelegate
|
||||
//extension HomeTimelineViewModel: NSFetchedResultsControllerDelegate {
|
||||
//
|
||||
// func controllerWillChangeContent(_ controller: NSFetchedResultsController<NSFetchRequestResult>) {
|
||||
// os_log("%{public}s[%{public}ld], %{public}s", ((#file as NSString).lastPathComponent), #line, #function)
|
||||
// }
|
||||
//
|
||||
// func controller(_ controller: NSFetchedResultsController<NSFetchRequestResult>, didChangeContentWith snapshot: NSDiffableDataSourceSnapshotReference) {
|
||||
// os_log("%{public}s[%{public}ld], %{public}s", ((#file as NSString).lastPathComponent), #line, #function)
|
||||
//
|
||||
// guard let tableView = self.tableView else { return }
|
||||
// guard let navigationBar = self.contentOffsetAdjustableTimelineViewControllerDelegate?.navigationBar() else { return }
|
||||
//
|
||||
// guard let diffableDataSource = self.diffableDataSource else { return }
|
||||
// let oldSnapshot = diffableDataSource.snapshot()
|
||||
//
|
||||
// let predicate = fetchedResultsController.fetchRequest.predicate
|
||||
// let parentManagedObjectContext = fetchedResultsController.managedObjectContext
|
||||
// let managedObjectContext = NSManagedObjectContext(concurrencyType: .privateQueueConcurrencyType)
|
||||
// managedObjectContext.parent = parentManagedObjectContext
|
||||
//
|
||||
// managedObjectContext.perform {
|
||||
// var shouldAddBottomLoader = false
|
||||
//
|
||||
// let timelineIndexes: [HomeTimelineIndex] = {
|
||||
// let request = HomeTimelineIndex.sortedFetchRequest
|
||||
// request.returnsObjectsAsFaults = false
|
||||
// request.predicate = predicate
|
||||
// do {
|
||||
// return try managedObjectContext.fetch(request)
|
||||
// } catch {
|
||||
// assertionFailure(error.localizedDescription)
|
||||
// return []
|
||||
// }
|
||||
// }()
|
||||
//
|
||||
// // that's will be the most fastest fetch because of upstream just update and no modify needs consider
|
||||
//
|
||||
// var oldSnapshotAttributeDict: [NSManagedObjectID : Item.StatusAttribute] = [:]
|
||||
//
|
||||
// for item in oldSnapshot.itemIdentifiers {
|
||||
// guard case let .homeTimelineIndex(objectID, attribute) = item else { continue }
|
||||
// oldSnapshotAttributeDict[objectID] = attribute
|
||||
// }
|
||||
//
|
||||
// var newTimelineItems: [Item] = []
|
||||
//
|
||||
// for (i, timelineIndex) in timelineIndexes.enumerated() {
|
||||
// let attribute = oldSnapshotAttributeDict[timelineIndex.objectID] ?? Item.StatusAttribute()
|
||||
// attribute.isSeparatorLineHidden = false
|
||||
//
|
||||
// // append new item into snapshot
|
||||
// newTimelineItems.append(.homeTimelineIndex(objectID: timelineIndex.objectID, attribute: attribute))
|
||||
//
|
||||
// let isLast = i == timelineIndexes.count - 1
|
||||
// switch (isLast, timelineIndex.hasMore) {
|
||||
// case (false, true):
|
||||
// newTimelineItems.append(.homeMiddleLoader(upperTimelineIndexAnchorObjectID: timelineIndex.objectID))
|
||||
// attribute.isSeparatorLineHidden = true
|
||||
// case (true, true):
|
||||
// shouldAddBottomLoader = true
|
||||
// default:
|
||||
// break
|
||||
// }
|
||||
// } // end for
|
||||
//
|
||||
// var newSnapshot = NSDiffableDataSourceSnapshot<StatusSection, Item>()
|
||||
// newSnapshot.appendSections([.main])
|
||||
// newSnapshot.appendItems(newTimelineItems, toSection: .main)
|
||||
//
|
||||
// let endSnapshot = CACurrentMediaTime()
|
||||
//
|
||||
// DispatchQueue.main.async {
|
||||
// if shouldAddBottomLoader, !(self.loadLatestStateMachine.currentState is LoadOldestState.NoMore) {
|
||||
// newSnapshot.appendItems([.bottomLoader], toSection: .main)
|
||||
// }
|
||||
//
|
||||
// guard let difference = self.calculateReloadSnapshotDifference(navigationBar: navigationBar, tableView: tableView, oldSnapshot: oldSnapshot, newSnapshot: newSnapshot) else {
|
||||
// diffableDataSource.apply(newSnapshot)
|
||||
// self.isFetchingLatestTimeline.value = false
|
||||
// return
|
||||
// }
|
||||
//
|
||||
// diffableDataSource.reloadData(snapshot: newSnapshot) {
|
||||
// tableView.scrollToRow(at: difference.targetIndexPath, at: .top, animated: false)
|
||||
// tableView.contentOffset.y = tableView.contentOffset.y - difference.offset
|
||||
// self.isFetchingLatestTimeline.value = false
|
||||
// }
|
||||
//
|
||||
// let end = CACurrentMediaTime()
|
||||
// os_log("%{public}s[%{public}ld], %{public}s: calculate home timeline layout cost %.2fs", ((#file as NSString).lastPathComponent), #line, #function, end - endSnapshot)
|
||||
// }
|
||||
// } // end perform
|
||||
// }
|
||||
//
|
||||
// private struct Difference<T> {
|
||||
// let item: T
|
||||
// let sourceIndexPath: IndexPath
|
||||
// let targetIndexPath: IndexPath
|
||||
// let offset: CGFloat
|
||||
// }
|
||||
//
|
||||
// private func calculateReloadSnapshotDifference<T: Hashable>(
|
||||
// navigationBar: UINavigationBar,
|
||||
// tableView: UITableView,
|
||||
// oldSnapshot: NSDiffableDataSourceSnapshot<StatusSection, T>,
|
||||
// newSnapshot: NSDiffableDataSourceSnapshot<StatusSection, T>
|
||||
// ) -> Difference<T>? {
|
||||
// guard oldSnapshot.numberOfItems != 0 else { return nil }
|
||||
//
|
||||
// // old snapshot not empty. set source index path to first item if not match
|
||||
// let sourceIndexPath = UIViewController.topVisibleTableViewCellIndexPath(in: tableView, navigationBar: navigationBar) ?? IndexPath(row: 0, section: 0)
|
||||
//
|
||||
// guard sourceIndexPath.row < oldSnapshot.itemIdentifiers(inSection: .main).count else { return nil }
|
||||
//
|
||||
// let timelineItem = oldSnapshot.itemIdentifiers(inSection: .main)[sourceIndexPath.row]
|
||||
// guard let itemIndex = newSnapshot.itemIdentifiers(inSection: .main).firstIndex(of: timelineItem) else { return nil }
|
||||
// let targetIndexPath = IndexPath(row: itemIndex, section: 0)
|
||||
//
|
||||
// let offset = UIViewController.tableViewCellOriginOffsetToWindowTop(in: tableView, at: sourceIndexPath, navigationBar: navigationBar)
|
||||
// return Difference(
|
||||
// item: timelineItem,
|
||||
// sourceIndexPath: sourceIndexPath,
|
||||
// targetIndexPath: targetIndexPath,
|
||||
// offset: offset
|
||||
// )
|
||||
// }
|
||||
//
|
||||
//}
|
||||
|
|
|
@ -43,42 +43,6 @@ extension NotificationTimelineViewModel.Scope {
|
|||
}
|
||||
}
|
||||
|
||||
// func acceptFollowRequest(notification: MastodonNotification) {
|
||||
// guard let activeMastodonAuthenticationBox = self.activeMastodonAuthenticationBox.value else { return }
|
||||
// context.apiService.acceptFollowRequest(mastodonUserID: notification.account.id, mastodonAuthenticationBox: activeMastodonAuthenticationBox)
|
||||
// .sink { [weak self] completion in
|
||||
// switch completion {
|
||||
// case .failure(let error):
|
||||
// os_log(.info, log: .debug, "%{public}s[%{public}ld], %{public}s: accept FollowRequest fail: %s", ((#file as NSString).lastPathComponent), #line, #function, error.localizedDescription)
|
||||
// case .finished:
|
||||
// break
|
||||
//// self?.loadLatestStateMachine.enter(NotificationViewModel.LoadLatestState.Loading.self)
|
||||
// }
|
||||
// } receiveValue: { _ in
|
||||
//
|
||||
// }
|
||||
// .store(in: &disposeBag)
|
||||
// }
|
||||
//
|
||||
// func rejectFollowRequest(notification: MastodonNotification) {
|
||||
// guard let activeMastodonAuthenticationBox = self.activeMastodonAuthenticationBox.value else { return }
|
||||
// context.apiService.rejectFollowRequest(mastodonUserID: notification.account.id, mastodonAuthenticationBox: activeMastodonAuthenticationBox)
|
||||
// .sink { [weak self] completion in
|
||||
// switch completion {
|
||||
// case .failure(let error):
|
||||
// os_log(.info, log: .debug, "%{public}s[%{public}ld], %{public}s: reject FollowRequest fail: %s", ((#file as NSString).lastPathComponent), #line, #function, error.localizedDescription)
|
||||
// case .finished:
|
||||
// break
|
||||
//// self?.loadLatestStateMachine.enter(NotificationViewModel.LoadLatestState.Loading.self)
|
||||
// }
|
||||
// } receiveValue: { _ in
|
||||
//
|
||||
// }
|
||||
// .store(in: &disposeBag)
|
||||
// }
|
||||
//}
|
||||
|
||||
|
||||
// MARK: - PageboyViewControllerDataSource
|
||||
extension NotificationViewModel: PageboyViewControllerDataSource {
|
||||
|
||||
|
|
Loading…
Reference in New Issue