From 75a5e9fb0307a4e885f37eae5a2e1671d8d2a6df Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Thu, 17 Nov 2022 18:20:34 +0800 Subject: [PATCH] MOve the lastItemSyncTime into the dataservice so we can reset the instance value --- .../Sources/App/Views/Home/HomeFeedViewModel.swift | 8 ++------ .../Sources/Services/DataService/DataService.swift | 10 ++++++---- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewModel.swift b/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewModel.swift index 1a8f79580..d78ec3692 100644 --- a/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewModel.swift +++ b/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewModel.swift @@ -36,10 +36,6 @@ import Views @AppStorage(UserDefaultKey.lastSelectedLinkedItemFilter.rawValue) var appliedFilter = LinkedItemFilter.inbox.rawValue - @AppStorage(UserDefaultKey.lastItemSyncTime.rawValue) var lastItemSyncTime = DateFormatter.formatterISO8601.string( - from: Date(timeIntervalSinceReferenceDate: 0) - ) - func handleReaderItemNotification(objectID: NSManagedObjectID, dataService: DataService) { // Pop the current selected item if needed if selectedItem != nil, selectedItem?.objectID != objectID { @@ -108,11 +104,11 @@ import Views } func syncItems(dataService: DataService, syncStartTime: Date) async { - let lastSyncDate = dateFormatter.date(from: lastItemSyncTime) ?? Date(timeIntervalSinceReferenceDate: 0) + let lastSyncDate = dateFormatter.date(from: dataService.lastItemSyncTime) ?? Date(timeIntervalSinceReferenceDate: 0) let syncResult = try? await dataService.syncLinkedItems(since: lastSyncDate, cursor: nil) if syncResult != nil { - lastItemSyncTime = dateFormatter.string(from: syncStartTime) + dataService.lastItemSyncTime = dateFormatter.string(from: syncStartTime) } // If possible start prefetching new pages in the background diff --git a/apple/OmnivoreKit/Sources/Services/DataService/DataService.swift b/apple/OmnivoreKit/Sources/Services/DataService/DataService.swift index 072d777b1..92628976e 100644 --- a/apple/OmnivoreKit/Sources/Services/DataService/DataService.swift +++ b/apple/OmnivoreKit/Sources/Services/DataService/DataService.swift @@ -4,6 +4,7 @@ import Foundation import Models import OSLog import QuickLookThumbnailing +import SwiftUI import Utils #if os(iOS) @@ -28,6 +29,10 @@ public final class DataService: ObservableObject { persistentContainer.viewContext } + @AppStorage(UserDefaultKey.lastItemSyncTime.rawValue) public var lastItemSyncTime = DateFormatter.formatterISO8601.string( + from: Date(timeIntervalSinceReferenceDate: 0) + ) + public init(appEnvironment: AppEnvironment, networker: Networker) { self.appEnvironment = appEnvironment self.networker = networker @@ -96,10 +101,7 @@ public final class DataService: ObservableObject { } public func resetCoreData() { - UserDefaults.standard.set( - DateFormatter.formatterISO8601.string(from: Date(timeIntervalSinceReferenceDate: 0)), - forKey: UserDefaultKey.lastItemSyncTime.rawValue - ) + lastItemSyncTime = DateFormatter.formatterISO8601.string(from: Date(timeIntervalSinceReferenceDate: 0)) clearCoreData()