requestPermissionsInOrder function
Requests permissions one at a time, skipping those already granted.
This is the default PermissionRequester.
One at a time is not a style choice: Android denies - without showing a dialog - any request made while another one is up, and a permission that unlocks another one can only be granted if asked first.
Implementation
Future<void> requestPermissionsInOrder(List<Permission> permissions) async {
final asked = <Permission>{};
for (final permission in permissions.expand(_withPrerequisite)) {
if (!asked.add(permission)) continue;
if (await permission.isGranted) continue;
final status = await permission.request();
info('Permission ${permission.toString().split('.').last}: ${status.name}');
}
}