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; return _lastSyncStatusEvent;
} }
Future<void> onPermissionGranted() async { Future<void> onPermissionGranted(PermissionState state) async {
await _localSyncService.setPermissionGranted(); await _localSyncService.onPermissionGranted(state);
Bus.instance.fire(PermissionGrantedEvent()); Bus.instance.fire(PermissionGrantedEvent());
_doSync(); _doSync();
} }

View file

@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
import 'package:photo_manager/photo_manager.dart'; import 'package:photo_manager/photo_manager.dart';
import 'package:photos/services/sync_service.dart'; import 'package:photos/services/sync_service.dart';
import 'package:photos/ui/common_elements.dart'; import 'package:photos/ui/common_elements.dart';
import 'package:photos/utils/toast_util.dart';
class GrantPermissionsWidget extends StatelessWidget { class GrantPermissionsWidget extends StatelessWidget {
@override @override
@ -51,9 +52,13 @@ class GrantPermissionsWidget extends StatelessWidget {
"grant permission", "grant permission",
fontSize: 16, fontSize: 16,
onPressed: () async { onPressed: () async {
final granted = await PhotoManager.requestPermission(); final state = await PhotoManager.requestPermissionExtend();
if (granted) { if (state == PermissionState.authorized ||
await SyncService.instance.onPermissionGranted(); state == PermissionState.limited) {
await SyncService.instance.onPermissionGranted(state);
} else if (state == PermissionState.denied) {
showToast("please grant permissions to access the gallery");
PhotoManager.openSetting();
} }
}, },
), ),