request static method

Request permissions

Implementation

static Future<Map<PermissionType, PermissionStatus>> request(
  List<PermissionType> permissions,
) async {
  try {
    final permissionStrings = permissions.map((p) => p.platformValue).toList();
    final result = await _channel.invokeMethod<Map>(
      'requestPermissions',
      {'permissions': permissionStrings},
    );

    if (result == null) return {};

    final Map<PermissionType, PermissionStatus> statusMap = {};
    for (var permission in permissions) {
      final statusString = result[permission.platformValue]?.toString();
      if (statusString != null) {
        statusMap[permission] = PermissionStatus.fromString(statusString);
      }
    }
    return statusMap;
  } catch (e) {
    return {};
  }
}