From f75915477163702c8c96c86f3e285e5f883d4c3b Mon Sep 17 00:00:00 2001 From: Andrew Englehorn Date: Mon, 31 Jan 2022 10:36:45 -0800 Subject: [PATCH] Add boolean check to location permissions Limits the number of times user can upgrade from approximate to precise location. Issue #127 --- .../android/wsdot/ui/trafficmap/TrafficMapFragment.kt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/gov/wa/wsdot/android/wsdot/ui/trafficmap/TrafficMapFragment.kt b/app/src/main/java/gov/wa/wsdot/android/wsdot/ui/trafficmap/TrafficMapFragment.kt index 9f7395d8..c05e1e59 100644 --- a/app/src/main/java/gov/wa/wsdot/android/wsdot/ui/trafficmap/TrafficMapFragment.kt +++ b/app/src/main/java/gov/wa/wsdot/android/wsdot/ui/trafficmap/TrafficMapFragment.kt @@ -101,6 +101,7 @@ class TrafficMapFragment : DaggerFragment(), Injectable, OnMapReadyCallback, var showAlerts: Boolean = true var showRestAreas: Boolean = true + var requestLocationUpgrade: Boolean = true private lateinit var mMap: GoogleMap @@ -274,7 +275,9 @@ class TrafficMapFragment : DaggerFragment(), Injectable, OnMapReadyCallback, override fun onOptionsItemSelected(item: MenuItem): Boolean { when (item.itemId) { R.id.action_my_location -> { - myLocationFineWithPermissionCheck() + if (requestLocationUpgrade) { + myLocationFineWithPermissionCheck() + } checkAppPermissions() } } @@ -1068,6 +1071,11 @@ class TrafficMapFragment : DaggerFragment(), Injectable, OnMapReadyCallback, } -> { myLocationCoarseWithPermissionCheck() + + if (Build.VERSION.SDK_INT > 30) { + requestLocationUpgrade = false + } + } else -> { // Present permission dialog to request permission type