Commit Graph

68 Commits

Author SHA1 Message Date
Justin R. Miller
efc4bb4ef6 add header docs for new MGLAccountManager; reorg 2015-05-12 16:44:26 -07:00
Justin R. Miller
18b96ec4fd fix spacing, ordering, imports 2015-05-12 16:33:32 -07:00
Minh Nguyễn
b1992a4516 Merge branch 'master' into 1ec5-metrics-opt-way-out 2015-05-12 16:09:10 -07:00
Brad Leege
8548ab0346 #1516 - Adding public setter method to MGLAccountManager.h. Fixing example signal opt out in MBXAppDelegate. 2015-05-12 11:37:40 -05:00
Brad Leege
87551c6d0e #1516 - Renaming setShowsOptOutInApp to setMapboxMetricsEnabledSettingShownInApp for app consistency. Implementing wordsmith edits to NSAssert text. Removing technical debt. 2015-05-12 10:50:46 -05:00
Minh Nguyễn
54a703bcb2 Consolidated logic for pausing/resuming MGLMapboxEvents
`MGLMapboxEvents` automatically recreates its location manager when the host app is reauthorized for Location Services. Added some redundancy to ensure that there is no location manager when either Location Services or Mapbox Metrics is off.
2015-05-12 01:38:04 -07:00
Minh Nguyễn
2f02a6538e Folded MGLMetricsLocationManager into MGLMapboxEvents
`MGLMetricsLocationManager` was nothing but overhead for `CLLocationManager`. Also removed an unused method.
2015-05-12 01:36:56 -07:00
Minh Nguyễn
f860169f35 Refactored MGLMapboxEvents for better data management
The shared `MGLMapboxEvents` now owns the only instance of `MGLMetricsLocationManager`. It also owns a `MGLMapboxEventsData` object, to which all user-specific data has been relegated. This object can be built up and torn down on the fly, whenever the opt-out preference is toggled. `MGLMapboxEvents` has also given up knowledge of the access token and now queries `MGLAccountManager` for that information, which `MGLMapView` keeps up-to-date.
2015-05-12 01:36:56 -07:00
Brad Leege
48e21ae6e9 #1516 - Adding explicit checks for developer implementation of user Opt Out functionality 2015-05-11 23:31:22 -05:00
Justin R. Miller
8cb146fa02 don't doc or package private headers 2015-05-05 15:13:39 -07:00
Brad Leege
acd27fc386 Merge pull request #1329 from mapbox/1225-start-token
MapboxGL Startup Infrastructure
2015-05-05 13:00:25 -05:00
Brad Leege
804c092c81 #1225 - Simplifying MGLAccountManager for initial setup and access to AccessToken 2015-05-05 11:50:01 -05:00
Konstantin Käfer
691c305467 add Map::isFullyLoaded()
returns whether the Map is still loading/parsing any assets or whether everything is there and a render will likely be complete
2015-05-05 11:47:23 +02:00
Konstantin Käfer
307ad680ba [iOS] allow calling invalidate() on MGLMapView 2015-05-05 11:47:16 +02:00
Justin R. Miller
af8f060a0d missing docs tuneups 2015-05-04 16:07:16 -07:00
Brad Leege
4ce4e979ff Updating from master 2015-05-04 17:04:46 -05:00
Brad Leege
7f6cc6cc6d #1225 - Renaming getAccessToken method to sharedAccessToken to avoid any iOS get naming conventions 2015-05-04 16:52:41 -05:00
Brad Leege
0e36bf1c8d #1225 - Restoring MapboxGL.h as an Umbrella header file by splitting the singleton code into MGLAccountManager.h and .m 2015-05-04 16:13:18 -05:00
Minh Nguyễn
6790a09a08 Turned class methods into instance methods
Avoids unnecessary steps to access singletons. Now `MGLMapboxEvents` and `MGLMetricsLocationManager` instances can message themselves directly.
2015-04-30 11:48:56 -04:00
Minh Nguyễn
67fdfbadb3 Merge pull request #1357 from mapbox/1ec5-view-controller
Automatically find view controller for layout guides
2015-04-27 22:28:06 -07:00
Minh Nguyễn
5ffa52cab5 Automatically find view controller for layout guides
Find the managing view controller by traversing the responder chain.
2015-04-27 15:52:30 -07:00
Brad Leege
16bcdb10b8 #1352 - Adding visit event with data attributes 2015-04-27 18:00:31 -04:00
Brad Leege
5092d72599 #1352 - Adding start / stop visit monitoring infrastructure and integrating it with pause / resume metrics api 2015-04-27 17:37:39 -04:00
Brad Leege
50fecb916d #1345 - Adding app build number to user agent. Updating gl test app build number to be different from build version. 2015-04-27 11:43:23 -04:00
Brad Leege
591c63286b #1225 - Converting id to instancetype 2015-04-24 15:41:21 -05:00
Brad Leege
317be34708 #1225 - Removing unavailable block on MGLMapView.initWithFrame 2015-04-24 15:29:34 -05:00
Brad Leege
7e145780eb #1225 - Initial conversion of Mapbox GL app to set access token in AppDelegate and exposing MGLMapView.initWithFrame to support it 2015-04-23 18:15:01 -05:00
Brad Leege
578d48b303 #1225 - Initial setup of MapboxGL as a singleton object with access token 2015-04-22 17:19:59 -05:00
Brad Leege
1a43b773af #1166 - Initial conversion from NSURLConnection to NSURLSession 2015-04-21 17:13:23 -05:00
Brad Leege
a2883dddc0 #1306 - Adding api_mapbox_com.der (public key) and nsurlconnection checking infrastructure 2015-04-20 14:28:32 -05:00
Justin R. Miller
190709c6b1 fixes #1157, #1255: cache parsed tiles in memory 2015-04-16 01:15:41 -07:00
Brad Leege
21685caa2a #1268 - Adding horizontalAccuracy to location event 2015-04-14 18:03:59 -05:00
Brad Leege
19e4bc7541 #1247 - Adding Altitude and Vertical Accuracy attributes to location events 2015-04-09 18:08:15 -05:00
Brad Leege
def309ba24 #1216 - Adding start and stop location manager update to pause and resume functions. 2015-04-06 23:15:00 -05:00
Brad Leege
4092e46982 #1216 - Add pause and resume methods with corresponding isPaused boolean flag property 2015-04-06 23:03:27 -05:00
Minh Nguyễn
af09fd599a Expose style class API publicly
Also added some convenience methods to match the underlying C++ API.
2015-04-06 12:26:26 -07:00
Minh Nguyễn
d1fb43e371 Inspectable toggles
Added inspectables for toggling zooming, panning, rotating, and showing the user location for parity with `MKMapView`.
2015-04-03 12:41:38 -07:00
Justin R. Miller
6eb79338f3 allow setting nil mapID for default style 2015-04-03 12:41:37 -07:00
Justin R. Miller
2916ae2735 formatting & docs changes
Ran this through `./ios/docs/install_docs.sh` to double-check things.

 * Less-specific initializers above more-specific per Apple convention.
 * Shores up `accessToken` docs as property, not a method.
 * Edited comments for consistency and/or to keep them out of the docs.
