checkPermission static method

Future<bool> checkPermission(
  1. ImageSource imageSource, {
  2. dynamic permissionError(
    1. Permission?
    )?,
})

Implementation

static Future<bool> checkPermission(ImageSource imageSource,
    {Function(Permission?)? permissionError}) async {
  PermissionStatus status;

  if (imageSource == ImageSource.camera) {
    status = await Permission.camera.status;

    if (status.isDenied) {
      await Permission.camera.request();
      return false;
    }

    if (status.isPermanentlyDenied || status.isRestricted) {
      permissionError!(Permission.camera);
      return false;
    }
  }

  status = await Permission.photos.status;

  if (status.isPermanentlyDenied || status.isRestricted) {
    permissionError!(Permission.photos);
    return false;
  }

  await Permission.photos.request();
  return true;
}