request method

Request the user for access to this Permission, if access hasn't already been grant access before.

Returns the new PermissionStatus.

Implementation

Future<PermissionStatus> request() async {
  final permissionStatus =
      (await [this].request())[this] ?? PermissionStatus.denied;

  if (permissionStatus.isDenied) {
    _onDenied?.call();
  } else if (permissionStatus.isGranted) {
    _onGranted?.call();
  } else if (permissionStatus.isPermanentlyDenied) {
    _onPermanentlyDenied?.call();
  } else if (permissionStatus.isRestricted) {
    _onRestricted?.call();
  } else if (permissionStatus.isLimited) {
    _onLimited?.call();
  } else if (permissionStatus.isProvisional) {
    _onProvisional?.call();
  }

  return permissionStatus;
}