mapbox / DEPRECATED-mapbox-ios-sdk

REPLACED – use https://www.mapbox.com/ios-sdk instead
https://github.com/mapbox/mapbox-gl-native
Other
323 stars 8 forks source link

User Location Tracking is Not Resumed when Permission is Reinstated #629

Open taylortrimble opened 9 years ago

taylortrimble commented 9 years ago

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
1ec5 commented 9 years ago

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.

taylortrimble commented 9 years ago

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!