浏览代码

Merge pull request #31 from ente-io/android_perm_check

Vishnu Mohandas 3 年之前
父节点
当前提交
31a9aca08e
共有 1 个文件被更改,包括 9 次插入0 次删除
  1. 9 0
      lib/services/local_sync_service.dart

+ 9 - 0
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");