diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/App.xaml.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/App.xaml.cs index adecba788..207d076f9 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/App.xaml.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/App.xaml.cs @@ -79,7 +79,6 @@ namespace eShopOnContainers try { var position = await locator.GetPositionAsync(); - _settingsService.Latitude = position.Latitude.ToString(); _settingsService.Longitude = position.Longitude.ToString(); } diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Activities/MainActivity.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Activities/MainActivity.cs index 4cb0bc83f..c6f49b090 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Activities/MainActivity.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Activities/MainActivity.cs @@ -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); } } } diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Services/LocationServiceImplementation.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Services/LocationServiceImplementation.cs index f44527741..7d6f5f40f 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Services/LocationServiceImplementation.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Services/LocationServiceImplementation.cs @@ -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 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."); diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Services/PermissionsService.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Services/PermissionsService.cs index a9b1a0845..c1fbd2f98 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Services/PermissionsService.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Services/PermissionsService.cs @@ -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 _results; IList _requestedPermissions; + public static Lazy Current = new Lazy(() => new PermissionsService(), LazyThreadSafetyMode.PublicationOnly); + #region Internal Implementation List GetManifestNames(Permission permission)