map<T> method

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

Implementation

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