Commit Graph

591 Commits

Author SHA1 Message Date
Jason Wray
4a3adddf3f [ios] add telemetry debug logging
You SHOULD NOT be using telemetry logging on any persons' devices who do
not explicitly understand the privacy implications of handling location
data.
2016-01-20 18:57:43 -05:00
Minh Nguyễn
460b21e324 [ios] z14 initially in user tracking mode
When entering user tracking mode from a low zoom level, zoom in to z14 regardless of the location’s horizontal accuracy.
2016-01-20 11:02:31 -08:00
Minh Nguyễn
bd4611107d [ios] Reset user tracking, respect content inset in resetPosition 2016-01-20 11:02:31 -08:00
Minh Nguyễn
5a00427386 [ios] Maintain user tracking, anchor on user dot during zoom, rotate
Per MapKit behavior, zooming or rotating with a gesture can no longer kick the user out of user tracking mode. In user tracking mode, the zoom animation is always anchored on the user dot, wherever it may be.
2016-01-20 11:02:31 -08:00
Minh Nguyễn
65f6eb25b5 [ios, osx] Optionally animate content insets change 2016-01-20 11:02:31 -08:00
Minh Nguyễn
07c4c54111 [ios] Made user dot position configurable
The user dot or user puck’s position is now configurable via a new alignment property in any user tracking mode. Also, -setUserTrackingMode:animated: is now exposed publicly, and setting its animated parameter to NO skips the initial animation.
2016-01-20 11:02:31 -08:00
Minh Nguyễn
a93e7d7baa [ios] Non-animated user tracking mode changes
Calling -setUserTrackingMode:animated: with animated set to NO should jump instantaneously to the first reported location.
2016-01-20 11:02:31 -08:00
Minh Nguyễn
35895af5d4 [ios] Keep user dot callout open after user location change
Outside of user tracking mode, the user dot moves in spurts, so view synchronization performance isn’t an issue.
2016-01-20 11:02:31 -08:00
Minh Nguyễn
59f2c53c26 [ios] Keep callout attached to moving user dot 2016-01-20 11:02:31 -08:00
Minh Nguyễn
867e01581c [ios] Maintain user tracking mode after orientation change 2016-01-20 11:02:31 -08:00
Minh Nguyễn
251925568c [ios] Eliminated jump after flight to first location
Don’t update the user location annotation’s coordinates until after the transition to the first reported location is complete.
2016-01-20 11:02:31 -08:00
Minh Nguyễn
51be461168 [ios] Leave user location callout open when tracking
Don’t close the user location annotation’s callout when the user location changes in user tracking mode.
2016-01-20 11:02:31 -08:00
Minh Nguyễn
41ce7b2526 [ios] Fly to user location
Fly to the user location when entering user tracking mode. Keep user location updates from interfering with the initial flight.
2016-01-20 11:02:31 -08:00
Minh Nguyễn
453000af3b [ios] Affix user dot on screen in user tracking mode
In user tracking mode, keep the user dot in a fixed location on screen, instead easing the map view so that the fixed location corresponds to the new user location. There is one exception: MGLMapView reacts to the first location update the same way as before, so that it appears to move to where the user dot has been all along.

In course tracking mode, weight the user dot down towards the bottom of the view, since it’s more important to see the road ahead than the road behind.

Fixes #2600, and #1041 to some extent.
2016-01-20 11:02:31 -08:00
Cameron Mulhern
07f6dee616 [ios] Fixes crash when vendorId is nil 2016-01-20 10:59:31 -05:00
Ansis Brammanis
d34f8eb674 [core][ios][osx][android] make SpriteImage accept PremultipliedImage
the SpriteImage constructor signature changes from

SpriteImage(
        uint16_t width, uint16_t height, float pixelRatio,
        std::string&& data, bool sdf = false);

to

SpriteImage(PremultipliedImage&&, float pixelRatio, bool sdf = false)
2016-01-19 18:23:21 -08:00
Ansis Brammanis
26faa6a5ad [core][ios][osx][android] fix icons with non-integer width/height
ref #3031
ref #2198

