Commit Graph

384 Commits

Author SHA1 Message Date
Jesse Bounds
c6c7c2cd74 [ios] Use map view frame to calculate annotation view reuse adjustments (#8926)
* [ios] Use map view frame to calculate annotation view reuse adjustments

The value for determining the visible viewport buffer and also the distance to move offscreen an annotation view outside of that buffer was based on the annotation view width and height. This changes that to use the map viewport width and height as constants and avoids a class of bugs where the annotation view would become detached from the tracking system when it did not have a size or was animating from a small to large size.
2017-05-09 13:09:19 -07:00
Jordan Kiley
a70f8911c6 [ios] cherry-picked 8837 (#8869) 2017-05-02 16:20:34 -07:00
Jesse Bounds
03d10bb67a [ios, macos] Guard against looking up annotation contexts MGLAnnotationTagNotFound (#8686) 2017-04-07 15:23:39 -07:00
Minh Nguyễn
d39ea23b09 [ios, macos] Hardened std::map usage in MGLMapVIew
Replaced std::map::operator[] usage with std::map::at(). Backed up an assertion on iOS with a guard when -annotationTagsInRect: returns the tag of a nonexistent annotation, for consistency with macOS. Removed an unnecessary and risky subscript into _annotationContextsByAnnotationTag in -positioningRectForCalloutForAnnotationWithTag: on iOS.
2017-04-05 14:56:06 -07:00
Fabian Guerra Soto
ec34813c90 [ios] assertion to check if an annotationTag > 0 (#8588)
* [ios] assertion to check if an annotationTag > 0

* [ios,macos] assertion and guard added to check annotations in  visibleAnnotationsInRect
2017-04-05 14:16:58 -04:00
Jesse Bounds
ff73371216 [ios] Silence incompatible type warning for callout view (#8608)
This silences a compatibility warning that was introduced in a previous
refactor that changed the return type of the callout view for
annotation delegate method. This also adds checks to ensure that the
callout view provided by the delegate to the map view is of the correct
type and conforms to the correct protocol.
2017-04-04 15:25:59 -07:00
Jason Wray
228bff7602 [ios] Replaced UIActionSheet, UIAlertView with UIAlertController 2017-04-01 19:58:09 -07:00
Jesse Bounds
dcb14f98ee [ios] Modify return type so callout bridges with protocol in Swift
`- (nullable UIView <MGLCalloutView> *)mapView:(MGLMapView *)mapView
calloutViewForAnnotation:(id <MGLAnnotation>)annotation;` bridges
with a `UIView?` return type in Swift. This changes replaces the
`UIView` type in the method signature so that, when bridged to Swift,
the returned object is defined as `MGLCalloutView?`.
2017-03-29 16:58:07 -07:00
Fabian Guerra Soto
c5c69102c5 [ios] nil check in visibleAnnotationsInRect to avoid crash (#8513) 2017-03-28 16:06:16 -04:00
Jason Wray
751fa3b8a2 [ios, build] Change version checker URL to ios-sdk site (#8468)
Decouple the version checker updating from the deploy process.
2017-03-19 01:29:25 -04:00
Minh Nguyễn
4430e65603 [ios, macos] Expanded feature querying documentation
Also fixed a couple incorrect Swift method names on macOS.
2017-03-14 14:42:57 -07:00
Jason Wray
48e17724a1 [ios] Enable one-finger quickzoom gesture on iPad 2017-03-13 16:49:46 -04:00
Minh Nguyễn
b74d7bfdb4 [ios, macos] Corrected polyline equality
Now that annotation classes override -isEqual:, it’s no longer appropriate to rely on -isEqual: or -containsObject: to check for the preexistence of an annotation. Those methods become deep equality tests, which have worse performance. Checking for identity allows the developer to add a polyline and polygon with identical coordinates, title, etc. to the map.

Implemented a missing -[MGLPolyline isEqual:].

Removed outdated comments about -annotationTagForAnnotation: being expensive.
2017-03-10 15:08:00 -08:00
Fabian Guerra Soto
ffce46cae6 Raise exception when MGLAnnotationView.annotation property is nil (#8339)
* [ios] MGLAnnotationView annotation property made writable

* [ios] standarized exception name for annotations
2017-03-10 14:49:22 -08:00
John Firebaugh
65f74224ab Merge master into release-ios-v3.5.0-android-v5.0.0 2017-03-08 17:31:03 -08:00
Jordan Kiley
ece19acd10 [ios, macos] Added a timing note for two delegate methods (#8259) 2017-03-07 17:39:42 -08:00
Jason Wray
5e36743ef7 [ios] Add SDK version update checking/notification 2017-03-07 10:43:08 -08:00
Ivo van Dongen
161ae804c2 [ios, macos] Add support for queryRenderedFeatures filter 2017-03-04 15:42:07 -08:00
Asheem Mamoowala
60d10dd27d [core] Add support for queryRenderedFeatures filter 2017-03-04 15:42:07 -08:00
Minh Nguyễn
7e9701283f [ios, macos] Update callout when relocating annotation
When relocating a selected point annotation, update the associated callout (popover) rather than deselecting the annotation.
2017-03-03 22:09:41 -08:00
Nadia Barbosa
9ea4113634 [ios] Clarify docs for MGLUserTrackingMode 2017-03-03 18:59:30 -08:00
Nadia Barbosa
4d058ffd94 [ios, macos] Exclude MGLUserTrackingMode from macOS 2017-03-03 18:59:30 -08:00
Fabian Guerra Soto
1f1cc131ea [ios] Fixed conversion between Duration and NSTimeInerval (#8276) 2017-03-03 20:11:06 -05:00
Fabian Guerra Soto
8a5cc3560a [ios] MGLAnnotationView annotation property made writable (#8139) 2017-03-02 18:19:23 -05:00
Minh Nguyễn
2f388d6635 Merge branch 'release-ios-v3.4.0' into 1ec5-release-ios-v3.4.2 2017-02-21 22:47:15 -08:00
Minh Nguyễn
b512af6a66 [ios, macos] Smarten apostrophes after backticks
jazzy is inconsistently converting straight apostrophes that immediately follow backticks into either &lsquo; or &rsquo; from one run to the next. Smarten the apostrophe to keep it stable.
2017-02-21 22:14:29 -08:00
Jason Wray
c7975e6a18 [ios] Clean-up conditionals for iOS <8 2017-02-21 16:10:00 -05:00
Konstantin Käfer
3ef9e26593 [ios,macos,android,qt] use shared threadpool 2017-02-20 19:26:06 +01:00
Konstantin Käfer
03a14ff000 [darwin] move RunLoop initialization to static variable 2017-02-20 14:36:27 +01:00
Minh Nguyễn
d790132eda [ios, macos] Short-circuit redundant camera changes
Avoid canceling transitions (and triggering preexisting completion handlers) until we get a chance to ensure that a new transition really does have to begin. Consistently avoid mbgl transitions for redundant camera changes. Upon bailing, schedule the completion handler to run asynchronously on a delay equivalent to the requested animation duration.

Added a “functional” equality method to MGLMapCamera that avoids trivial differences.

Fixed invocations of XCTAssertEqualWithAccuracy() that incorrectly expressed the accuracy as a number of digits rather than a scalar tolerance.
2017-02-18 14:14:09 -08:00
Jesse Crocker
d4c569a018 [ios] Disable region monitoring when stopping location monitoring (#7833) 2017-02-16 12:36:21 -08:00
Jason Wray
3ec93d3bbe [ios] Round tap-zoom gestures to nearest integer
Round double-tap and two-finger tap zoom gestures to the nearest integer zoom level. This has the benefits for raster tiles, as well as styles with zoom-based functions.

This results in a wider possible zoom range — ~0.5-1.5:

Old: z4.6 → z5.6 (+1.0), z4.4 → z5.4 (+1.0)
New: z4.6 → z6.0 (+1.4), z4.4 → z5.0 (+0.6)
2017-02-13 18:35:04 -05:00
Benedikt Huss
b9be66f287 [ios] Do not deselect annotations any longer when map is zoomed/panned or annotation is moved out of the visible bounds 2017-02-11 13:34:33 -08:00
Minh Nguyễn
272dc3f6a9 Delegate method to restrict movement (#5584)
* [ios, macos] Added delegate method to restrict movement

Added a way for the delegate to restrict where the user can move within the map using gestures.

Fixes #2457.

* [ios] Added support to restrict movement in pinch/rotate gestures

* [ios] Added support to restrict movement in double tap/quick zoom/two finger drag gestures

* [ios] fixed camera reset before two finger drag gesture is complete

* [ios] fixed camera comparison in double tap gestures

* [ios] Changelog update

* [macos] Changelog updated

* [ios, macos] Changelog cleanup

* [ios, macos] Added documentation to clarify performance impact

* [ios] clarified variable name

* [ios] blocking gestures implementation changed to a predictive approach

* [ios] gesture delegate methods refactoring

* [ios] Removed duplicated methods, improved code readability

* [ios] code refactoring to clarify the conditions to execute a gesture
2017-02-09 16:49:04 -05:00
danielmatzke
937fa0ce44 [ios, macos] 7955 fix MGLMapView leaks MGLReachability objects (and threads) (#7956)
* fix MGLMapView leaks MGLReachability objects (and threads)

* fix leak of MGLReachability objects and threads in MGLMapView.commonInit

* update changelogs
2017-02-06 16:02:35 -08:00
Fredrik Karlsson
7d6b91f8e7 [ios] persistent user tracking mode 2017-02-06 20:58:31 +01:00
Fredrik Karlsson
2ab3af4b1b [ios, macos] added a distance formatter 2017-01-27 19:41:13 +01:00
Konstantin Käfer
62ea1f2185 [core] remove trailing whitespace, add trailing newlines, add space after // 2017-01-27 11:44:16 +01:00
Minh Nguyễn
a662508ddd Merge branch 'release-ios-v3.4.0' into 1ec5-release-ios-v3.4.1-master 2017-01-26 17:56:46 -08:00
Konstantin Käfer
19bd68d3a2 [macos,ios] don't roundtrip through encodePNG when converting images 2017-01-26 15:26:55 +01:00
fabian-guerra
85f485e4ed [ios, macos] Make MGLMapView non opaque by default (#7859) 2017-01-25 22:04:27 -05:00
Justin R. Miller
5dc83903d6 fixes #6688: assert remaining map view notification responses are main thread (#7838) 2017-01-25 13:38:37 -08:00
Minh Nguyễn
7684bc2125 [ios, macos] Testify MGLMapView gesture recognizer example 2017-01-25 13:22:17 -08:00
Minh Nguyễn
35e062d72c [ios, macos] Wrap camera heading (#7724)
* [ios, macos] Fixed negative camera heading when facing northwest

* [ios] Corrected counterclockwise rotation test
2017-01-24 08:29:46 -08:00
nitrag
0c95fcfd06 [ios, macos] Document how to avoid gesture recognizer conflicts (#7816)
* Expand on Gesture Implementation

Adding Gesture info as discussed: https://github.com/mapbox/mapbox-gl-native/issues/2278#issuecomment-273685832

Not sure if using codeblocks is kosher.

* Update styling and verbiage

* More updates

* [ios] -requireGestureRecognizerToFail: seems to be enough

* [macos] Added corresponding macOS documentation
2017-01-23 13:17:15 -08:00
Justin R. Miller
f6715694f9 refs #6779: mobile & Mac SDK style transition options (#7711) 2017-01-18 12:43:08 -08:00
Jordan Kiley
e38216d254 Typo fixes, added line to MGLStyleLayer initializer description (#7759)
* Typo fixes in MGLMapCamera.h and MGLMapView.h

* Added line to MGLStyleLayer initializer description

* Edited line in MGLShapeCollection.h
2017-01-17 20:54:36 -08:00
Minh Nguyễn
7ef2843e6a Merge branch 'release-ios-v3.4.0' into 1ec5-release-ios-v3.4.0-beta.7 2017-01-16 11:38:35 -08:00
Jason Wray
8f6009ea20 [ios, macos] Revert deprecation of alphaForShapeAnnotation: delegate method 2017-01-13 15:43:41 -05:00
Jesse Bounds
4332b3b953 Flush telemetry cache when data collection is paused (#7672)
[ios] Flush telemetry cache when data collection is paused

This flushes the cache just before pausing so that data collected
before the pause is not thrown away. It also refactors event
creation to avoid possible nil value inserts into dictionaries
and adds a small optimization to avoid creating immutable
dictionaries to help create mutable ones.

Also:

- Remove cancel API in API client

The cancelAll API is not used. The array of data tasks it maintains
has proven problematic. This removes the API and the problematic
implementation. As safer version of it can be brought back if cancel
task functionality is required in the future.

- Remove unused battery method
2017-01-11 15:55:54 -08:00