From 40d56230570a22269a19061ce1abbb3c11fd50d1 Mon Sep 17 00:00:00 2001 From: Vishnu Mohandas Date: Thu, 1 Jul 2021 13:14:33 +0530 Subject: [PATCH] Request extended permissions and save returned state --- lib/services/sync_service.dart | 4 ++-- lib/ui/grant_permissions_widget.dart | 11 ++++++++--- 2 files changed, 10 insertions(+), 5 deletions(-) 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(); } }, ),