DEPRECATED-mapbox-ios-sdk icon indicating copy to clipboard operation
DEPRECATED-mapbox-ios-sdk copied to clipboard

User Location Tracking is Not Resumed when Permission is Reinstated

Open taylortrimble opened this issue 9 years ago • 2 comments

Steps to Reproduce

  1. Set showsUserLocation to YES.
  2. Allow Location Services
  3. Go to Settings and turn off Location Services for your app
  4. Go back to your app
  5. Go to Settings and turn Location Services back on for your app
  6. Go back to your app

Actual Results

  • mapViewWillStartLocatingUser: is never called at any point
  • mapView:didUpdateUserLocation: is never called after Location Services are revoked, even after they're turned back on

Expected Results

  • mapViewWillStartLocatingUser: should be called once when Location Services are allowed the first time, and once again when Location Services are reinstated
    • This is consistent with the behavior of mapViewDidStopLocatingUser:, which is called both when Location Services are blocked on first request and when Location Services are revoked later
  • mapView:didUpdateUserLocation: should resume being called for location changes after Location Services are reinstated

taylortrimble avatar May 09 '15 20:05 taylortrimble

In mapbox/mapbox-gl-native#1491, I wound up adding code that double-checks +[CLLocationManager authorizationStatus] when the host app returns to the foreground. It’s for a different purpose, not the user dot, but the same approach would work here. I couldn’t find any other reliable way to get this notification.

1ec5 avatar May 09 '15 21:05 1ec5

That will probably be our in-app workaround as well. I hope that it's able to be addressed in Mapbox iOS SDK eventually though!

taylortrimble avatar May 09 '15 21:05 taylortrimble