From 14260fa1808dbef335a2576d2dc7a90c4cda5f3d Mon Sep 17 00:00:00 2001 From: lollipopkit Date: Thu, 21 Dec 2023 14:14:29 +0800 Subject: [PATCH] fix: init icloud sync (#239) --- lib/core/utils/sync/icloud.dart | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/core/utils/sync/icloud.dart b/lib/core/utils/sync/icloud.dart index caef29c9..c89f0b4d 100644 --- a/lib/core/utils/sync/icloud.dart +++ b/lib/core/utils/sync/icloud.dart @@ -183,15 +183,26 @@ abstract final class ICloud { } static Future sync() async { + var dlSuccess = false; try { final result = await download(relativePath: Paths.bakName); if (result != null) { - _logger.warning('Download backup failed: $result'); - return; + throw result; } + dlSuccess = true; } catch (e, s) { _logger.warning('Download backup failed', e, s); } + if (!dlSuccess) { + await Backup.backup(); + final uploadResult = await upload(relativePath: Paths.bakName); + if (uploadResult != null) { + _logger.warning('Upload backup failed: $uploadResult'); + } else { + _logger.info('Upload backup success'); + } + return; + } final dlFile = await File(await Paths.bak).readAsString(); final dlBak = await compute(Backup.fromJsonString, dlFile); final restore = await dlBak.restore();