2015-04-03 12:40:51 -07:00
Minh Nguyễn
836de8bc1c Made lat/lon/zoom inspectable
Declared these IB-specific inspectables in a separate category that developers are not expected to import. Currently these inspectables are order-dependent due to #1181.

Ref #929
2015-04-03 12:34:36 -07:00
Minh Nguyễn
da13225a81 Made MGLMapView designable in IB
When an access token is set in the Attributes inspector (or as a user-defined runtime attribute), we draw some lovely Mapbox branding so the view shows up. (Manipulating invisible rectangles is a frustrating exercise, I’m told.) In the absence of an access token, the view displays a helpful message with directions for obtaining and setting the access token.

Along the way, completely opt out of `MGLMapboxEvents` when targeting Interface Builder, because touching Core Location throws an exception in that environment and it doesn’t make sense to record any metrics when designing on the Interface Builder canvas. Also, don’t start `mbgl::Map` at all (and don’t update it) because none of the runtime drawing code should ever be run in the designable. Normally these chunks of code would be excluded in IB using the TARGET_INTERFACE_BUILDER preprocessor macro. However, Mapbox GL is being packaged as a static library, so the macro is only evaluated when the library is prebuilt, even if the library eventually makes its way into the CocoaPods-generated framework. Instead, we detect that we’re being run by the IBDesignablesAgentCocoaTouch process.

Overrode `-[MGLMapView initWithFrame:]` to call `-commonInit`. We’ve marked this initializer unavailable in the header, but IB still calls it regardless.

Fixes #929.
2015-04-03 12:16:00 -07:00
Minh Nguyễn
e18e4b0de5 Removed redundant initializers and setters
This change removes most of the ways you used to be able to apply a style to the map. Building on #1163, `styleURL` (HTTP(S), mapbox:, asset:) is the canonical way to apply a style, and `mapID` is a convenient shorthand for Mapbox-hosted styles. A relative style URL is interpreted as a path relative to the app’s main bundle. We now construct asset: URLs in lieu of “bundled style names”.
2015-04-03 12:14:51 -07:00
Minh Nguyễn
6a1e7d5707 Fixed race condition after setting access token
`Map` should be able to deal with having no access token or JSON even while it’s running. Most of `Map` accounts for this situation, but `reloadStyle()` incorrectly assumes that one or the other is set. This change corrects the assumption in `reloadStyle()`.

Also expose the access token and style name to clients as ordinary KVO-compliant properties. Actually, they’re not so ordinary because they’re inspectable!

Ref #1070, #1147
2015-04-03 12:07:53 -07:00
Brad Leege
8413da0d68 #1195 - Adding speed and course attributes to location event 2015-04-03 11:10:35 -05:00
Justin R. Miller
dbd22ae61a reverting to title/subtitle setters for user location 2015-04-02 17:12:05 -07:00
Justin R. Miller
9a416c449c Improvements to docs & user location framework.
* Cleans up & documents more APIs, especially in location.
 * Moves `coordinate` internal and makes use of `location` to retrieve it.
 * Moves `title` & `subtitle` internal since part of `MGLAnnotation` protocol.
 * Enables `isUpdating` by privately associating weakly with a map view.
2015-04-02 16:58:24 -07:00
Justin R. Miller
af0c89c2aa expose style URL setting 2015-03-30 22:37:00 -07:00
Justin R. Miller
2782a8ce5b refs #892: Cocoa support for map ID style URLs 2015-03-30 22:09:47 -07:00
Brad Leege
a325cb98b5 #1134 - Removing enabled.email metric and supporting infrastructure 2015-03-27 19:25:59 -05:00
Justin R. Miller
2066e201ea Merge remote-tracking branch 'origin/master' into 1128-convert-booleans 2015-03-27 09:00:07 -07:00