From 8218f393408a0abe97ae5a9d55479bfd62faca1c Mon Sep 17 00:00:00 2001 From: Fuwn Date: Mon, 17 Mar 2025 05:36:30 -0700 Subject: feat: Development commit --- Sora/Data/Settings/SettingsManager.swift | 24 +++++++++++----------- Sora/Views/Generic/GenericListView.swift | 2 +- .../Settings/Section/SettingsSettingsView.swift | 6 +++--- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/Sora/Data/Settings/SettingsManager.swift b/Sora/Data/Settings/SettingsManager.swift index 39317b4..666999b 100644 --- a/Sora/Data/Settings/SettingsManager.swift +++ b/Sora/Data/Settings/SettingsManager.swift @@ -25,10 +25,10 @@ class SettingsManager: ObservableObject { // swiftlint:disable:this type_body_l @AppStorage("preloadedCarouselImages") var preloadedCarouselImages = 3 - @AppStorage("enableICloudSync") - var enableICloudSync: Bool = false + @AppStorage("enableSync") + var enableSync: Bool = false - private var iCloudSyncObservation: NSObjectProtocol? + private var syncObservation: NSObjectProtocol? #if os(macOS) @AppStorage("saveTagsToFile") @@ -142,12 +142,12 @@ class SettingsManager: ObservableObject { // swiftlint:disable:this type_body_l // MARK: - Initialisation init() { - iCloudSyncObservation = NotificationCenter.default.addObserver( + syncObservation = NotificationCenter.default.addObserver( forName: NSUbiquitousKeyValueStore.didChangeExternallyNotification, object: NSUbiquitousKeyValueStore.default, queue: .main ) { [weak self] _ in - self?.pullSyncedSettings() + self?.syncFromCloud() } } @@ -166,7 +166,7 @@ class SettingsManager: ObservableObject { // swiftlint:disable:this type_body_l sort: ([T]) -> [T], identifier: (T) -> UUID ) -> [T] { - if enableICloudSync { + if enableSync { if let iCloudData = NSUbiquitousKeyValueStore.default.data(forKey: key) { if let iCloudValues = Self.decode([T].self, from: iCloudData) { let localValues = Self.decode([T].self, from: localData) ?? [] @@ -198,7 +198,7 @@ class SettingsManager: ObservableObject { // swiftlint:disable:this type_body_l localData.wrappedValue = Self.encode(sortedValues) ?? Data() - if enableICloudSync { + if enableSync { var iCloudValues: [T] = [] if let iCloudData = NSUbiquitousKeyValueStore.default.data(forKey: key) { @@ -240,8 +240,8 @@ class SettingsManager: ObservableObject { // swiftlint:disable:this type_body_l #endif } - func pullSyncedSettings() { - if self.enableICloudSync { + func syncFromCloud() { + if self.enableSync { if let data = NSUbiquitousKeyValueStore.default.data(forKey: "bookmarks") { self.bookmarksData = data } @@ -258,8 +258,8 @@ class SettingsManager: ObservableObject { // swiftlint:disable:this type_body_l } } - func syncToICloud() { - if enableICloudSync { + func syncToCloud() { + if enableSync { // Merge bookmarks var iCloudBookmarks: [SettingsBookmark] = [] @@ -402,7 +402,7 @@ class SettingsManager: ObservableObject { // swiftlint:disable:this type_body_l // MARK: - Deinitialisation deinit { - if let observation = iCloudSyncObservation { + if let observation = syncObservation { NotificationCenter.default.removeObserver(observation) } } diff --git a/Sora/Views/Generic/GenericListView.swift b/Sora/Views/Generic/GenericListView.swift index f6805ad..7981d8b 100644 --- a/Sora/Views/Generic/GenericListView.swift +++ b/Sora/Views/Generic/GenericListView.swift @@ -60,7 +60,7 @@ struct GenericListView: View { } .navigationTitle(title) .searchable(text: $searchText) - .refreshable { settings.pullSyncedSettings() } + .refreshable { settings.syncFromCloud() } .toolbar { ToolbarItem { Button(action: { diff --git a/Sora/Views/Settings/Section/SettingsSettingsView.swift b/Sora/Views/Settings/Section/SettingsSettingsView.swift index 0916c99..ab6a31a 100644 --- a/Sora/Views/Settings/Section/SettingsSettingsView.swift +++ b/Sora/Views/Settings/Section/SettingsSettingsView.swift @@ -4,14 +4,14 @@ struct SettingsSettingsView: View { @EnvironmentObject var settings: SettingsManager var body: some View { - Toggle(isOn: $settings.enableICloudSync) { + Toggle(isOn: $settings.enableSync) { Text("Sync with iCloud") Text("Keep bookmarks, search history, and providers consistent across all your devices.") .font(.caption) } - .onChange(of: settings.enableICloudSync) { _, _ in - settings.syncToICloud() + .onChange(of: settings.enableSync) { _, _ in + settings.syncToCloud() } Button("Reset to Defaults") { -- cgit v1.2.3