streamError function

  1. @visibleForTesting
void streamError(
  1. StreamController<LocationResult> streamController,
  2. dynamic error
)

Implementation

@visibleForTesting
// ignore: public_member_api_docs
void streamError(
  StreamController<LocationResult> streamController,
  // ignore: avoid_annotating_with_dynamic
  dynamic error,
) {
  if (error is PlatformException) {
    String? permissionStatusString;
    if (error.details is Map) {
      final details = error.details as Map;
      permissionStatusString = details['permissionStatus'] as String?;
    }
    final errorCode = error.code.toErrorCode();
    streamController.add(
      LocationResult.error(
        Error(
          message: error.message ??
              (errorCode == ErrorCode.unknown
                  ? 'Unknown OS level error'
                  : 'Unknown permission related error'),
          errorCode: errorCode,
        ),
        permissionStatus: permissionStatusString.toPermissionStatus(),
      ),
    );
    return;
  }

  streamController.add(
    LocationResult.unknownError,
  );
}