in LocationHelper/LocationHelper.cs [65:97]
public static async Task<LocationData> GetCurrentLocationAsync()
{
try
{
// Request permission to access the user's location.
var accessStatus = await Geolocator.RequestAccessAsync();
switch (accessStatus)
{
case GeolocationAccessStatus.Allowed:
LocationHelper.CancellationTokenSource = new CancellationTokenSource();
var token = LocationHelper.CancellationTokenSource.Token;
Geoposition position = await Geolocator.GetGeopositionAsync().AsTask(token);
return new LocationData { Position = position.Coordinate.Point.Position };
case GeolocationAccessStatus.Denied:
case GeolocationAccessStatus.Unspecified:
default:
return null;
}
}
catch (TaskCanceledException)
{
// Do nothing.
}
finally
{
LocationHelper.CancellationTokenSource = null;
}
return null;
}