Request extended permissions and save returned state

This commit is contained in:
Vishnu Mohandas 2021-07-01 13:14:33 +05:30
parent 124c064379
commit 40d5623057
2 changed files with 10 additions and 5 deletions

View file

@ -145,8 +145,8 @@ class SyncService {
return _lastSyncStatusEvent;
}
Future<void> onPermissionGranted() async {
await _localSyncService.setPermissionGranted();
Future<void> onPermissionGranted(PermissionState state) async {
await _localSyncService.onPermissionGranted(state);
Bus.instance.fire(PermissionGrantedEvent());
_doSync();
}

View file

@ -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();
}
},
),