|
@ -3,6 +3,8 @@ using eShopOnContainers.Core.Helpers; |
|
|
using eShopOnContainers.Services; |
|
|
using eShopOnContainers.Services; |
|
|
using eShopOnContainers.Core.ViewModels.Base; |
|
|
using eShopOnContainers.Core.ViewModels.Base; |
|
|
using System.Threading.Tasks; |
|
|
using System.Threading.Tasks; |
|
|
|
|
|
using eShopOnContainers.Core.Models.Location; |
|
|
|
|
|
using eShopOnContainers.Core.Services.Location; |
|
|
using Plugin.Geolocator; |
|
|
using Plugin.Geolocator; |
|
|
using Xamarin.Forms; |
|
|
using Xamarin.Forms; |
|
|
using Xamarin.Forms.Xaml; |
|
|
using Xamarin.Forms.Xaml; |
|
@ -52,6 +54,13 @@ namespace eShopOnContainers |
|
|
{ |
|
|
{ |
|
|
await GetRealLocation(); |
|
|
await GetRealLocation(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (!Settings.UseMocks && !string.IsNullOrEmpty(Settings.UserId)) |
|
|
|
|
|
{ |
|
|
|
|
|
await SendCurrentLocation(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
base.OnResume(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
protected override void OnSleep() |
|
|
protected override void OnSleep() |
|
@ -59,14 +68,10 @@ namespace eShopOnContainers |
|
|
// Handle when your app sleeps
|
|
|
// Handle when your app sleeps
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
protected override void OnResume() |
|
|
|
|
|
{ |
|
|
|
|
|
// Handle when your app resumes
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private async Task GetRealLocation() |
|
|
private async Task GetRealLocation() |
|
|
{ |
|
|
{ |
|
|
var locator = CrossGeolocator.Current; |
|
|
var locator = CrossGeolocator.Current; |
|
|
|
|
|
locator.AllowsBackgroundUpdates = true; |
|
|
locator.DesiredAccuracy = 50; |
|
|
locator.DesiredAccuracy = 50; |
|
|
|
|
|
|
|
|
var position = await locator.GetPositionAsync(20000); |
|
|
var position = await locator.GetPositionAsync(20000); |
|
@ -74,5 +79,18 @@ namespace eShopOnContainers |
|
|
Settings.Latitude = position.Latitude; |
|
|
Settings.Latitude = position.Latitude; |
|
|
Settings.Longitude = position.Longitude; |
|
|
Settings.Longitude = position.Longitude; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private async Task SendCurrentLocation() |
|
|
|
|
|
{ |
|
|
|
|
|
var location = new Location |
|
|
|
|
|
{ |
|
|
|
|
|
Latitude = Settings.Latitude, |
|
|
|
|
|
Longitude = Settings.Longitude |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
var locationService = ViewModelLocator.Resolve<ILocationService>(); |
|
|
|
|
|
await locationService.UpdateUserLocation(location, |
|
|
|
|
|
Settings.AuthAccessToken); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
} |