From 6bb8903b056d1bc913b1786fdca96f107fd41509 Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 17 Sep 2025 10:41:33 -0500 Subject: [PATCH] chore: revert poll counts from DB rather than using callbacks from library (#22117) (#22140) Revert "fix: poll counts from DB rather than using callbacks from library (#22117)" This reverts commit 29fd981587c8be4587be26bd248b2873df434cb4. --- .../lib/pages/backup/drift_backup.page.dart | 41 ------------------- .../backup/drift_backup.provider.dart | 6 ++- 2 files changed, 5 insertions(+), 42 deletions(-) diff --git a/mobile/lib/pages/backup/drift_backup.page.dart b/mobile/lib/pages/backup/drift_backup.page.dart index dc452d49d3..bf9ad43f9c 100644 --- a/mobile/lib/pages/backup/drift_backup.page.dart +++ b/mobile/lib/pages/backup/drift_backup.page.dart @@ -1,5 +1,3 @@ -import 'dart:async'; - import 'package:auto_route/auto_route.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; @@ -11,13 +9,11 @@ import 'package:immich_mobile/extensions/build_context_extensions.dart'; import 'package:immich_mobile/extensions/theme_extensions.dart'; import 'package:immich_mobile/extensions/translate_extensions.dart'; import 'package:immich_mobile/presentation/widgets/backup/backup_toggle_button.widget.dart'; -import 'package:immich_mobile/providers/app_settings.provider.dart'; import 'package:immich_mobile/providers/background_sync.provider.dart'; import 'package:immich_mobile/providers/backup/backup_album.provider.dart'; import 'package:immich_mobile/providers/backup/drift_backup.provider.dart'; import 'package:immich_mobile/providers/user.provider.dart'; import 'package:immich_mobile/routing/router.dart'; -import 'package:immich_mobile/services/app_settings.service.dart'; import 'package:immich_mobile/widgets/backup/backup_info_card.dart'; @RoutePage() @@ -29,8 +25,6 @@ class DriftBackupPage extends ConsumerStatefulWidget { } class _DriftBackupPageState extends ConsumerState { - Timer? _countPoller; - @override void initState() { super.initState(); @@ -39,42 +33,9 @@ class _DriftBackupPageState extends ConsumerState { return; } - if (ref.read(appSettingsServiceProvider).getSetting(AppSettingsEnum.enableBackup)) { - _startCountPolling(); - } - ref.read(driftBackupProvider.notifier).getBackupStatus(currentUser.id); } - void _startCountPolling() { - _countPoller?.cancel(); - _countPoller = Timer.periodic(const Duration(seconds: 5), (timer) async { - if (!mounted) { - timer.cancel(); - return; - } - - final currentUser = ref.read(currentUserProvider); - if (currentUser == null) { - timer.cancel(); - return; - } - - await ref.read(driftBackupProvider.notifier).getBackupStatus(currentUser.id); - }); - } - - void _stopCountPolling() { - _countPoller?.cancel(); - _countPoller = null; - } - - @override - void dispose() { - _stopCountPolling(); - super.dispose(); - } - @override Widget build(BuildContext context) { final selectedAlbum = ref @@ -94,12 +55,10 @@ class _DriftBackupPageState extends ConsumerState { await backgroundManager.syncRemote(); await backupNotifier.getBackupStatus(currentUser.id); await backupNotifier.startBackup(currentUser.id); - _startCountPolling(); } Future stopBackup() async { await backupNotifier.cancel(); - _stopCountPolling(); } return Scaffold( diff --git a/mobile/lib/providers/backup/drift_backup.provider.dart b/mobile/lib/providers/backup/drift_backup.provider.dart index 1de7f75135..40ec7b1077 100644 --- a/mobile/lib/providers/backup/drift_backup.provider.dart +++ b/mobile/lib/providers/backup/drift_backup.provider.dart @@ -12,8 +12,8 @@ import 'package:immich_mobile/infrastructure/repositories/backup.repository.dart import 'package:immich_mobile/providers/infrastructure/asset.provider.dart'; import 'package:immich_mobile/providers/user.provider.dart'; import 'package:immich_mobile/services/upload.service.dart'; -import 'package:immich_mobile/utils/debug_print.dart'; import 'package:logging/logging.dart'; +import 'package:immich_mobile/utils/debug_print.dart'; class EnqueueStatus { final int enqueueCount; @@ -234,6 +234,10 @@ class DriftBackupNotifier extends StateNotifier { switch (update.status) { case TaskStatus.complete: + if (update.task.group == kBackupGroup) { + state = state.copyWith(backupCount: state.backupCount + 1, remainderCount: state.remainderCount - 1); + } + // Remove the completed task from the upload items if (state.uploadItems.containsKey(taskId)) { Future.delayed(const Duration(milliseconds: 1000), () {