LocationService threading issues fixed on Android.
This commit is contained in:
parent
01cf30ebb8
commit
6e7a0ace16
@ -79,7 +79,6 @@ namespace eShopOnContainers
|
||||
try
|
||||
{
|
||||
var position = await locator.GetPositionAsync();
|
||||
|
||||
_settingsService.Latitude = position.Latitude.ToString();
|
||||
_settingsService.Longitude = position.Longitude.ToString();
|
||||
}
|
||||
|
@ -10,7 +10,6 @@ using FFImageLoading.Forms.Droid;
|
||||
using System;
|
||||
using Xamarin.Forms.Platform.Android;
|
||||
using eShopOnContainers.Droid.Services;
|
||||
using eShopOnContainers.Core.Services.Permissions;
|
||||
|
||||
namespace eShopOnContainers.Droid.Activities
|
||||
{
|
||||
@ -21,8 +20,6 @@ namespace eShopOnContainers.Droid.Activities
|
||||
ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
|
||||
public class MainActivity : FormsAppCompatActivity
|
||||
{
|
||||
public static IPermissionsService PermissionsService = new PermissionsService();
|
||||
|
||||
protected override void OnCreate(Bundle bundle)
|
||||
{
|
||||
FormsAppCompatActivity.ToolbarResource = Resource.Layout.Toolbar;
|
||||
@ -60,7 +57,7 @@ namespace eShopOnContainers.Droid.Activities
|
||||
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Permission[] grantResults)
|
||||
{
|
||||
base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
((PermissionsService)PermissionsService).OnRequestPermissionResult(requestCode, permissions, grantResults);
|
||||
((PermissionsService)PermissionsService.Current.Value).OnRequestPermissionResult(requestCode, permissions, grantResults);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -5,7 +5,6 @@ using Android.OS;
|
||||
using eShopOnContainers.Core.Models.Location;
|
||||
using eShopOnContainers.Core.Models.Permissions;
|
||||
using eShopOnContainers.Core.Services.Location;
|
||||
using eShopOnContainers.Droid.Activities;
|
||||
using eShopOnContainers.Droid.Services;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@ -45,12 +44,12 @@ namespace eShopOnContainers.Droid.Services
|
||||
|
||||
async Task<bool> CheckPermissionsAsync()
|
||||
{
|
||||
var status = await MainActivity.PermissionsService.CheckPermissionStatusAsync(Permission.Location);
|
||||
var status = await PermissionsService.Current.Value.CheckPermissionStatusAsync(Permission.Location);
|
||||
if (status != PermissionStatus.Granted)
|
||||
{
|
||||
Console.WriteLine("Currently do not have Location permissions, requesting permissions.");
|
||||
|
||||
var request = await MainActivity.PermissionsService.RequestPermissionsAsync(Permission.Location);
|
||||
var request = await PermissionsService.Current.Value.RequestPermissionsAsync(Permission.Location);
|
||||
if (request[Permission.Location] != PermissionStatus.Granted)
|
||||
{
|
||||
Console.WriteLine("Location permission denied.");
|
||||
|
@ -8,6 +8,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace eShopOnContainers.Droid.Services
|
||||
@ -20,6 +21,8 @@ namespace eShopOnContainers.Droid.Services
|
||||
Dictionary<Permission, PermissionStatus> _results;
|
||||
IList<string> _requestedPermissions;
|
||||
|
||||
public static Lazy<IPermissionsService> Current = new Lazy<IPermissionsService>(() => new PermissionsService(), LazyThreadSafetyMode.PublicationOnly);
|
||||
|
||||
#region Internal Implementation
|
||||
|
||||
List<string> GetManifestNames(Permission permission)
|
||||
|
Loading…
x
Reference in New Issue
Block a user