From 771b1f9375551b4eb808dc0e8cd7515eced93362 Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Tue, 12 Mar 2019 11:20:00 +0100 Subject: [PATCH] Add hasLocationPermissionGranted & findCurrentLocation --- .../components/PokerAnalyticsActivity.kt | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/activity/components/PokerAnalyticsActivity.kt b/app/src/main/java/net/pokeranalytics/android/ui/activity/components/PokerAnalyticsActivity.kt index da29643a..e02ebd15 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/activity/components/PokerAnalyticsActivity.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/activity/components/PokerAnalyticsActivity.kt @@ -68,6 +68,13 @@ open class PokerAnalyticsActivity : AppCompatActivity() { return realm } + /** + * Return if the location permission has been granted by the user + */ + fun hasLocationPermissionGranted() : Boolean { + return ContextCompat.checkSelfPermission(this, ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED + } + /** * Ask for location permission */ @@ -78,7 +85,6 @@ open class PokerAnalyticsActivity : AppCompatActivity() { ) } - /** * Ask for places request */ @@ -118,4 +124,25 @@ open class PokerAnalyticsActivity : AppCompatActivity() { } } + /** + * Find the current location + */ + fun findCurrentLocation(callback: ((location: Location?) -> Unit)?) { + if (LocationManager(this).databaseContainsLocationsWithCoordinates()) { + if (ContextCompat.checkSelfPermission(this, ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) { + LocationManager(this).findNearestLocationFromUser(callback) + } else { + askForLocationPermission { granted -> + if (granted) { + LocationManager(this).findNearestLocationFromUser(callback) + } else { + callback?.invoke(null) + } + } + } + } else { + callback?.invoke(null) + } + } + } \ No newline at end of file