For example, an icon that has:
- a pixel width of 10
- a pixel ratio of 3
- a scaled with of 3.333
is now supported.
2016-01-19 18:20:54 -08:00
Minh Nguyễn
1a5bc3d803 [ios] Removed redundant zoom constraints
The zoom level is already clamped by Transform. -currentMinimumZoom appears to be useful only as an unrotation threshold; it doesn’t correspond to the minimum allowed zoom level.
2016-01-18 16:54:58 -08:00
Minh Nguyễn
6a0b7f8eb3 [ios] Account for top/bottom bars 2016-01-18 16:54:58 -08:00
Minh Nguyễn
47b69100f9 [core, ios, osx, android, glfw] Flipped origin of Map::latLngForPixel(), Map::pixelForLatLng()
Map and Transform methods assume an origin at the top-left corner of the view, like iOS, Android, and GLFW but unlike OS X. Transform is responsible for flipping coordinates between the top-left origin of Map and the bottom-left origin of TransformState.

Fixes #3574.
2016-01-18 16:54:58 -08:00
Minh Nguyễn
cb126eafe0 [ios] Refactored unrotation
Avoid unrotating due to programmatic rotation, even programmatic rotation that might expose empty portions of the map. Only snap to north due to a gesture.
2016-01-16 22:00:47 -08:00
Minh Nguyễn
ed32fa06ed [ios] Avoid unrotating in heading or course tracking mode
Fixes #3587.
2016-01-16 15:56:25 -08:00
Minh Nguyễn
15f4ca51f9 [ios] Fixed static analyzer warnings 2016-01-14 16:48:16 -08:00
Jason Wray
b57e237b14 [ios] send turnstile event when telemetry is paused 2016-01-14 18:30:51 -05:00
Minh Nguyễn
ac4b1b7479 [core] Standardize transform origin
All Transform methods that take a PrecisionPoint now assume a “flipped” origin at the upper-left corner of the view. Previously, some methods assumed an origin at the lower-left corner.
2016-01-14 00:39:56 -08:00
Minh Nguyễn
27b308a234 [core] Separated AnimationOptions from CameraOptions 2016-01-14 00:39:12 -08:00
John Firebaugh
5a7d2fd60e [core] Eliminate platform::assetRoot()
I regenerated assets.zip so that all file paths have an `assets/` prefix, as the Android AssetFileSource implementation asserts, and removed `TEST_DATA` from the paths.
2016-01-13 13:40:31 -08:00
Minh Nguyễn
101a439b1d [ios] Always run jazzy against iOS Simulator
Fixes #3521.
2016-01-12 07:24:53 -08:00
Jason Wray
45a0f48ea0 [ios] Add telemetry setting directly to attribution button action sheet
- Deprecate and no-op `+[MGLAccountManager mapboxMetricsEnabledSettingShownInApp]`
- Check for attribution button hiding and make sure ToS are understood
2016-01-09 01:21:45 -05:00
John Firebaugh
e7b0b31d58 [core] Privatize SQLiteCache 2016-01-08 12:31:13 -08:00
Minh Nguyễn
b6fca67089 [ios] Added some missing coordinate conversion methods
These methods were public in the OS X SDK but not here.
2016-01-07 21:32:10 -08:00
Minh Nguyễn
6fcb9f4da1 [ios] Invalidate CADisplayLink
CADisplayLink holds a strong reference to its target, forming a cycle that must be broken with -[CADisplayLink invalidate] when the animation is complete. I don’t yet have enough faith that will-change and did-change notifications are always coming from mbgl in pairs, so this change limits CADisplayLink to when MGLMapView is in the view hierarchy. It also pauses the CADisplayLink when the view is hidden or the application is in the background. Finally, -[MGLMapView invalidate] has been renamed because that term tends not to mean “redraw” in Cocoa but is rather tied to timers.

Fixes #3130.

[ios] Also invalidate CADisplayLink on removal from window

