Commit Graph

99 Commits

Author SHA1 Message Date
Minh Nguyễn
6b3b3f3ff6 [ios] Debug mask
Ported MGLMapDebugMaskOptions from the OS X SDK. Deprecated debugActive and -cycleDebugOptions.
2016-01-28 22:23:07 -08:00
Minh Nguyễn
9350d3f78c [ios] Converted iOS SDK into dynamic framework
make iproj now produces a target that pulls together static libraries like core and platform-ios into a real dynamic framework. iosapp is pretty much just a regular iOS application that links Mapbox.framework (except for the inclusion of default_styles.hpp). iosapp runs fine in the Simulator and on a device, and the same is true for any application linking against Mapbox.framework.

The ipackage target produces both a Bitcode-disabled static framework and a Bitcode-enabled dynamic framework, eliminating the need for a separate framework.sh. It disables code signing, since that happens on copy when the framework is embedded inside the application bundle. It also merges the device and simulator builds into a single fat framework.

Also bumped itest minimum deployment target to iOS 8.0, the first version that supports linking frameworks.

Fixes #828.
2016-01-22 14:45:56 -08:00
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
Jason Wray
7afd6045dd [ios] Make demo app's build number more realistic
[skipci]
2016-01-20 15:26:03 -05: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
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
b70fd7ae69 [ios] basic custom callout view on demo app 2016-01-06 23:42:48 -08:00
Minh Nguyễn
1a501d4ec4 Happy new year! 2016-01-05 14:01:58 -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
110f1ec796 [ios, android] Add methods to remove a custom layer 2015-12-17 15:15:55 -08:00
Minh Nguyễn
ff928a3013 [ios] Fixed off-by-one error due to merge
This needs to be converted into a giant switch statement, but that wouldn’t prevent issues like this cropping up in a merge anyways.
2015-12-16 15:48:55 -08:00
Minh Nguyễn
350cafb903 Revert "Revert "[ios] Custom style layer""
This reverts commit 081e4e4451.
2015-12-16 15:48:55 -08:00
John Firebaugh
081e4e4451 Revert "[ios] Custom style layer"
ec9a4cd328
2015-12-16 14:05:54 -08:00
Minh Nguyễn
ec9a4cd328 [ios] Custom style layer
Exposed Map::addCustomLayer() publicly as an undocumented, block-based API. This change avoids the terms “layer”, “initialize”, “render”, and “altitude” because they overload existing terminology in the SDK, UIKit, or MapKit. (“Layer” is qualified as “style layer”.) There are outstanding questions about ARC memory management, but this approach works in both Objective-C and Swift for pure OpenGL programming.

Added a demo to iosapp that draws a green layer below any labels in Mapbox Streets.
2015-12-16 11:03:54 -08:00
Minh Nguyễn
4e0e816653 [ios, osx] Added flyToCamera: variation that uses default duration 2015-12-15 12:52:13 -08:00
Minh Nguyễn
5dd00d1072 [ios] World tour on iOS 2015-12-15 12:52:13 -08:00
Minh Nguyễn
0cab7809eb [osx] Rewrote platform-osx and osxapp
platform-osx now vends a real NSView subclass, MGLMapView, that is readily embedded inside a Cocoa application for OS X. MGLMapView is backed by an NSOpenGLLayer for optimal performance and integration with other layer-backed views. It supports keyboard shortcuts and several gestures and hosts attribution, zooming, and rotation controls as subviews. osxapp is now a bona fide Cocoa application that embeds MGLMapView inside a XIB. osxapp has preferences and a share button for tight integration with custom styles.

Enabling asynchronous rendering would be more consistent with iOS but increases CPU usage so much, even when idle, that it isn’t worth any performance gain. The bigger issue is that VAOs aren’t being used.

make xpackage creates a static library similar to the one created by make ipackage. make clean cleans additional places where build output ends up.

