From bb9cef55ea1787ed7ca0b04bd2e9d4ae419c49c6 Mon Sep 17 00:00:00 2001 From: Shadowfacts Date: Sat, 29 Oct 2022 10:18:38 -0400 Subject: [PATCH] Don't remove persistent data when clearing cache --- Tusker/Screens/Preferences/AdvancedPrefsView.swift | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/Tusker/Screens/Preferences/AdvancedPrefsView.swift b/Tusker/Screens/Preferences/AdvancedPrefsView.swift index f8c82159..f47515c4 100644 --- a/Tusker/Screens/Preferences/AdvancedPrefsView.swift +++ b/Tusker/Screens/Preferences/AdvancedPrefsView.swift @@ -7,6 +7,7 @@ import SwiftUI import Pachyderm +import CoreData struct AdvancedPrefsView : View { @ObservedObject var preferences = Preferences.shared @@ -49,9 +50,16 @@ struct AdvancedPrefsView : View { private func clearCache() { for account in LocalData.shared.accounts { let controller = MastodonController.getForAccount(account) - let coordinator = controller.persistentContainer.persistentStoreCoordinator - for store in coordinator.persistentStores { - try! coordinator.destroyPersistentStore(at: store.url!, ofType: store.type, options: store.options) + let container = controller.persistentContainer + do { + let statusesReq = NSBatchDeleteRequest(fetchRequest: StatusMO.fetchRequest()) + try container.viewContext.execute(statusesReq) + let accountsReq = NSBatchDeleteRequest(fetchRequest: AccountMO.fetchRequest()) + try container.viewContext.execute(accountsReq) + let relationshipsReq = NSBatchDeleteRequest(fetchRequest: RelationshipMO.fetchRequest()) + try container.viewContext.execute(relationshipsReq) + } catch { + Logging.general.error("Error while clearing Mastodon cache: \(String(describing: error), privacy: .public)") } } resetUI()