diff --git a/lib/services/local_sync_service.dart b/lib/services/local_sync_service.dart index 1220a24ca..e8c48ec67 100644 --- a/lib/services/local_sync_service.dart +++ b/lib/services/local_sync_service.dart @@ -1,4 +1,5 @@ import 'dart:async'; +import 'dart:io'; import 'package:computer/computer.dart'; import 'package:logging/logging.dart'; @@ -54,6 +55,14 @@ class LocalSyncService { _logger.info("Skipping local sync since permission has not been granted"); return; } + if (Platform.isAndroid && !_isBackground) { + final permissionState = await PhotoManager.requestPermissionExtend(); + if (permissionState != PermissionState.authorized) { + _logger.severe("sync requested with invalid permission", + permissionState.toString()); + return; + } + } final existingLocalFileIDs = await _db.getExistingLocalFileIDs(); _logger.info( existingLocalFileIDs.length.toString() + " localIDs were discovered");