Merge pull request #522 from dotnet-architecture/xamarin-oidcclient
Removed lazy creation of PermissionsService on iOS and Android.
This commit is contained in:
commit
bc955e657b
@ -57,7 +57,7 @@ namespace eShopOnContainers.Droid.Activities
|
|||||||
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Permission[] grantResults)
|
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Permission[] grantResults)
|
||||||
{
|
{
|
||||||
base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
|
base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||||
((PermissionsService)PermissionsService.Current.Value).OnRequestPermissionResult(requestCode, permissions, grantResults);
|
((PermissionsService)PermissionsService.Instance).OnRequestPermissionResult(requestCode, permissions, grantResults);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -44,12 +44,12 @@ namespace eShopOnContainers.Droid.Services
|
|||||||
|
|
||||||
async Task<bool> CheckPermissionsAsync()
|
async Task<bool> CheckPermissionsAsync()
|
||||||
{
|
{
|
||||||
var status = await PermissionsService.Current.Value.CheckPermissionStatusAsync(Permission.Location);
|
var status = await PermissionsService.Instance.CheckPermissionStatusAsync(Permission.Location);
|
||||||
if (status != PermissionStatus.Granted)
|
if (status != PermissionStatus.Granted)
|
||||||
{
|
{
|
||||||
Console.WriteLine("Currently do not have Location permissions, requesting permissions.");
|
Console.WriteLine("Currently do not have Location permissions, requesting permissions.");
|
||||||
|
|
||||||
var request = await PermissionsService.Current.Value.RequestPermissionsAsync(Permission.Location);
|
var request = await PermissionsService.Instance.RequestPermissionsAsync(Permission.Location);
|
||||||
if (request[Permission.Location] != PermissionStatus.Granted)
|
if (request[Permission.Location] != PermissionStatus.Granted)
|
||||||
{
|
{
|
||||||
Console.WriteLine("Location permission denied.");
|
Console.WriteLine("Location permission denied.");
|
||||||
|
@ -8,7 +8,6 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading;
|
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace eShopOnContainers.Droid.Services
|
namespace eShopOnContainers.Droid.Services
|
||||||
@ -21,7 +20,7 @@ namespace eShopOnContainers.Droid.Services
|
|||||||
Dictionary<Permission, PermissionStatus> _results;
|
Dictionary<Permission, PermissionStatus> _results;
|
||||||
IList<string> _requestedPermissions;
|
IList<string> _requestedPermissions;
|
||||||
|
|
||||||
public static Lazy<IPermissionsService> Current = new Lazy<IPermissionsService>(() => new PermissionsService(), LazyThreadSafetyMode.PublicationOnly);
|
public static IPermissionsService Instance = new PermissionsService();
|
||||||
|
|
||||||
#region Internal Implementation
|
#region Internal Implementation
|
||||||
|
|
||||||
|
@ -15,24 +15,24 @@ namespace eShopOnContainers.iOS.Services
|
|||||||
{
|
{
|
||||||
public class LocationServiceImplementation : ILocationServiceImplementation
|
public class LocationServiceImplementation : ILocationServiceImplementation
|
||||||
{
|
{
|
||||||
Lazy<IPermissionsService> _permissionsService;
|
IPermissionsService _permissionsService;
|
||||||
|
|
||||||
public LocationServiceImplementation()
|
public LocationServiceImplementation()
|
||||||
{
|
{
|
||||||
DesiredAccuracy = 100;
|
DesiredAccuracy = 100;
|
||||||
_permissionsService = new Lazy<IPermissionsService>(() => new PermissionsService(), LazyThreadSafetyMode.PublicationOnly);
|
_permissionsService = new PermissionsService();
|
||||||
}
|
}
|
||||||
|
|
||||||
#region Internal Implementation
|
#region Internal Implementation
|
||||||
|
|
||||||
async Task<bool> CheckPermissions(Permission permission)
|
async Task<bool> CheckPermissions(Permission permission)
|
||||||
{
|
{
|
||||||
var status = await _permissionsService.Value.CheckPermissionStatusAsync(permission);
|
var status = await _permissionsService.CheckPermissionStatusAsync(permission);
|
||||||
if (status != PermissionStatus.Granted)
|
if (status != PermissionStatus.Granted)
|
||||||
{
|
{
|
||||||
Console.WriteLine("Currently do not have Location permissions, requesting permissions");
|
Console.WriteLine("Currently do not have Location permissions, requesting permissions");
|
||||||
|
|
||||||
var request = await _permissionsService.Value.RequestPermissionsAsync(permission);
|
var request = await _permissionsService.RequestPermissionsAsync(permission);
|
||||||
if (request[permission] != PermissionStatus.Granted)
|
if (request[permission] != PermissionStatus.Granted)
|
||||||
{
|
{
|
||||||
Console.WriteLine("Location permission denied, can not get positions async.");
|
Console.WriteLine("Location permission denied, can not get positions async.");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user