[ios] Also shut down CADisplayLink when view is hidden
2016-01-07 20:28:44 -08:00
Minh Nguyễn
11d99bd890 [ios] Refined custom callout view support
Renamed MGLCalloutView to MGLCompactCalloutView and MGLCalloutViewProtocol to MGLCalloutView to avoid an awkward workaround for a Swift name collision. Replaced individual title and subtitle properties with a single representedObject property that lets you use custom annotation properties in the custom callout view. Overrode a problematic SMCalloutView method. Added lots more documentation.
2016-01-06 23:43:07 -08:00
Romain Quidet
04ab28b621 [ios] expose custom callout api, wrap around SMCalloutView class 2016-01-06 23:42:41 -08:00
Minh Nguyễn
69cf21cece [ios] Restored readme in built package
Restored a build script statement that was accidentally deleted in #3203.
2016-01-05 22:53:27 -08:00
Minh Nguyễn
1420a49689 [ios] Generate API documentation using jazzy
Replaced appledoc usage with jazzy, which understands modern Objective-C syntax by virtue of using Clang ASTs. Nevertheless, we have to make lots of changes to our documentation syntax, which was tailored to appledocs quirks. The new syntax jives much better with what Xcode expects in terms of auto-indentation and Quick Help.

Fixes #1420.
2016-01-05 12:41:54 -08:00
John Firebaugh
e26b218883 [android, ios, osx] Emoji ⇢ ASCII in Bitrise notifications 2016-01-05 10:59:41 -08:00
Minh Nguyễn
5f58c015e4 [iOS] Transparent GLKView
Tie layer opacity to view opacity.

Fixes #3038.
2016-01-05 10:01:31 -08:00
Minh Nguyễn
f8f735b574 Rewrote documentation
Rewrote some copy to provide more context and link to more GL-related repos, including GL JS. Put the various SDKs in a table so we can show the various CI bot status images.

Integrated target list into the relevant documents. Rewrote large portions of iOS and OS X setup documentation to guide normal developers to more friendly places. Combined some Android documentation.

Moved SDK-specific documentation into platform/. Added a temporary readme in ios/ that points to the one in platform/ios/.
2016-01-05 08:04:16 -08:00
Minh Nguyễn
490907ac29 [android, ios, osx] Moved platform identifier into Slack user name
Also customized links for brevity.
2015-12-24 15:07:07 -08:00
Minh Nguyễn
633a3a5a3d [osx] Bitrise configuration
Fixes #2776.
2015-12-24 15:07:03 -08:00
Jason Wray
e4d8494852 [ios] snap to north if interaction ends within ±7°
First proposed in #938, implemented in #1059, reverted in #1064.
2015-12-24 13:45:51 -05:00
Jason Wray
2aa1e5ca18 [ios] vary annotation bounds fit padding based on view size
Fix #3392, #3110
2015-12-23 20:18:01 -05:00
Minh Nguyễn
d745ff0923 [ios] Meters per point at latitude
Renamed -metersPerPixelAtLatitude: to -metersPerPointAtLatitude:, leaving the old name as a deprecated alias. In Cocoa Touch terminology, “point” is the visual unit backed by pixels.
2015-12-22 17:06:43 -08:00
John Firebaugh
b60b6c47c0 [core] Merge SQLiteCache into the platform library
OfflineFileSource will depend on SQLite too.
2015-12-22 12:09:14 -08:00
John Firebaugh
3d37017c68 [ios, osx] Drop xcpretty
It's buggy and hides necessary diagnostics.
2015-12-21 16:59:35 -08:00
Minh Nguyễn
49bfdd662f [ios, osx] Optional peak altitude for flying 2015-12-20 04:11:14 -08:00
Minh Nguyễn
b7223f249d [ios, osx] Avoid transition to current camera
Fixes #2456.
2015-12-20 03:57:51 -08:00
Minh Nguyễn
d668c0fa84 [ios, osx] Better zoom level–altitude conversion
Greatly simplified conversions between zoom level and altitude. Adjusted field of view to more closely match MapKit. Conversions are now well within the same order of magnitude as MapKit at all latitudes.

Fixes #2266.
2015-12-20 03:57:28 -08:00
Minh Nguyễn
2cb70eac3c [ios, osx] Allow zero-duration flight
For consistency with -setCamera:…, a duration of 0 jumps instantaneously to the new location, while a negative value uses the distance-dependent default.

Due to the produced curve and applied easing, flyTo() doesn’t model a parabola or ballistic trajectory, but it does simulate powered flight to some extent.
2015-12-19 20:33:37 -08:00