diff --git a/lib/services/sync_service.dart b/lib/services/sync_service.dart index ea3470c6f..16c7871f2 100644 --- a/lib/services/sync_service.dart +++ b/lib/services/sync_service.dart @@ -145,8 +145,8 @@ class SyncService { return _lastSyncStatusEvent; } - Future onPermissionGranted() async { - await _localSyncService.setPermissionGranted(); + Future onPermissionGranted(PermissionState state) async { + await _localSyncService.onPermissionGranted(state); Bus.instance.fire(PermissionGrantedEvent()); _doSync(); } diff --git a/lib/ui/grant_permissions_widget.dart b/lib/ui/grant_permissions_widget.dart index 4d41176de..82d77c755 100644 --- a/lib/ui/grant_permissions_widget.dart +++ b/lib/ui/grant_permissions_widget.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:photo_manager/photo_manager.dart'; import 'package:photos/services/sync_service.dart'; import 'package:photos/ui/common_elements.dart'; +import 'package:photos/utils/toast_util.dart'; class GrantPermissionsWidget extends StatelessWidget { @override @@ -51,9 +52,13 @@ class GrantPermissionsWidget extends StatelessWidget { "grant permission", fontSize: 16, onPressed: () async { - final granted = await PhotoManager.requestPermission(); - if (granted) { - await SyncService.instance.onPermissionGranted(); + final state = await PhotoManager.requestPermissionExtend(); + if (state == PermissionState.authorized || + state == PermissionState.limited) { + await SyncService.instance.onPermissionGranted(state); + } else if (state == PermissionState.denied) { + showToast("please grant permissions to access the gallery"); + PhotoManager.openSetting(); } }, ),