requestPermissions static method

Future<List<Permissions>> requestPermissions(
  1. List<PermissionType> permissionNameList
)

Implementation

static Future<List<Permissions>> requestPermissions(List<PermissionType> permissionNameList) async {
  List<String> list = [];
  permissionNameList.forEach((p) {
    list.add(p.name);
  });
  var status = await channel.invokeMethod("requestPermissions", {"permissions": list});
  List<Permissions> permissionStatusList = [];
  for (int i = 0; i < status.length; i++) {
    PermissionStatus permissionStatus;
    switch (status[i]) {
      case 0:
        permissionStatus = PermissionStatus.ALLOW;
        break;
      case 1:
        permissionStatus = PermissionStatus.DENY;
        break;
      case 2:
        permissionStatus = PermissionStatus.NOT_DECIDED;
        break;
      case 3:
        permissionStatus = PermissionStatus.NOT_AGAIN;
        break;
      default:
        permissionStatus = PermissionStatus.NOT_DECIDED;
        break;
    }
    permissionStatusList.add(Permissions(permissionType: permissionNameList[i], status: permissionStatus));
  }
  return permissionStatusList;
}