The OS X minimum deployment target has been increased from 10.9 to 10.10. osxapp’s window has a full size content view, which requires 10.10. Lightweight generics require iOS 9+ and OS X 10.11 regardless, because it was only in that release that Foundation collection classes started adopting lightweight generics.

Shuffled files around and refactored annotations so that iOS and OS X share a good chunk of the annotations code, which now takes advantage of polymorphism. MGLMapView can now display annotations but cannot yet select them. In osxapp, a long press drops a pin, and so does the map view’s context menu.

Annotations have NSPopovers as callouts, and their view controllers can be customized. Annotation image alignment rects are respected for hit testing purposes and for positioning the callout anchor. Callouts in osxapp demonstrate the use of bindings to keep callouts in sync with underlying model objects.
2015-12-13 17:17:35 -08:00
Bruno de Oliveira Abinader
1f0820c8e8 [core] Added MapDebugOptions
Map debug options are now cycled up to all debug options enabled, then
back to none.
2015-11-27 17:47:02 +02:00
Minh Nguyễn
062746291b Demonstrate show annotations in iosapp
ref #3110
2015-11-24 13:27:19 -08:00
Mike Morris
dfb36d6231 [core] move mbgl.gyp to gyp directory
So npm won't clobber binding.gyp, refs
https://github.com/npm/npm/issues/10243
2015-11-04 11:34:35 -05:00
Minh Nguyễn
557b8afb7c [core][iOS] Source iOS styles from default_styles
Moved mbgl::util::default_styles to a more appropriate location, where iOS platform code can also find it. Moved -[MGLMapView bundledStyleURLs] (which is now deprecated) and the style switcher in iosapp to default_styles.

Added a collection of convenience methods for getting style URLs. It makes little sense to layer an enum atop this, as MapKit does, because MGLMapView styles aren’t limited to this set. A good analogy is UIColor. This also makes for a good entry point for future runtime styling APIs.

Introduced independent constants for each default style, because it’s more common to need access to a particular style than to iterate over them. This fact is apparent in the MGLStyle class, which now uses macros and assertions to ensure that it’s kept up-to-date with changes in default_styles.

/ref #1462
2015-10-30 13:09:37 -07:00
Leith Bade
abf93c008b [core] Remove bundled styles.
Fixes #2239
2015-10-30 13:09:04 -07:00
Minh Nguyễn
d48c640b5c More natural style names in iosapp
ref #2740
2015-10-26 14:55:19 -07:00
Leith Bade
f71d61fa91 [android] Add missing satellite streets style to Android and iOS.
As well as default_styles.cpp
Fixes #2739
Fixes #2740
2015-10-23 14:09:24 +11:00
Justin R. Miller
6e1b1836f4 fixes #2611: iOS test app long press drops debug marker 2015-10-15 11:33:58 -07:00
Justin R. Miller
8cc3b12f1e [ios] fixes #2490: add annotation image enabled property 2015-10-02 11:50:53 -07:00
Adam Hunter
fa2d7453a5 Fix up of some naming issues, etc. 2015-09-29 15:07:39 -07:00
Adam Hunter
3f9f259619 Added GL logging utility 2015-09-29 15:07:39 -07:00
Jason Wray
d89aa51e0f [iOS] Give iosapp the option to use always location permissions
Useful in testing metrics and background location. Default is still
`whenInUse`, user must switch in `Settings.app`.
2015-09-22 05:53:42 -04:00
Minh Nguyễn
79dc20808f Prefix user defaults in iosapp
We technically don’t need to, but the demo app should practice good hygiene since we expect developers to copy from it.
2015-09-16 13:22:16 -07:00
Jason Wray
9a55e97029 Fix build, only ask for location permission on user's instigation
Previously in #2265 we would ask for location permission at app startup if `!settings->showsUserLocation`. #2193 0a172a21fd changed the way we used `NSUserDefaults` and mostly removed the `settings` object, which broke #2265.

