diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Location/ActivityType.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Location/ActivityType.cs deleted file mode 100644 index 3240b1bad..000000000 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Location/ActivityType.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace eShopOnContainers.Core.Models.Location -{ - public enum ActivityType - { - Other, - AutomotiveNavigation, - Fitness, - OtherNavigation - } -} diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Location/Address.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Location/Address.cs deleted file mode 100644 index a4be9e1c7..000000000 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Location/Address.cs +++ /dev/null @@ -1,38 +0,0 @@ -using System; - -namespace eShopOnContainers.Core.Models.Location -{ - public class Address - { - public double Latitude { get; set; } - public double Longitude { get; set; } - public string CountryCode { get; set; } - public string CountryName { get; set; } - public string FeatureName { get; set; } - public string PostalCode { get; set; } - public string SubLocality { get; set; } - public string Thoroughfare { get; set; } - public string SubThoroughfare { get; set; } - public string Locality { get; set; } - public string AdminArea { get; set; } - public string SubAdminArea { get; set; } - - public Address(Address address) - { - if (address == null) - throw new ArgumentNullException(nameof(address)); - - CountryCode = address.CountryCode; - CountryName = address.CountryName; - Latitude = address.Latitude; - Longitude = address.Longitude; - FeatureName = address.FeatureName; - PostalCode = address.PostalCode; - SubLocality = address.SubLocality; - Thoroughfare = address.Thoroughfare; - SubThoroughfare = address.SubThoroughfare; - SubAdminArea = address.SubAdminArea; - AdminArea = address.AdminArea; - } - } -} diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Location/ListenerSettings.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Location/ListenerSettings.cs deleted file mode 100644 index 40849b86f..000000000 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Location/ListenerSettings.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; - -namespace eShopOnContainers.Core.Models.Location -{ - public class ListenerSettings - { - public bool AllowBackgroundUpdates { get; set; } = false; - public bool PauseLocationUpdatesAutomatically { get; set; } = true; - public ActivityType ActivityType { get; set; } = ActivityType.Other; - public bool ListenForSignificantChanges { get; set; } = false; - public bool DeferLocationUpdates { get; set; } = false; - public double? DeferralDistanceMeters { get; set; } = 500; - public TimeSpan? DeferralTime { get; set; } = TimeSpan.FromMinutes(5); - } -} diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Location/PositionErrorEventArgs.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Location/PositionErrorEventArgs.cs deleted file mode 100644 index 6c5e3cd24..000000000 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Location/PositionErrorEventArgs.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; - -namespace eShopOnContainers.Core.Models.Location -{ - public class PositionErrorEventArgs : EventArgs - { - public GeolocationError Error { get; private set; } - - public PositionErrorEventArgs(GeolocationError error) - { - Error = error; - } - } -} diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Location/PositionEventArgs.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Location/PositionEventArgs.cs deleted file mode 100644 index 2107b05e5..000000000 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Location/PositionEventArgs.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; - -namespace eShopOnContainers.Core.Models.Location -{ - public class PositionEventArgs : EventArgs - { - public Position Position { get; private set; } - - public PositionEventArgs(Position position) - { - if (position == null) - throw new ArgumentNullException("position"); - - Position = position; - } - } -} diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Location/ILocationServiceImplementation.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Location/ILocationServiceImplementation.cs index ba85764ea..87fa84d0e 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Location/ILocationServiceImplementation.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Location/ILocationServiceImplementation.cs @@ -11,6 +11,6 @@ namespace eShopOnContainers.Core.Services.Location bool IsGeolocationAvailable { get; } bool IsGeolocationEnabled { get; } - Task GetPositionAsync(TimeSpan? timeout = null, CancellationToken? token = null, bool includeHeading = false); + Task GetPositionAsync(TimeSpan? timeout = null, CancellationToken? token = null); } } diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Activities/MainActivity.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Activities/MainActivity.cs index aef0ef1b3..4cb0bc83f 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Activities/MainActivity.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Activities/MainActivity.cs @@ -10,6 +10,7 @@ using FFImageLoading.Forms.Droid; using System; using Xamarin.Forms.Platform.Android; using eShopOnContainers.Droid.Services; +using eShopOnContainers.Core.Services.Permissions; namespace eShopOnContainers.Droid.Activities { @@ -20,6 +21,8 @@ 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; @@ -57,7 +60,7 @@ namespace eShopOnContainers.Droid.Activities public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Permission[] grantResults) { base.OnRequestPermissionsResult(requestCode, permissions, grantResults); - PermissionsService.Instance.OnRequestPermissionResult(requestCode, permissions, grantResults); + ((PermissionsService)PermissionsService).OnRequestPermissionResult(requestCode, permissions, grantResults); } } } diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Extensions/LocationExtensions.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Extensions/LocationExtensions.cs index abb76c1f5..41ea2ad3e 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Extensions/LocationExtensions.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Extensions/LocationExtensions.cs @@ -59,7 +59,6 @@ namespace eShopOnContainers.Droid.Extensions var isLessAccurate = accuracyDelta > 0; var isMoreAccurate = accuracyDelta < 0; var isSignificantlyLessAccurage = accuracyDelta > 200; - var isFromSameProvider = IsSameProvider(location.Provider, bestLocation.Provider); if (isMoreAccurate) diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Services/GeolocationSingleListener.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Services/GeolocationSingleListener.cs index db8f13198..4710daedf 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Services/GeolocationSingleListener.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Services/GeolocationSingleListener.cs @@ -26,7 +26,6 @@ namespace eShopOnContainers.Droid.Services { _desiredAccuracy = desiredAccuracy; _finishedCallback = finishedCallback; - _activeProviders = new HashSet(activeProviders); foreach (var provider in activeProviders) @@ -36,7 +35,6 @@ namespace eShopOnContainers.Droid.Services _bestLocation = location; } - if (timeout != Timeout.Infinite) _timer = new Timer(TimesUp, null, timeout, 0); } diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Services/LocationServiceImplementation.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Services/LocationServiceImplementation.cs index f17d1bef6..b29e6ff85 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Services/LocationServiceImplementation.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Services/LocationServiceImplementation.cs @@ -4,7 +4,6 @@ using eShopOnContainers.Droid.Services; using System; using eShopOnContainers.Core.Services.Location; using eShopOnContainers.Core.Models.Location; -using eShopOnContainers.Core.Services.Permissions; using eShopOnContainers.Core.Models.Permissions; using System.Threading; using System.Threading.Tasks; @@ -12,6 +11,7 @@ using Android.Locations; using System.Linq; using System.Collections.Generic; using Android.OS; +using eShopOnContainers.Droid.Activities; [assembly: Xamarin.Forms.Dependency(typeof(LocationServiceImplementation))] namespace eShopOnContainers.Droid.Services @@ -45,20 +45,18 @@ namespace eShopOnContainers.Droid.Services async Task CheckPermissionsAsync() { - IPermissionsService permissionsService = new PermissionsService(); - var status = await permissionsService.CheckPermissionStatusAsync(Permission.Location); + var status = await MainActivity.PermissionsService.CheckPermissionStatusAsync(Permission.Location); 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.RequestPermissionsAsync(Permission.Location); + var request = await MainActivity.PermissionsService.RequestPermissionsAsync(Permission.Location); if (request[Permission.Location] != PermissionStatus.Granted) { Console.WriteLine("Location permission denied."); return false; } } - return true; } @@ -72,7 +70,7 @@ namespace eShopOnContainers.Droid.Services public bool IsGeolocationEnabled => Providers.Any(p => !IgnoredProviders.Contains(p) && Manager.IsProviderEnabled(p)); - public async Task GetPositionAsync(TimeSpan? timeout = null, CancellationToken? cancelToken = null, bool includeHeading = false) + public async Task GetPositionAsync(TimeSpan? timeout = null, CancellationToken? cancelToken = null) { var timeoutMilliseconds = timeout.HasValue ? (int)timeout.Value.TotalMilliseconds : Timeout.Infinite; if (timeoutMilliseconds <= 0 && timeoutMilliseconds != Timeout.Infinite) diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Services/PermissionsService.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Services/PermissionsService.cs index 36399cdbe..08399a331 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Services/PermissionsService.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Services/PermissionsService.cs @@ -20,8 +20,6 @@ namespace eShopOnContainers.Droid.Services Dictionary _results; IList _requestedPermissions; - internal static PermissionsService Instance; - #region Internal Implementation List GetManifestNames(Permission permission) @@ -83,7 +81,7 @@ namespace eShopOnContainers.Droid.Services return false; } - static Permission GetPermissionForManifestName(string permission) + Permission GetPermissionForManifestName(string permission) { switch (permission) { @@ -95,7 +93,6 @@ namespace eShopOnContainers.Droid.Services return Permission.Unknown; } - public void OnRequestPermissionResult(int requestCode, string[] permissions, Android.Content.PM.Permission[] grantResults) { if (requestCode != _permissionCode) @@ -135,8 +132,6 @@ namespace eShopOnContainers.Droid.Services public Task CheckPermissionStatusAsync(Permission permission) { - Instance = this; - var names = GetManifestNames(permission); if (names == null) {