Skip to content
This repository was archived by the owner on Nov 17, 2023. It is now read-only.

Commit 1fa48de

Browse files
David BritchDavid Britch
authored andcommitted
Android LocationService refactoring.
1 parent 04296e7 commit 1fa48de

File tree

11 files changed

+11
-112
lines changed

11 files changed

+11
-112
lines changed

src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Location/ActivityType.cs

Lines changed: 0 additions & 10 deletions
This file was deleted.

src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Location/Address.cs

Lines changed: 0 additions & 38 deletions
This file was deleted.

src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Location/ListenerSettings.cs

Lines changed: 0 additions & 15 deletions
This file was deleted.

src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Location/PositionErrorEventArgs.cs

Lines changed: 0 additions & 14 deletions
This file was deleted.

src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Location/PositionEventArgs.cs

Lines changed: 0 additions & 17 deletions
This file was deleted.

src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Location/ILocationServiceImplementation.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ public interface ILocationServiceImplementation
1111
bool IsGeolocationAvailable { get; }
1212
bool IsGeolocationEnabled { get; }
1313

14-
Task<Position> GetPositionAsync(TimeSpan? timeout = null, CancellationToken? token = null, bool includeHeading = false);
14+
Task<Position> GetPositionAsync(TimeSpan? timeout = null, CancellationToken? token = null);
1515
}
1616
}

src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Activities/MainActivity.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
using System;
1111
using Xamarin.Forms.Platform.Android;
1212
using eShopOnContainers.Droid.Services;
13+
using eShopOnContainers.Core.Services.Permissions;
1314

1415
namespace eShopOnContainers.Droid.Activities
1516
{
@@ -20,6 +21,8 @@ namespace eShopOnContainers.Droid.Activities
2021
ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
2122
public class MainActivity : FormsAppCompatActivity
2223
{
24+
public static IPermissionsService PermissionsService = new PermissionsService();
25+
2326
protected override void OnCreate(Bundle bundle)
2427
{
2528
FormsAppCompatActivity.ToolbarResource = Resource.Layout.Toolbar;
@@ -57,7 +60,7 @@ public override void OnTrimMemory([GeneratedEnum] TrimMemory level)
5760
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Permission[] grantResults)
5861
{
5962
base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
60-
PermissionsService.Instance.OnRequestPermissionResult(requestCode, permissions, grantResults);
63+
((PermissionsService)PermissionsService).OnRequestPermissionResult(requestCode, permissions, grantResults);
6164
}
6265
}
6366
}

src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Extensions/LocationExtensions.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ internal static bool IsBetterLocation(this Android.Locations.Location location,
5959
var isLessAccurate = accuracyDelta > 0;
6060
var isMoreAccurate = accuracyDelta < 0;
6161
var isSignificantlyLessAccurage = accuracyDelta > 200;
62-
6362
var isFromSameProvider = IsSameProvider(location.Provider, bestLocation.Provider);
6463

6564
if (isMoreAccurate)

src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Services/GeolocationSingleListener.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ public GeolocationSingleListener(LocationManager manager, float desiredAccuracy,
2626
{
2727
_desiredAccuracy = desiredAccuracy;
2828
_finishedCallback = finishedCallback;
29-
3029
_activeProviders = new HashSet<string>(activeProviders);
3130

3231
foreach (var provider in activeProviders)
@@ -36,7 +35,6 @@ public GeolocationSingleListener(LocationManager manager, float desiredAccuracy,
3635
_bestLocation = location;
3736
}
3837

39-
4038
if (timeout != Timeout.Infinite)
4139
_timer = new Timer(TimesUp, null, timeout, 0);
4240
}

src/Mobile/eShopOnContainers/eShopOnContainers.Droid/Services/LocationServiceImplementation.cs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
44
using System;
55
using eShopOnContainers.Core.Services.Location;
66
using eShopOnContainers.Core.Models.Location;
7-
using eShopOnContainers.Core.Services.Permissions;
87
using eShopOnContainers.Core.Models.Permissions;
98
using System.Threading;
109
using System.Threading.Tasks;
1110
using Android.Locations;
1211
using System.Linq;
1312
using System.Collections.Generic;
1413
using Android.OS;
14+
using eShopOnContainers.Droid.Activities;
1515

1616
[assembly: Xamarin.Forms.Dependency(typeof(LocationServiceImplementation))]
1717
namespace eShopOnContainers.Droid.Services
@@ -45,20 +45,18 @@ public LocationServiceImplementation()
4545

4646
async Task<bool> CheckPermissionsAsync()
4747
{
48-
IPermissionsService permissionsService = new PermissionsService();
49-
var status = await permissionsService.CheckPermissionStatusAsync(Permission.Location);
48+
var status = await MainActivity.PermissionsService.CheckPermissionStatusAsync(Permission.Location);
5049
if (status != PermissionStatus.Granted)
5150
{
52-
Console.WriteLine("Currently do not have Location permissions, requesting permissions");
51+
Console.WriteLine("Currently do not have Location permissions, requesting permissions.");
5352

54-
var request = await permissionsService.RequestPermissionsAsync(Permission.Location);
53+
var request = await MainActivity.PermissionsService.RequestPermissionsAsync(Permission.Location);
5554
if (request[Permission.Location] != PermissionStatus.Granted)
5655
{
5756
Console.WriteLine("Location permission denied.");
5857
return false;
5958
}
6059
}
61-
6260
return true;
6361
}
6462

@@ -72,7 +70,7 @@ async Task<bool> CheckPermissionsAsync()
7270

7371
public bool IsGeolocationEnabled => Providers.Any(p => !IgnoredProviders.Contains(p) && Manager.IsProviderEnabled(p));
7472

75-
public async Task<Position> GetPositionAsync(TimeSpan? timeout = null, CancellationToken? cancelToken = null, bool includeHeading = false)
73+
public async Task<Position> GetPositionAsync(TimeSpan? timeout = null, CancellationToken? cancelToken = null)
7674
{
7775
var timeoutMilliseconds = timeout.HasValue ? (int)timeout.Value.TotalMilliseconds : Timeout.Infinite;
7876
if (timeoutMilliseconds <= 0 && timeoutMilliseconds != Timeout.Infinite)

0 commit comments

Comments
 (0)