maybeMap<T> method

T maybeMap<T>({
  1. T notStarted()?,
  2. T starting()?,
  3. T disabled(
    1. bool serviceAvailable
    )?,
  4. T available(
    1. Position position
    )?,
  5. T denied()?,
  6. required T orElse(),
})

Implementation

T maybeMap<T>({
  T Function()? notStarted,
  T Function()? starting,
  T Function(bool serviceAvailable)? disabled,
  T Function(Position position)? available,
  T Function()? denied,
  required T Function() orElse,
}) {
  final value = this;
  if (denied != null && value is PermissionDeniedStatus) {
    if (disabled != null &&
        value.permission == LocationPermission.deniedForever) {
      return disabled(true);
    } else {
      return denied();
    }
  } else if (available != null && value is AvailableStatus) {
    return available(value.position);
  } else if (starting != null && value is StartingStatus) {
    return starting();
  } else if (disabled != null && value is DisabledStatus) {
    return disabled(false);
  } else if (notStarted != null && value is NotStartedStatus) {
    return notStarted();
  }
  return orElse();
}