Commit Graph

235 Commits

Author SHA1 Message Date
Jason Wray
d305fbebee Merge branch 'release-ios-v3.3.0'
Merge release branch after v3.3.2 and v3.3.3.
2016-08-03 17:40:22 -07:00
Minh Nguyễn
438dfa947d [ios] Omit accuracy halo from annotation hit testing (#5816)
Fixes #5571.
2016-07-28 14:52:33 -07:00
Jason Wray
bc845b96b0 [ios] Limit annotation view pan gesture check to own recognizer (#5813)
Allows non-dragging pans that are initiated on views to pan the underlying map.

Annotation views each have long press and pan gesture recognizers. If a
view is not draggable or not in a positive dragging state, the pan
gesture recognizer should not begin. This commit makes the criteria for
rejecting pans more strict — only `_panGestureRecognizer` should be
rejected, not the entire `UIPanGestureRecognizer` class.
2016-07-27 23:32:21 -07:00
Minh Nguyễn
850b2e2988 [ios] Fixed crash drawing compass on iOS 8.1 (#5791)
Fixes #5780.
2016-07-26 22:45:29 -07:00
Jason Wray
09cc87f593 [ios] Do not allow multipoint annotations to be assigned views 2016-07-22 18:19:21 -04:00
Jason Wray
0ea6bdd7fe [ios] Reformat inline documentation with ticks, smart quotes, breaks (#5752)
- Makes the use of apostrophes in the iOS SDK documentation consistent by converting “dumb” `'` into smart `’`.
- Adds ticks around class/property names/values.
- Breaks lines at 80 characters.
2016-07-22 15:01:19 -04:00
Bruno de Oliveira Abinader
000539af82 [ios,macos,node] Updated changelog about debug options no-ops in release mode 2016-07-20 12:48:52 +03:00
Minh Nguyễn
1cf6b5de0c Merge branch 'release-ios-v3.3.0' 2016-07-19 15:22:17 -07:00
Fredrik Karlsson
ede1e713d8 [ios] fixes #3697 compass, logo and attribution now respects insets (#5671)
* [ios] fixes #3697 compass, logo and attribution now respects mapview's content inset

* [ios] fixed a bug which added duplicated constraints instead of updating

* [ios] layout guides are already taken into account in contentInset
2016-07-18 14:04:14 -07:00
Jason Wray
d303980e75 [ios] Pass animated property when deselecting annotation views (#5677) 2016-07-14 19:50:41 -04:00
Minh Nguyễn
244700e560 Merge branch 'release-ios-v3.3.0' 2016-07-14 16:31:08 -07:00
Bruno de Oliveira Abinader
44406e91de [ios,macos] Partially revert 06af75
Use static_cast<float> to convert from CGfloat when creating
PropertyValue<float> and avoid breaking backwards-compatibility.
2016-07-14 16:27:25 +03:00
Bruno de Oliveira Abinader
06af750d23 [ios,macos] Update {Line,Fill}Annotation properties setter 2016-07-13 11:57:09 +03:00
Jason Wray
2f3d77538b [ios, macos] Reorganize jazzy’s navigation categories; cleanup docs (#5660)
An attempt to better surface relevant information. Includes slight cleanups of inline documentation.

- Demotes MGLMapDebugMaskOptions to "Other Enums”.
- Demotes MGLMapViewDecelerationRate* and MGLStyleDefaultVersion to "Other Constants”.
- Demotes MGLOfflinePack's less significant global types.
- Demotes MGLAnnotationVerticalAlignment and documents its usage caveat.
- Demotes MGLAnnotationViewDragState and removes extra asterisk.
- Adds note to `MGLUserTrackingMode` about usage with `MGLMapView.userTrackingMode`.
- MGLAccountManager is currently only used for access tokens.
- Adds missing closing bracket.
2016-07-12 14:19:44 -04:00
Minh Nguyễn
ab6a17eec7 [ios] Ensure mapView is set when positioning (#5647)
Ensure the mapView property is set when positioning the annotation view, in case the map view needs to be consulted about its rotation or pitch.
2016-07-12 10:26:27 -07:00
Jason Wray
5ede3dd16f [ios] Pass along animated property when selecting annotation views (#5646) 2016-07-11 23:35:27 -04:00
Jesse Bounds
23caa9f7aa Merge branch 'release-ios-v3.3.0' into master 2016-07-07 15:40:07 -07:00
Fredrik Karlsson
7b6ef80b5d [ios] fixes #5544 support canceling a drag operation and not by default (#5561) 2016-07-05 22:47:54 +02:00
Fredrik Karlsson
546469459f [ios] #3979 compress telemetry events (#5490)
* [ios] #3979 wip gzip telemetry events

* [ios] expose compression from core instead of adding a new dependency

* [ios] #3979 Exposed decompress from mbgl and added a test case

* [ios] #3979 cleanup

* [ios] #3979 cleaned up test case

* [ios] #3979 cleanup

* [ios] #3979 gzip -> deflate
2016-07-05 22:46:04 +02:00
Minh Nguyễn
8947b0af27 [ios, macos, node] “Mapbox GL Style Specification” → “Mapbox Style Specification” (#5553) 2016-07-04 17:37:11 -07:00
Minh Nguyễn
bb2f627b12 [ios] Made annotation view position animatable
We don’t normally want an annotation view to animate its position, because that makes the view appear to lag behind the map. But when the annotation view moves due to the underlying annotation model object moving, the developer may want exactly that effect.

This change continues to disable the default implicit bounds (and now position) animation. It also groups the view updates in -updateAnnotationViews in a transaction that disables animation actions, to improve perceived performance with a large number of annotations. However, when the annotation model object changes, we move the annotation view outside of that transaction to allow the developer to opt into animation.

If the developer moreover wants the annotation view to animate even due to the viewport changing, they can override -setCenter: to use a UIView animation block.

Fixes #5230.
2016-07-02 21:00:41 -07:00
Minh Nguyễn
bb4606b53d [ios] Fixed KVO for annotation view center
Always reposition the annotation view using the standard -setCenter: setter, fixing KVO compliance for the center key path and making the view behave more like a normal view. -setCenter: updates the transform by side effect, and it always starts from the identity transform to avoid surprises. To apply a custom transform on an annotation view, make sure to apply it in -mapView:didFinishLoadingFrame:fullyRendered: based on the existing transform.
2016-07-02 21:00:36 -07:00
Minh Nguyễn
649b068270 [ios] Avoid resetting pitch along with center offset
Fixed a bug causing an annotation view to be scaled based on a pitch of 0° when setting the view’s center offset.
2016-07-02 21:00:36 -07:00
Minh Nguyễn
0d7d2449b1 [ios] Fixed auto-shrinking annotation views
Fixes #5547.
2016-07-02 20:20:05 -07:00
Minh Nguyễn
f2fdc23ec7 [ios] Removed MGLAnnotationView.flat
Removed MGLAnnotationView’s option to lie flat against a tilted map to work around #5090.
2016-07-02 18:41:11 -07:00
Minh Nguyễn
1f026c6246 [ios] Removed custom getter
isScaledWithViewingDistance is unnecessary.
2016-07-02 13:55:36 -07:00
Minh Nguyễn
50dd60aaf6 [ios, macos] Rewrote MGLMapViewDelegate, MGLAnnotationView docs
Reorganized MGLMapViewDelegate and MGLAnnotationView symbols into sections by task. Wrapped documentation comments at column 80 for readability.

Added documentation for -mapViewWillStartRenderingFrame: and -mapViewDidFinishRenderingFrame:fullyRendered:, which are supported and behave as expected (except for the part that has been left undocumented). Synchronized iOS and macOS documentation for MGLMapViewDelegate. Added cross-references between annotation image and annotation view delegate methods and among the various callout delegate methods.

Added missing MGLAnnotationViewDragState documentation and also added the symbol to jazzy’s table of contents. Rewrote MGLAnnotationView documentation.
2016-07-02 13:54:41 -07:00
Minh Nguyễn
5389f04da5 Adjustable map deceleration rate (#5504)
* [ios] Adds the ability to customize map deceleration speed

* [ios] Made pinch, rotation deceleration adjustable too

Drift zooming and drift rotation also respect the deceleration rate. A side effect of this change is that drift zooming will come to a stop ever-so-slightly sooner now.

* [ios] Documented deceleration rates

Added documentation for deceleration rate constants. Also updated the changelog.
2016-06-29 15:48:02 -07:00
Jesse Bounds
2933ef1c09 [ios] Always use symbol name for annotation update (#5509)
This removes the guard that used to be in place from the time when
UIView backed annotations did not have invisible image placeholders.
Since images are now present for both sprite and UIView backed
annotations, the guard is no longer necessary and removing it allows
for the correct symbol name to be passed to the map object and this
gets rid of `[INFO] {Worker}[Sprite]: Can't find sprite named
'default_marker'` log message.
2016-06-29 11:14:10 -07:00
Jason Wray
1a6b513703 [ios] Fix conflict between view dragging gesture and quick zoom (#5506)
This stops the quick zoom gesture (double-tap and hold) from also triggering a drag, when performed on a draggable annotation view.
2016-06-29 12:48:53 -04:00
Jesse Bounds
16b859ff5f [ios] Always set map view reference when annotation view is created. (#5496)
This fixes two issues with annotation views that were exposed when
dragging them:

1) The annotation view's mapView property was not set until it was
moved (in `updateAnnotations:`) so it did not always call its delegate
back about the map view delegate dragging methods. This adds a call to
set the property when an annotation view is created so the delegate
methods are always called.

2) Since the mapView is now always set, a call to the map view's
callout view for selected annotation was added to the annotation
view drag handler. This forces the callout to close and eliminates
an issue where the callout would remain visible as an annotation
was dragged away which had the visual effect of a detached
callout.

To make 2 possible, the map views selected callout view was exposed
in the private header.
2016-06-28 12:07:12 -07:00
Minh Nguyễn
c96b7dae68 [ios] Specify ultra light weight literally (#5497)
Fixed a crash on iOS 8.1 and below due to specifying the compass legend’s font weight using a font weight constant that was introduced in iOS 8.2.

Fixes #5486.
2016-06-28 10:03:55 -07:00
Jesse Bounds
1fa1819de1 [ios] Merge branch 'release-ios-v3.3.0'
This merges v3.3.0 at beta 2 stage. Conflicts related to the os x ->
macOS rename were corrected manually.
2016-06-27 14:15:10 -07:00
Fredrik Karlsson
72c342284c [ios] map view now calls -didAddAnnotationViews (#5466) 2016-06-27 17:19:58 +02:00
Jesse Bounds
d9a1033b2a [ios] Use transparent image for annotations backed by views (#5461)
The current implementation of view backed annotations mostly relies
on the existing annotation model manager and the associated underlying
boost query implementations for annotation management. However, since
the representation of the model is a view, an image was not installed
for view backed annotations. Because the underlying annotation
management implementation is not entire comfortable working without
an image, it would report
`[INFO] {Worker}[Sprite]: Can't find sprite named 'default_marker'`
when annotation models without an image were encountered.

This updates the annotation adding logic in to create (or reuse) and
install a small, invisible image for each view backed annotation.
2016-06-24 11:27:23 -07:00
Fredrik Karlsson
d29bef957f [ios] fixes #5036 draggable annotation views (#5373) 2016-06-24 19:42:20 +02:00
Jesse Bounds
05b6e72493 [ios] Cycle through both UIView and UIImage backed annotations
This changes the way the the calculation for the largest visual
annotation representation (stored in
_unionedAnnotationRepresentationSize) is done so that it includes both
images and views. The `annotationTagAtPoint` method is then able to
find annotation objects that are in a query rect formed from the
sizes of all manner of point annotation visual representations.

The `annotationTagAtPoint` method also gains new logic in a conditional
to handle annotations backed by MGLAnnotationViews. Similarly to
the image case, it filters out disabled annotations and calculates
a centered rect for the view. The hit test logic remains the same but
now works correctly for both the centered rects of both images and views.

This also fixes a bug where the `largestAnnotationViewSize` was always
holding the last annotation view size and not necessarily the largest.
This would affect when annotation views are put into a reuse queue since
the size is used to help determine when an annotation view has gone
offscreen.
2016-06-23 12:04:23 -07:00
Minh Nguyễn
f5f39c8b3a [ios, macos] Renamed overdraw to overdraw visualization (#5416)
A verb doesn’t make sense in this enum value. Instead, use a descriptive word for this effect and describe it in detail in the documentation comment.

Cherry-picked from 415c182946.
2016-06-23 00:03:51 -07:00
Minh Nguyễn
415c182946 [ios, macos] Renamed overdraw to overdraw visualization (#5416)
A verb doesn’t make sense in this enum value. Instead, use a descriptive word for this effect and describe it in detail in the documentation comment.
2016-06-22 23:22:41 -07:00
Fredrik Karlsson
3995d6ff68 [ios] fixes #5406 view for annotation (#5413) 2016-06-21 15:21:22 +02:00
Jason Wray
a7d5717cf5 [ios] Disable telemetry while Low Power Mode is enabled
Low Power Mode is iOS 9+, so some availability checks must be made.
2016-06-20 14:06:54 -04:00
Bruno de Oliveira Abinader
97dffeb03d [core] s/Wireframe/Overdraw/g 2016-06-20 13:24:20 +03:00
Bruno de Oliveira Abinader
22aa22c99c [core] UnitBezier ctor is now constexpr 2016-06-20 13:01:59 +03:00
Young Hahn
24b66bc8cd Color class (#5361)
* Color class

* Switch to list initialization
2016-06-15 11:38:22 -04:00
Fredrik Karlsson
d564302c6d [ios] fixes #5129 added annotation property to MGLAnnotationView (#5307)
Also added a test case for MGLAnnotationView
2016-06-14 13:12:56 +02:00
Fredrik Karlsson
a557e1e2c9 [ios] fixes #5127, #5128, #5130 added enabled and selected property to MGLAnnotationView (#5297)
[ios] fixes #5127, #5128, #5130 added enabled and selected property to MGLAnnotationView
2016-06-14 10:36:41 +02:00
Alan Kinnaman
19c34fe1f0 Suppress warning when dequeueing subclasses (#5244)
When using a subclass of `MGLAnnotationView` or `MGLAnnotationImage`, the following warning occurs:

`Incompatible pointer types initializing 'MyClassName *' with an expression of type 'MGLAnnotationView * _Nullable'`

This change eliminates the warning  and matches Apple's implementation of `UITableViewCell`.

Cherry-picked from 1e41c151f6.
2016-06-14 00:17:44 -07:00
Alan Kinnaman
1e41c151f6 Suppress warning when dequeueing subclasses (#5244)
When using a subclass of `MGLAnnotationView` or `MGLAnnotationImage`, the following warning occurs:

`Incompatible pointer types initializing 'MyClassName *' with an expression of type 'MGLAnnotationView * _Nullable'`

This change eliminates the warning  and matches Apple's implementation of `UITableViewCell`.
2016-06-14 00:17:08 -07:00
Mark Allen
dd565b701b [ios] Support for a customizable zoom gesture centering strategy. (#5302)
* [ios] Support for a customizable zoom gesture centering strategy.

We introduce a new MGLZoomGestureCentering enum and corresponding zoomGestureCentering property on MGLMapView.

Currently, Mapbox automatically adjusts the center of the map relative to the user's gesture location, but for some applications (e.g Uber, Lyft) it is preferable to keep the map center "locked" in response to zoom gestures.

Exisiting code will retain its current behavior without modification and will implicitly use the default value of MGLZoomGestureCenteringFollowsTouch. New code can specify MGLZoomGestureCenteringLockedInPlace to get the new "locked" behavior.

* [ios] Added -anchorPointForGesture: to MGLMapView

Cherry-picked from b915f05a06.
2016-06-09 17:05:50 -07:00
Mark Allen
b915f05a06 [ios] Support for a customizable zoom gesture centering strategy. (#5302)
* [ios] Support for a customizable zoom gesture centering strategy.

We introduce a new MGLZoomGestureCentering enum and corresponding zoomGestureCentering property on MGLMapView.

Currently, Mapbox automatically adjusts the center of the map relative to the user's gesture location, but for some applications (e.g Uber, Lyft) it is preferable to keep the map center "locked" in response to zoom gestures.

Exisiting code will retain its current behavior without modification and will implicitly use the default value of MGLZoomGestureCenteringFollowsTouch. New code can specify MGLZoomGestureCenteringLockedInPlace to get the new "locked" behavior.

* [ios] Added -anchorPointForGesture: to MGLMapView
2016-06-09 17:05:15 -07:00