diff --git a/mobile/lib/modules/backup/providers/backup.provider.dart b/mobile/lib/modules/backup/providers/backup.provider.dart index daad2c4fd3..ac40fbd304 100644 --- a/mobile/lib/modules/backup/providers/backup.provider.dart +++ b/mobile/lib/modules/backup/providers/backup.provider.dart @@ -587,6 +587,7 @@ class BackupNotifier extends StateNotifier { log.warning("WARNING [resumeBackup] failed to acquireLock"); return; } + await Future.wait([ Hive.openBox(hiveBackupInfoBox), Hive.openBox(duplicatedAssetsBox), @@ -597,16 +598,21 @@ class BackupNotifier extends StateNotifier { Set selectedAlbums = state.selectedBackupAlbums; Set excludedAlbums = state.excludedBackupAlbums; if (albums != null) { - selectedAlbums = _updateAlbumsBackupTime( - selectedAlbums, - albums.selectedAlbumIds, - albums.lastSelectedBackupTime, - ); - excludedAlbums = _updateAlbumsBackupTime( - excludedAlbums, - albums.excludedAlbumsIds, - albums.lastExcludedBackupTime, - ); + if (selectedAlbums.isNotEmpty) { + selectedAlbums = _updateAlbumsBackupTime( + selectedAlbums, + albums.selectedAlbumIds, + albums.lastSelectedBackupTime, + ); + } + + if (excludedAlbums.isNotEmpty) { + excludedAlbums = _updateAlbumsBackupTime( + excludedAlbums, + albums.excludedAlbumsIds, + albums.lastExcludedBackupTime, + ); + } } final Box backgroundBox = Hive.box(backgroundBackupInfoBox); state = state.copyWith( diff --git a/mobile/lib/modules/home/views/home_page.dart b/mobile/lib/modules/home/views/home_page.dart index 86296ae702..ca3bc4b2d6 100644 --- a/mobile/lib/modules/home/views/home_page.dart +++ b/mobile/lib/modules/home/views/home_page.dart @@ -67,7 +67,7 @@ class HomePage extends HookConsumerWidget { ); void reloadAllAsset() { - ref.read(assetProvider.notifier).getAllAsset(); + ref.watch(assetProvider.notifier).getAllAsset(); } Widget buildBody() { diff --git a/mobile/lib/routing/auth_guard.dart b/mobile/lib/routing/auth_guard.dart index 53693ea1de..4e907a768d 100644 --- a/mobile/lib/routing/auth_guard.dart +++ b/mobile/lib/routing/auth_guard.dart @@ -11,6 +11,8 @@ class AuthGuard extends AutoRouteGuard { @override void onNavigation(NavigationResolver resolver, StackRouter router) async { try { + // temporary fix for race condition that the _apiService + // get called before accessToken is set var userInfoHiveBox = await Hive.openBox(userInfoBox); var accessToken = userInfoHiveBox.get(accessTokenKey); _apiService.setAccessToken(accessToken); diff --git a/mobile/lib/shared/services/asset.service.dart b/mobile/lib/shared/services/asset.service.dart index 724cc53b20..25c19b1a80 100644 --- a/mobile/lib/shared/services/asset.service.dart +++ b/mobile/lib/shared/services/asset.service.dart @@ -35,6 +35,12 @@ class AssetService { /// Returns `null` if the server state did not change, else list of assets Future?, String?>> getRemoteAssets({String? etag}) async { try { + // temporary fix for race condition that the _apiService + // get called before accessToken is set + var userInfoHiveBox = await Hive.openBox(userInfoBox); + var accessToken = userInfoHiveBox.get(accessTokenKey); + _apiService.setAccessToken(accessToken); + final Pair, String?>? remote = await _apiService.assetApi.getAllAssetsWithETag(eTag: etag); if (remote == null) {