Rather than fix our pestering location permissions ask at startup, this commit now only asks for location permissions when the user hits the locate-me button.

Once a user grants permission, the user dot appears because a `userTrackingMode` is set, `showsUserLocation` is permanently set to `YES` in `NSUserDefaults` and is restored at launch.
2015-09-08 11:43:55 -04:00
Minh Nguyễn
0a172a21fd CameraOptions
Plumbed camera options all the way through to MGLMapView. Added a method that lets you specify a direction in addition to center point and zoom level.

Added Map::jumpTo() for parity with mapbox-gl-js. Replaced usage of Map::setLatLng() and Map::setLatLngZoom() with Map::jumpTo() or Map::easeTo() within MGLMapView. Replaced MGLMapView.pitch with MGLMapCamera for setting all supported degrees of freedom simultaneously. Simultaneously move and rotate with course.

Support customizable timing functions on iOS.

iosapp now persists an archived MGLMapCamera instead of separate viewpoint properties and also synchronizes user defaults on termination. This change implements persistence entirely in Objective-C, eliminating the use of the Objective-C++ implementation.

Fixes #1643, fixes #1834. Ref #1581.
2015-09-07 09:22:52 -07:00
Jason Wray
584c36f348 Update NSLocationWhenInUseUsageDescription string
Fixes #1930
2015-09-04 17:54:46 -04:00
Jason Wray
a07770450c Fix location permissions ask, add delay for map to load 2015-09-04 17:54:46 -04:00
Jason Wray
42dc5336db iOS perspective gesture support
Drag two fingers upward to tilt the map.

Implements #2116
2015-08-26 11:23:03 -07:00
Justin R. Miller
a2ee2bcdae remove Bright, Basic, and Outdoors from iOS testing 2015-08-24 11:56:24 -07:00
Justin R. Miller
92dd26c8be iOS app/framework fixes for v8
- Mapbox Streets -> Streets
 - style version from string to integer
 - 7 -> 8
2015-08-24 11:34:03 -07:00
Justin R. Miller
3f99f5e712 GL is the library, SDK is the product 2015-08-21 11:01:07 -07:00
Minh Nguyễn
20ad0d51f6 Added UI for course tracking 2015-08-14 10:09:44 -07:00
Minh Nguyễn
dfeb479011 MGLUserTrackingModeFollowWithCourse
Added course-tracking. However, rotation has to happen atomically without animation until #1834 is fixed.

Fixes #1605.
2015-08-14 10:09:43 -07:00
Jason Wray
c1cd961093 Include app-info.plist in demo app project
[skip ci]
2015-07-28 10:18:30 -04:00
Minh Nguyễn
0178c94f6d Exempt Metrics staging server from PFS requirement
This server should not used in actual production code anyways.

Fixes #1937.
2015-07-27 15:52:17 -07:00
Justin R. Miller
c7011345c9 remove logging 2015-07-08 19:46:04 +02:00
Justin R. Miller
a1c2529e33 runtime imagery based on annotation title 2015-07-08 19:46:04 +02:00
Justin R. Miller
e0da13dbfd fixes for runtime Cocoa imagery 2015-07-08 19:46:04 +02:00
Justin R. Miller
5ab58deb44 Cocoa custom marker imagery API 2015-07-08 19:46:03 +02:00
Justin R. Miller
bd0bf294bf squash of #1655: shape annotations support for core & iOS 2015-06-15 18:30:39 -07:00
Minh Nguyễn
256b748458 Merge branch '1ec5-plist-1535' 2015-05-20 14:38:36 -07:00
Brad Leege
5572504d38 Merge pull request #1589 from mapbox/1396-info-plist-only
Manage Metrics TEST URL Via Info.plist
2015-05-18 21:40:26 -05:00
Minh Nguyễn
b7b4515d48 Marked unused parameters with __unused
Replaced haphazard usage of pragmas and `(void)` expressions with the `__unused` keyword.
2015-05-18 17:11:12 -07:00