Merge pull request #522 from dotnet-architecture/xamarin-oidcclient

Removed lazy creation of PermissionsService on iOS and Android.
This commit is contained in:
David Britch 2018-02-22 11:10:10 +00:00 committed by GitHub
commit bc955e657b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 8 additions and 9 deletions

View File

@ -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);
} }
} }
} }

View File

@ -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.");

View File

@ -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

View File

@ -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.");