From c6a7b1fbb5dae20e56fedb65f587763e14cd51d7 Mon Sep 17 00:00:00 2001 From: mertalev <101130780+mertalev@users.noreply.github.com> Date: Wed, 11 Feb 2026 19:58:12 -0500 Subject: [PATCH] sync stopForegroundBackup --- mobile/lib/pages/backup/drift_backup.page.dart | 8 ++------ .../drift_backup_album_selection.page.dart | 17 ++++++++--------- .../pages/backup/drift_backup_options.page.dart | 17 ++++++++--------- .../lib/providers/app_life_cycle.provider.dart | 8 +++----- .../providers/backup/drift_backup.provider.dart | 12 ++++++------ 5 files changed, 27 insertions(+), 35 deletions(-) diff --git a/mobile/lib/pages/backup/drift_backup.page.dart b/mobile/lib/pages/backup/drift_backup.page.dart index cd6c2a62b0..c5084c0236 100644 --- a/mobile/lib/pages/backup/drift_backup.page.dart +++ b/mobile/lib/pages/backup/drift_backup.page.dart @@ -96,10 +96,6 @@ class _DriftBackupPageState extends ConsumerState { await backupNotifier.startForegroundBackup(currentUser.id); } - Future stopBackup() async { - await backupNotifier.stopForegroundBackup(); - } - return Scaffold( appBar: AppBar( elevation: 0, @@ -136,9 +132,9 @@ class _DriftBackupPageState extends ConsumerState { const Divider(), BackupToggleButton( onStart: () async => await startBackup(), - onStop: () async { + onStop: () { syncSuccess = null; - await stopBackup(); + backupNotifier.stopForegroundBackup(); }, ), switch (error) { diff --git a/mobile/lib/pages/backup/drift_backup_album_selection.page.dart b/mobile/lib/pages/backup/drift_backup_album_selection.page.dart index 93ab659032..1732385675 100644 --- a/mobile/lib/pages/backup/drift_backup_album_selection.page.dart +++ b/mobile/lib/pages/backup/drift_backup_album_selection.page.dart @@ -112,16 +112,15 @@ class _DriftBackupAlbumSelectionPageState extends ConsumerState backgroundSync.hashAssets())); if (isBackupEnabled) { + backupNotifier.stopForegroundBackup(); unawaited( - backupNotifier.stopForegroundBackup().whenComplete( - () => backgroundSync.syncRemote().then((success) { - if (success) { - return backupNotifier.startForegroundBackup(user.id); - } else { - Logger('DriftBackupAlbumSelectionPage').warning('Background sync failed, not starting backup'); - } - }), - ), + backgroundSync.syncRemote().then((success) { + if (success) { + return backupNotifier.startForegroundBackup(user.id); + } else { + Logger('DriftBackupAlbumSelectionPage').warning('Background sync failed, not starting backup'); + } + }), ); } } diff --git a/mobile/lib/pages/backup/drift_backup_options.page.dart b/mobile/lib/pages/backup/drift_backup_options.page.dart index f43c8b6a8e..79891d7002 100644 --- a/mobile/lib/pages/backup/drift_backup_options.page.dart +++ b/mobile/lib/pages/backup/drift_backup_options.page.dart @@ -59,16 +59,15 @@ class DriftBackupOptionsPage extends ConsumerWidget { final backupNotifier = ref.read(driftBackupProvider.notifier); final backgroundSync = ref.read(backgroundSyncProvider); + backupNotifier.stopForegroundBackup(); unawaited( - backupNotifier.stopForegroundBackup().whenComplete( - () => backgroundSync.syncRemote().then((success) { - if (success) { - return backupNotifier.startForegroundBackup(currentUser.id); - } else { - Logger('DriftBackupOptionsPage').warning('Background sync failed, not starting backup'); - } - }), - ), + backgroundSync.syncRemote().then((success) { + if (success) { + return backupNotifier.startForegroundBackup(currentUser.id); + } else { + Logger('DriftBackupOptionsPage').warning('Background sync failed, not starting backup'); + } + }), ); } }, diff --git a/mobile/lib/providers/app_life_cycle.provider.dart b/mobile/lib/providers/app_life_cycle.provider.dart index 883c4f4835..68007f283a 100644 --- a/mobile/lib/providers/app_life_cycle.provider.dart +++ b/mobile/lib/providers/app_life_cycle.provider.dart @@ -232,7 +232,7 @@ class AppLifeCycleNotifier extends StateNotifier { } } - Future _performPause() async { + Future _performPause() { if (_ref.read(authProvider).isAuthenticated) { if (!Store.isBetaTimelineEnabled) { // Do not cancel backup if manual upload is in progress @@ -240,15 +240,13 @@ class AppLifeCycleNotifier extends StateNotifier { _ref.read(backupProvider.notifier).cancelBackup(); } } else { - await _ref.read(driftBackupProvider.notifier).stopForegroundBackup(); + _ref.read(driftBackupProvider.notifier).stopForegroundBackup(); } _ref.read(websocketProvider.notifier).disconnect(); } - try { - await LogService.I.flush(); - } catch (_) {} + return LogService.I.flush().catchError((_) {}); } Future handleAppDetached() async { diff --git a/mobile/lib/providers/backup/drift_backup.provider.dart b/mobile/lib/providers/backup/drift_backup.provider.dart index f6441c1184..93eaa42ab7 100644 --- a/mobile/lib/providers/backup/drift_backup.provider.dart +++ b/mobile/lib/providers/backup/drift_backup.provider.dart @@ -245,7 +245,7 @@ class DriftBackupNotifier extends StateNotifier { ); } - void updateError(BackupError error) async { + void updateError(BackupError error) { if (!mounted) { _logger.warning("Skip updateError: notifier disposed"); return; @@ -253,14 +253,14 @@ class DriftBackupNotifier extends StateNotifier { state = state.copyWith(error: error); } - void updateSyncing(bool isSyncing) async { + void updateSyncing(bool isSyncing) { state = state.copyWith(isSyncing: isSyncing); } - Future startForegroundBackup(String userId) async { + Future startForegroundBackup(String userId) { // Cancel any existing backup before starting a new one if (state.cancelToken != null) { - await stopForegroundBackup(); + stopForegroundBackup(); } state = state.copyWith(error: BackupError.none); @@ -280,7 +280,7 @@ class DriftBackupNotifier extends StateNotifier { ); } - Future stopForegroundBackup() async { + void stopForegroundBackup() { state.cancelToken?.complete(); _uploadSpeedManager.clear(); state = state.copyWith(cancelToken: null, uploadItems: {}, iCloudDownloadProgress: {}); @@ -398,7 +398,7 @@ class DriftBackupNotifier extends StateNotifier { } } -final driftBackupCandidateProvider = FutureProvider.autoDispose>((ref) async { +final driftBackupCandidateProvider = FutureProvider.autoDispose>((ref) { final user = ref.watch(currentUserProvider); if (user == null) { return [];