From 97bdcffd9d317bb42bcbf0120650fc0d7ebd48c3 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Wed, 2 Jul 2025 13:12:33 +0530 Subject: [PATCH] fix: isBackground check --- mobile/lib/main.dart | 2 +- .../services/album_home_widget_service.dart | 19 +++++++++---------- mobile/lib/services/home_widget_service.dart | 4 ++-- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/mobile/lib/main.dart b/mobile/lib/main.dart index a9294e45ff..404a60da91 100644 --- a/mobile/lib/main.dart +++ b/mobile/lib/main.dart @@ -123,7 +123,7 @@ Future _homeWidgetSync([bool isBackground = false]) async { } try { - await HomeWidgetService.instance.initHomeWidget(); + await HomeWidgetService.instance.initHomeWidget(isBackground); } catch (e, s) { _logger.severe("Error in syncing home widget", e, s); } diff --git a/mobile/lib/services/album_home_widget_service.dart b/mobile/lib/services/album_home_widget_service.dart index 3e32d93818..9513427e1f 100644 --- a/mobile/lib/services/album_home_widget_service.dart +++ b/mobile/lib/services/album_home_widget_service.dart @@ -12,7 +12,6 @@ import 'package:photos/models/collection/collection.dart'; import 'package:photos/models/collection/collection_items.dart'; import 'package:photos/models/file/file.dart'; import 'package:photos/service_locator.dart'; -import "package:photos/services/app_lifecycle_service.dart"; import 'package:photos/services/collections_service.dart'; import 'package:photos/services/favorites_service.dart'; import 'package:photos/services/home_widget_service.dart'; @@ -66,9 +65,9 @@ class AlbumHomeWidgetService { await _prefs.setString(ALBUMS_LAST_HASH_KEY, hash); } - Future initAlbumHomeWidget() async { + Future initAlbumHomeWidget(bool isBg) async { await HomeWidgetService.instance.computeLock.synchronized(() async { - if (await _hasAnyBlockers()) { + if (await _hasAnyBlockers(isBg)) { await clearWidget(); return; } @@ -134,13 +133,13 @@ class AlbumHomeWidgetService { _logger.info("Checking pending albums sync"); if (await _shouldUpdateWidgetCache()) { - await initAlbumHomeWidget(); + await initAlbumHomeWidget(false); } } Future _refreshOnSelection() async { final lastHash = getAlbumsLastHash(); - final selectedAlbumIds = await _getEffectiveSelectedAlbumIds(); + final selectedAlbumIds = await _getEffectiveSelectedAlbumIds(false); final currentHash = _calculateHash(selectedAlbumIds); if (lastHash != null && currentHash == lastHash) { _logger.info("No changes detected in albums"); @@ -148,7 +147,7 @@ class AlbumHomeWidgetService { } await setSelectionChange(true); - await initAlbumHomeWidget(); + await initAlbumHomeWidget(false); } List getAlbumsByIds(List albumIds) { @@ -233,7 +232,7 @@ class AlbumHomeWidgetService { return hash; } - Future _hasAnyBlockers() async { + Future _hasAnyBlockers([bool isBg = false]) async { // Check if first import is completed final hasCompletedFirstImport = LocalSyncService.instance.hasCompletedFirstImport(); @@ -242,7 +241,7 @@ class AlbumHomeWidgetService { } // Check if selected albums exist - final selectedAlbumIds = await _getEffectiveSelectedAlbumIds(); + final selectedAlbumIds = await _getEffectiveSelectedAlbumIds(isBg); final albums = getAlbumsByIds(selectedAlbumIds); if (albums.isEmpty) { @@ -290,12 +289,12 @@ class AlbumHomeWidgetService { return true; } - Future> _getEffectiveSelectedAlbumIds() async { + Future> _getEffectiveSelectedAlbumIds([bool isBg = false]) async { final selectedAlbumIds = getSelectedAlbumIds(); // If no albums selected, use favorites as default if (selectedAlbumIds == null || selectedAlbumIds.isEmpty) { - if (!AppLifecycleService.instance.isForeground) { + if (isBg) { await FavoritesService.instance.initFav(); } final favoriteId = diff --git a/mobile/lib/services/home_widget_service.dart b/mobile/lib/services/home_widget_service.dart index 45730d83e6..3c86fbe51b 100644 --- a/mobile/lib/services/home_widget_service.dart +++ b/mobile/lib/services/home_widget_service.dart @@ -71,8 +71,8 @@ class HomeWidgetService { hw.HomeWidget.setAppGroupId(id).ignore(); } - Future initHomeWidget() async { - await AlbumHomeWidgetService.instance.initAlbumHomeWidget(); + Future initHomeWidget([bool isBg = false]) async { + await AlbumHomeWidgetService.instance.initAlbumHomeWidget(isBg); await PeopleHomeWidgetService.instance.initPeopleHomeWidget(); await MemoryHomeWidgetService.instance.initMemoryHomeWidget(); }