getUserCurrentPosition static method

Future<Position> getUserCurrentPosition(
  1. String? googleKey, [
  2. String? address,
  3. bool forceHighAccuracy = false
])

Implementation

static Future<Position> getUserCurrentPosition(
  String? googleKey, [
  String? address,
  bool forceHighAccuracy = false,
]) async {
  if (forceHighAccuracy) {
    return await _fetchPositionFromHighAccuracy();
  }
  if (address != null) {
    return _fetchPositionFromGeocodingService(address, googleKey!);
  } else {
    var cachePosition = await _fetchPositionFromCache();

    if (cachePosition != null) {
      _fetchPositionFromHighAccuracy();

      return cachePosition;
    }

    var lastPosition = await _fetchPositionFromLastLocation();

    if (lastPosition != null) {
      _fetchPositionFromHighAccuracy();

      return lastPosition;
    }

    return await _fetchPositionFromHighAccuracy();
  }
}