Commit Graph

623 Commits

Author SHA1 Message Date
Jason Wray
f117865e8e [ios] Remove Xcode 7 compatibility typedefs 2018-08-09 13:46:53 -04:00
Jason Wray
ec7b920603 [ios] Standardize exception definitions 2018-08-09 13:35:28 -04:00
Bruno de Oliveira Abinader
3952ff5c34 [core] Replace unique_any with peer from mapbox-bindgen 2018-08-08 14:14:34 +03:00
John Firebaugh
9bdd765a02 [core] Merge DataDrivenPropertyValue into PropertyValue (#12513) 2018-07-31 14:21:47 -07:00
Lloyd Sheng
9c90509750 [iOS] Add fallbacks for name fields (#12387)
* Add fallbacks for name fields

* Add a fallback for `name_zh-Hant`

* Update changelog
2018-07-26 13:53:12 +08:00
Minh Nguyễn
3a97734cd2 [ios, macos] Fixed typos in expression conversion error messages 2018-07-25 04:25:45 -07:00
Jason Wray
cdd3553641 [darwin] Use FOUNDATION_EXTERN instead of plain extern
FOUNDATION_EXTERN is an alias for extern in most cases, but also covers us in the event that a method could be mismangled by the compiler as C++ (when we want C-style mangling, for Obj-C compatibility).
2018-07-24 18:14:32 -04:00
Jason Wray
14dc94e65f [ios] Simplify and (internally) document MGLPointRounded()
`UIScreen.nativeScale` is available beginning in iOS 8, so the conditional is no longer necessary.
2018-07-24 18:14:32 -04:00
Jason Wray
08b08878d3 [ios] Move private geometry symbol visibility definitions to header 2018-07-24 18:14:32 -04:00
Jason Wray
4205cf7b10 [ios] Fix symbol mangling issue with MGLMapPointForCoordinate()
`MGLMapPointForCoordinate()` was `extern`-defined in a C header, but implemented in an Obj-C++ source file and mangled as a C++ symbol. `FOUNDATION_EXTERN` is C++-aware and will force C-style symbol mangling, which fixes the undefined symbol issue in consumer Obj-C projects.
2018-07-24 18:14:27 -04:00
Chris Loer
0b2221cb74 [android, ios, macos] Generate symbol-placement: line-center wrappers 2018-07-23 13:33:27 -07:00
Fabian Guerra Soto
681e0141de [ios] Mapbox's Location Manager new API. (#12013)
* [ios] The new location manager API provides two new protocols MGLLocationManager and MGLLocationManagerDelegate to handle the location cycle and updates respectively. This enables developers to chose the appropriate location provider according to their needs, or transition between outdoors/indoors location updates.

It does provide a default implementation based on CLLocationManager.
2018-07-20 14:14:43 -07:00
John Firebaugh
2c5d0e74a1 [ios, macos] Convert token strings to expressions on input
Removes mgl_expressionByReplacingTokensWithKeyPaths and associated code. Converting on output is no longer necessary: from the prior commit, core converts token strings to expressions at parse time; all that's necessary is to ensure that the runtime styling API does so as well.
2018-07-20 12:35:00 -07:00
John Firebaugh
af89318b1d [core] Convert token strings to expressions 2018-07-20 12:35:00 -07:00
John Firebaugh
c8edbb0500 [core] Replace {Source,Camera,Composite}Function with PropertyExpression 2018-07-20 11:56:30 -07:00
Minh Nguyễn
ec8ac3c64f [ios, macos] Allow unwrapped arguments in match expressions 2018-07-09 16:03:03 -07:00
Minh Nguyễn
f11ab91fc4 [ios, macos] Convert predicate options to collators 2018-07-09 16:02:40 -07:00
Jason Wray
19605cb4b4 [ios, macos] Remove duplicate MGLTileSourceOptionDEMEncoding declaration 2018-07-06 16:53:06 -04:00
Julian Rex
56ab3318a3 [ios] [macos] Added -[MGLSnapshot coordinateForPoint:] and associated test. 2018-07-05 18:50:21 +02:00
Mikhail Pozdnyakov
514485502d Rename HeatmapColorPropertyValue to ColorRampPropertyValue
Based on patch from @lbud (Lauren Budorick).

Give `HeatmapColorPropertyValue` a more generic name,
since the same value type will be used for both `heatmap-color`
and `line-gradient` properties.
2018-07-05 15:11:14 +03:00
Anand Thakker
cfd436c287 [core] Avoid blocking in Thread<Object> constructor (#12151)
* Introduce AspiringActor, EstablishedActor

This pair of objects represents the two-phase (parent-thread /
child-thread) construction that's needed to support constructing
Thread<Object> without blocking until the child thread is up and
running.

An `AspiringActor<O>` is responsible for:
 - ownership of the actor's `Mailbox`
 - allocating the memory for (but *not* constructing) the target object `O`

Using these two pieces--the mailbox and a stable address for `O`--an
`AspiringActor<O>` can accept messages for the target object, or provide
`ActorRef<O>`s that do so, before the object has actually been
constructed by the corresponding `EstablishedActor<O>`.  (Such messages
are queued in the mailbox until after the object is constructed.)

This allows for an `AspiringActor<O>` to be created and safely used by a
thread other than the one on which the target object will (eventually)
live.

An `EstablishedActor<O>` is responsible for managing the lifetime of the
target object `O` and the open/closed state of the parent's `mailbox`.

The `O` object's lifetime is contained by that of its owning
`EstablishedActor<O>`: the `EstablishedActor` constructor executes the
`O` constructor via "placement new", constructing it at the address
provided by the parent `AspiringActor`, and the `~EstablishedActor`
destructor similarly executes the `~O` destructor (after closing the
mailbox). `EstablishedActor` should therefore live entirely on the
thread intended to own `O`.

* Remove Actor#{invoke,ask}
2018-07-03 17:17:39 -04:00
Chris Loer
10a6d1bf23 [ios, macos] Try to make darwin "resolvedLocale" BCP 47 compliant 2018-07-03 10:03:05 -07:00
Chris Loer
cb1328d1d0 [ios, macos] Darwin "collator" implementation
- Uses NSString for comparison
 - Uses NSLocale for loading locales
2018-07-03 10:03:05 -07:00
Minh Nguyễn
71a72d269a [ios, macos] Autolocalize into Japanese, Korean
Added Japanese and Korean to the list of languages for which the Mapbox Streets source has dedicated name fields.
2018-07-03 09:11:01 -07:00
Molly Lloyd
e1af62e87d [core] add raster-resampling property (#12176)
* update style-code for raster-resampling

* implement user-defined raster-resampling

* invert filter condition

* raster-resampling -> raster-resampling-mode for darwin language conventions
2018-06-21 14:37:17 -07:00
Jason Wray
b84a184d2d [ios, build] Completely remove support for Fabric (#12106) 2018-06-18 22:03:59 -04:00
Minh Nguyễn
ee790818d8 [ios, macos] Look more widely for IBDesignablesAgent
The IBDesignablesAgent helper process has been renamed for each platform as of Xcode 10, so cast a wider net when trying to detect it.
2018-06-13 11:49:21 -07:00
Julian Rex
ed76230925 [ios,macos] Fixed crash in -[MGLStyle localizeLabelsIntoLocale:] on iOS 9.3 (#12123) 2018-06-11 15:23:40 -04:00
Chris Loer
8fdcd76d6e [ios, macos] Use NSCAssert instead of assert. 2018-06-04 11:32:20 -07:00
Julian Rex
df4d8bab31 [ios, macos] Raise exception if MGLMapSnapshotter is used from thread without active run loop. 2018-06-04 11:32:20 -07:00
Chris Loer
552b982a33 [ios, macos] Fix MGLMapSnapshotter concurrency bugs (issue #11827).
- Biggest change: when we apply the watermark on a background thread, don't capture self (turn most of the related instance methods into class methods)
- Don't call mbglMapSnapshotter->snapshot from a user-provided queue, since it's an asynchronous call anyway and starting it on the user's queue requires capturing self.
2018-06-04 11:32:20 -07:00
Fabian Guerra Soto
3ea1a7062f [ios, macos] Fix keypath expressions, json object is parsed incorrectly for nested keypaths. (#11959)
* [ios, macos] Fix keypath expressions, a json object is parsed incorrectly for nested keypaths.

* [ios, macos] Update changelogs.
2018-05-23 13:21:31 -04:00
Tobrun
671fe37b1e Style JSON configuration on map snapshotter (#11976)
* [core, android, darwin] - add style JSON configuration on MapSnapshotter
2018-05-23 10:52:22 +02:00
Randall Lee
8a02fa42ec [ios] Run MGLMapboxEvents setup asynchronously (#11784)
* [ios] Run MGLMapboxEvents setup asynchronously
2018-05-22 15:10:52 -04:00
Fabian Guerra Soto
1aa5c67837 [ios, macos] Support array values in match expressions. (#11866)
* [ios, macos] Support array values in match expressions.

* [ios, macos] Update mgl_match documentation.

* [ios, macos] Update changelogs.

* [ios, macos] Clarify match expressions documentation.
2018-05-17 14:47:01 -04:00
Fabian Guerra
30376f3ce1 Merge branch 'release-boba' into master
# Conflicts:
#	mapbox-gl-js
#	platform/android/CHANGELOG.md
#	platform/android/MapboxGLAndroidSDK/gradle.properties
#	platform/android/gradle/dependencies.gradle
#	platform/darwin/src/MGLVectorTileSource.mm
#	platform/darwin/src/MGLVectorTileSource_Private.h
#	platform/ios/CHANGELOG.md
#	src/mbgl/style/expression/compound_expression.cpp
2018-05-17 11:47:31 -04:00
Jordan Kiley
0d5a33df67 [ios, macos] Moved numbers away from start of lines in documentation (#11881) 2018-05-15 10:48:21 -07:00
Minh Nguyễn
baf5fd7d01 [ios, macos] Fixed English priority during label localization
Respect English in the Preferred Languages setting even if other Mapbox Streets source–supported languages are listed too.
2018-05-14 14:12:51 -07:00
Lauren Budorick
62c875e01b [core] Rework spec function/expression taxonomy
Ports https://github.com/mapbox/mapbox-gl-js/pull/6521, updating codegen scripts to parse new expression taxonomy.
2018-05-14 12:38:14 -07:00
Lucas Wojciechowski
a4e2c1af1f [core] Convert "legacy" filters directly into expressions (#11610)
Ports the specialized filter-* expressions from GL JS, adding them to src/mbgl/style/expression/compound_expression.cpp
2018-05-10 12:37:14 -07:00
Fabian Guerra Soto
a425995189 [ios, macos] Add to-rgba expression operator. (#11725)
* [ios, macos] Add expression support to to-rgba operator.

* [ios, macos] Update style docs.

* [ios, macos] Refactored to-rgba to to-color.

* [ios, macos] Add support for to-rgba expression operator.

* [ios, macos] Add multiple parameters support to to-color operand.

* [ios, macos] Enable to-rgba operator for MGLColor or key path expressions.

* [ios, macos] Update predicates and expressions guide to reflect cast changes.

* [ios, macos] Update changelogs.

* [ios, macos] Clarify color casting usage.
2018-05-07 12:01:29 -04:00
Fabian Guerra Soto
a365dd11da [ios, macos] Make NSPredicate+MGLAdditions public. (#11810) 2018-05-04 15:09:07 -04:00
Fabian Guerra Soto
1c847b321b [ios, macos] Add support for subscripting in expressions. (#11770)
* [ios, macos] Add support for subscripting in expressions.

* [ios, macos] Update changelogs.

* [ios, macos] Refactor LAST subscripting expression.
2018-05-04 13:30:06 -04:00
Fabian Guerra Soto
86a2e93294 [ios, macos] Fix overlay bounds that span the antimeridian. (#11783)
* [ios, macos] Fix overlay bounds that span the antimeridian.

* [ios, macos] Update changelogs.

* [ios, macos] Make MGLLocationCoordinate2DIsValid private.

* [ios, macos] Update changelogs.
2018-05-04 12:49:58 -04:00
John Firebaugh
8b713d9373 [ios, macos] Avoid implicit capture of MBGLOfflineRegionObserver this pointer
MBGLOfflineRegionObserver is owned by the offline database thread, and might be destroyed by the time the dispatch_async completes. Instead of implicitly capturing this, capture a copy of the MBGLOfflinePack weak pointer.
2018-05-02 14:22:55 -07:00
John Firebaugh
60ac08afae Fixup 2018-05-02 13:44:38 -07:00
John Firebaugh
1c22374eac [ios, macos] Avoid implicit capture of MBGLOfflineRegionObserver this pointer
MBGLOfflineRegionObserver is owned by the offline database thread, and might be destroyed by the time the dispatch_async completes. Instead of implicitly capturing this, capture a copy of the MBGLOfflinePack weak pointer.
2018-05-02 13:44:38 -07:00
Jason Wray
5a147f6335 [ios, macos] Fix possible retain cycles in blocks
Prompted by enabling CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF.
2018-04-27 18:06:42 -04:00
Jason Wray
4f7999fd1c [ios, macos] Accept Xcode 9.3 project suggestions
- Fix duplicate NSExpression+MGLAdditions.h and fix target membership
 - Explicitly cast NSUInteger to unsigned long before printing
2018-04-27 18:06:17 -04:00
Jason Wray
c067865e7b [ios, macos] Update minimum deployment versions to iOS 9, macOS 10.11 (#11776)
* [ios] Remove iOS 8 conditionals

* [ios, macos] Bump pod deployment targets

* [ios, macos] Add changelog entries

* [ios, macos] Update docs

* Remove unnecessary selector-based version checks

* Update SQLite note

* [ios, macos] Replace lightweight generics macros with direct use
   Lightweight generics for Foundation collections are available everywhere with the bump to iOS 9 and macOS 10.11.

* Update deprecated macOS method
2018-04-27 12:25:49 -04:00