From 54f2ec5e2a3b7f7158a1ded6eb629da43c72b7c6 Mon Sep 17 00:00:00 2001 From: cranci <100066266+cranci1@users.noreply.github.com> Date: Fri, 25 Apr 2025 18:10:12 +0200 Subject: [PATCH] yes (#108) * few player bug fixes (#104) * icloud safe checking * more tests * removed ffmpeg sorry * test * Revert "test" This reverts commit cbf7412d47b4c02cd5263e30e969c15b454e6883. * custom player stuffs idk if it builds * fire Seiike moment * ok my fault this time * Create banner1.png * seiike ahh moment * added light mode banner * Update EpisodeCell.swift * seiike ahh moment x2 * ops * fixed intros skipper buttons * fixed pan crashes * added speed indicator for hold speed * added safecheck * oh yeah my bad --------- Co-authored-by: Seiike <122684677+Seeike@users.noreply.github.com> --- .../iCloudSyncManager/iCloudSyncManager.swift | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/Sora/Utils/iCloudSyncManager/iCloudSyncManager.swift b/Sora/Utils/iCloudSyncManager/iCloudSyncManager.swift index e42748a..aad0f9d 100644 --- a/Sora/Utils/iCloudSyncManager/iCloudSyncManager.swift +++ b/Sora/Utils/iCloudSyncManager/iCloudSyncManager.swift @@ -95,20 +95,24 @@ class iCloudSyncManager { } } - private func syncToiCloud() { - let iCloud = NSUbiquitousKeyValueStore.default - let defaults = UserDefaults.standard - - do { - for key in allKeysToSync() { - if let value = defaults.object(forKey: key) { - if isValidValueType(value) { - iCloud.set(value, forKey: key) + func syncToiCloud() { + syncQueue.async { + do { + let container = NSUbiquitousKeyValueStore.default + let defaults = UserDefaults.standard + + for key in self.allKeysToSync() { + if let value = defaults.object(forKey: key), self.isValidValueType(value) { + let data = try JSONSerialization.data(withJSONObject: value) + try JSONSerialization.jsonObject(with: data) + container.set(value, forKey: key) } } + + container.synchronize() + } catch { + Logger.shared.log("Failed to sync to iCloud: \(error.localizedDescription)", type: "Error") } - - iCloud.synchronize() } }