Commit Graph

163 Commits

Author SHA1 Message Date
Fabian Guerra Soto
2f0af0e8f4 [ios] Deactivate MGLMapView IBDesignable (#14379)
Removed MGLMapView's IBDesignable attribute. The map's view render attributes
uses GL, making changes through the inspectables were not reflected in the storyboard
and were causing IB crashes.

* [ios] Deactivate MGLMapView IBDesignable.

* [ios] Remove IBDesignable agent code.

* [ios, macos] Remove NSProcessInfo category from iOS.
2019-04-10 13:01:59 -07:00
Fabian Guerra Soto
8389e746b6 [ios, macos] Add Mapbox Maps SDK metrics manager. (#13997)
Added MGLSDKMetricsManager to keep track of SDK related events such as tile download times.

* [ios, macos] Add tile download performance event.

* [ios, macos] Modify the performance event format.

* [ios, macos] Add Mapbox Maps SDK events manager.

* [ios, macos] Remove events delegate.

* [ios, macos] Remove deprecated macro.

* [ios, macos] Rename MGLEventsManager to MGLMetricsManager.

* [ios, macos] Make MGLMetricsDelegate follow delegate convention.

* [ios, macos] Remove mbgl-filesource target dependency on MGLMetricsManager.

* [ios, macos] Update metrics manager documentation.

* [ios, macos] Add device metadata.

* [ios, macos] Rename MGLMetricsManager to MGLSDKMetricsManager.
2019-04-09 16:10:14 -07:00
Fabian Guerra Soto
10114c85bb [ios, macos, build] Remove DEBUG from logging configuration. (#13933)
* [ios, macos] Change the debug flag usage to NDEBUG.

* [ios, macos] Add NDEBUG preprocessor macro to ios/macos project conf.
2019-03-25 09:25:08 -07:00
Fabian Guerra Soto
7939ff213a [ios, macos] Add format expression convenience methods support. (#14094)
Added the ios/macos format expression bindings.

The equivalent is mgl_attributed: or mgl_attributed({}) when making an expression using the expressionForFormat selector.

A new constructor called mgl_expressionForAttributedExpressions:(NSArray<NSExpression*>*)attributedExpressions was added to NSExpression+MGLAdditions category.

Updated the symbol style layer text test to use the bindings.

Updated the Predicates and Expressions.md and For Style Authors.md.ejs template with the bindings.
2019-03-15 16:10:27 -07:00
Konstantin Käfer
979433eddb [build] update Boost to 1.69 and remove RTTI 2019-03-13 20:42:30 +01:00
Langston Smith
42144ce1dc [android, iOS, macOS] Adding Galician translation from Transifex (#14095)
* [android] adding galician strings

* [ios] adding galician strings

* [ios, macos] Added Galician localization to Xcode projects

* [ios, macos] Converted Galician localization to UTF-8

* [android, ios, macos] Updated changelogs
2019-03-13 09:42:52 -07:00
Fabian Guerra Soto
1fc7a9b82e [ios, macos] Expose the url session configuration object. (#13886)
The `MGLNetworkConfiguration` class was make public, and added `sessionConfiguration` property to let developers customize the `NSURLSessionConfiguration` object that is used to make HTTP requests in the SDK.
2019-02-18 13:16:20 -08:00
Fabian Guerra Soto
7069ecb2a1 [ios, macos] Add Czech and Hungarian translations. (#13782)
Added Czech translations.
2019-01-23 14:08:35 -08:00
Julian Rex
c8c664fbf3 [ios, macos] Support getLeaves (and related) clustering methods (#12952) following feature extension API (#13382) 2019-01-14 15:17:13 -05:00
Mikhail Pozdnyakov
361982fef8 [core][Android][Darwin] LayerManager creates RenderLayer instances
`LayerManager` is now responsible for `RenderLayer` instances creation,
so that there is a single entry point for creating of objects, which
correspond to a certain layer type.

The `LayerType type` field is dropped from `Layer::Impl`.
2018-11-27 18:10:21 +02:00
Julian Rex
fd4b470158 [ios] Adds support for MGLCollisionBehaviorPre4_0 in NSUserDefaults (#13426) 2018-11-21 13:56:41 -05:00
Jason Wray
00d0864441 [darwin, build] Harmonize ios/macos/darwin build warnings with mbgl 2018-11-20 11:34:18 -05:00
Mikhail Pozdnyakov
8077055b1a [ios, macos] Layer manager for Darwin platforms
The newly introduced `MGLStyleLayerManager` is now responsible
for creating both style layer objects and their obj C peers on Darwin.
2018-11-19 22:31:20 +02:00
Minh Nguyễn
425a3ade9e [ios, macos] Harmonize bundle identifiers
For consistency with each other and with their product name and module name, the iOS and macOS map SDKs now have a bundle identifier of com.mapbox.Mapbox, whether in the form of a static or dynamic framework. The logging subsystem identifier has also been changed to match.
2018-11-15 22:00:30 -08:00
Fabian Guerra
064d8b9aa8 Add a custom logging for the Mapbox Maps SDK for iOS. 2018-10-26 12:45:14 -07:00
Fabian Guerra
710a7f5037 [ios, macos] Enable offline merge test. 2018-10-04 11:04:15 -07:00
Minh Nguyễn
a030f1474f [ios, macos] Distinguish between viewing distance and altitude
+[MGLMapCamera cameraLookingAtCenterCoordinate:fromDistance:pitch:heading:] incorrectly treated the distance as an altitude. Due to backwards compatibility concerns, this method can’t be fixed in place. Instead, separate +[MGLMapCamera cameraLookingAtCenterCoordinate:correctlyFromDistance:pitch:heading:] and +[MGLMapCamera cameraLookingAtCenterCoordinate:altitude:pitch:heading:] methods have been added.
2018-10-01 18:12:03 -07:00
Fabian Guerra Soto
a938c3ef68 [ios, macos] Offline regions merge. (#12791)
* [ios, macos] Add offline regions merge.

* [ios, macos] Update changelogs.

* [ios, macos] Fix refreshing the offline packs after new content is added.

* [ios, macos] Update MGLOfflineStorage's add contents of file documentation.

* [ios, macos] Add MGLOfflineStorage test cases for adding file contents.

* [ios, macos] Add offline merge test database.

* [ios, macos] Add packs parameter to MGLBatchedOfflinePackAdditionCompletionHandler.

* [core] Fix a query mege duplication.

* [ios, macos] Remove unnecessary pack iteration.

* [ios, macos] Fix packs update KVO notifications.

* [ios, macos] Add localization strings.

* [core] Fix query readability.

* [ios, macos] Fix MGLOfflineStorageTest, cleanup the cache database after the test.

* [ios, macos] Fix offline packs, updating triggers a crash.
2018-09-17 15:31:43 -07:00
Konstantin Käfer
e51eb0fc23 [build] use vendored version of ICU 2018-09-05 12:26:15 +02:00
Nadia Barbosa
7017ac512e [ios, macos] Allow -convertCoordinateBounds to span antimeridian 2018-09-04 18:57:18 -07:00
Konstantin Käfer
52275f835a [build] add plain text file lists for iOS/macOS 2018-08-23 14:09:48 +02:00
Ivo van Dongen
ca0f2f925d [darwin] arbitrary offline region geometries 2018-08-20 22:49:01 +03:00
Minh Nguyễn
c11482260a [macos] Removed bogus library search path
Fixed a build warning caused by a nonexistent library search path in the Debug configuration.
2018-08-08 15:48:42 -07:00
John Firebaugh
9e3a4a2646 [ios, macos] Enable link-time optimization for iOS release builds (#12502) 2018-07-31 15:35:17 -07: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
Fabian Guerra Soto
a365dd11da [ios, macos] Make NSPredicate+MGLAdditions public. (#11810) 2018-05-04 15:09:07 -04:00
Konstantin Käfer
f6da3ba9be iOS: Add custom layer example to debugging app (#7734) 2018-05-03 12:48:58 -07:00
Minh Nguyễn
ea59ba8209 [android, ios, macos] Added Korean localization 2018-05-02 12:57:14 -07: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
Julian Rex
5b5549d644 [ios, macos] Fix for camera movement when selecting visible annotations (#11731) 2018-04-24 11:01:04 -04:00
Minh Nguyễn
d06d77d482 [macos] Updated Arabic localization 2018-04-16 17:26:44 -07:00
Minh Nguyễn
ecc43c871a [android, ios, macos] Added European Portuguese localization 2018-04-16 17:26:44 -07:00
Minh Nguyễn
e16ce7d879 Localize expressions more thoroughly (#11651)
* [ios] Removed changelog entry for Terrarium

The broader feature is new to v4.0.0 as well.

* [ios, macos] Localize expressions more thoroughly

Replaced the MGLStyle.localizesLabels property with a -localizeLabelsIntoLocale: method that allows the caller to specify the locale to localize into. Also exposed a per-expression localization method for developers who want to vary behavior from layer to layer.

* [macos] Offer English labels if preferred language is unsupported

* [ios, macos] Removed dead code

* [ios] Use new localization method in iosapp

* [ios, macos] Fixed local name labels

* [ios, macos] Convert tokens to key path expressions in stop dictionaries

* [ios, macos] Streamlined token upgrading

Separated token upgrading into a separate process that only happens as part of the MGLSymbolStyleLayer.text and MGLSymbolStyleLayer.iconImageName properties’ getters, so that it’s easy to remove later when mbgl changes obviate this workaround. Removed the replacesTokens parameter to the expression localization methods.

* [ios, macos] Preserve whitespace between tokens

* [ios, macos] Moved token replacement to a consistent category

Fixed a build warning.

* [ios, macos] Replace tokens in all string-typed getters

For consistency, replace tokens with key paths in all string-typed style paint and layout properties.

* [ios, macos] Test token replacement

Added tests for replacement of tokens with key paths in expressions. Fixed token replacement for raw strings in stop dictionaries. Avoid sticking a single string inside an mgl_join: call.

* [ios, macos] Test token replacement, localization

Added unit tests of token replacement and localization of expressions. Only NSExpression is responsible for resolving the preferred language now, since NSLocale tends to tack a region code onto the locale identifier and the NSExpression method can be called independently anyways. Added a private variation of +[MGLVectorTileSource preferredMapboxStreetsLanguage] that takes an array of preferred languages. Fixed localization of non-expressions in stop dictionaries.

* [ios, macos] Dictionary keys aren’t necessarily zoom levels
2018-04-16 15:24:33 -07:00
Minh Nguyễn
9faed7293b [ios, macos] Eliminated MGLAbstractShapeSource
MGLComputedShapeSource is now a direct subclass of MGLSource and sibling of MGLShapeSource.
2018-04-02 10:42:54 -07:00
Minh Nguyễn
a877b6dbe8 [ios, macos] Renamed MGLVectorSource to MGLVectorTileSource 2018-04-02 10:42:54 -07:00
Minh Nguyễn
29a8efab26 [ios, macos] Renamed MGLRasterSource to MGLRasterTileSource
Also updated various source class listings to reflect the addition of image and raster DEM sources.
2018-04-02 10:42:54 -07:00
Minh Nguyễn
91de48356e [macos] Upgraded tests to Swift 4 2018-03-07 17:31:01 -08:00
Fabian Guerra
903e7989ec Merge branch 'master' into release-boba
# Conflicts:
#	platform/android/CHANGELOG.md
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/Mapbox.java
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/CompassView.java
#	platform/android/scripts/exclude-activity-gen.json
#	platform/ios/CHANGELOG.md
#	platform/ios/Mapbox-iOS-SDK-nightly-dynamic.podspec
#	platform/ios/Mapbox-iOS-SDK-symbols.podspec
#	platform/ios/Mapbox-iOS-SDK.podspec
#	platform/macos/CHANGELOG.md
2018-02-15 11:54:51 -05:00
Vladimir Agafonkin
82de856c94 [core, ios, macos, android, node] Heatmap layer (#11046)
Co-Authored-By: Konstantin Käfer <mail@kkaefer.com>
Co-Authored-By: Anand Thakker <anandthakker@users.noreply.github.com>
Co-Authored-By: Minh Nguyễn <1ec5@users.noreply.github.com>
2018-02-15 17:38:23 +02:00
Minh Nguyễn
e6d6a231e8 [ios, macos] Added Danish localization 2018-02-07 02:34:29 -08:00
Minh Nguyễn
b6747a84f4 [ios, macos] Hook up hillshade style layers, raster DEM sources to iOS/macOS (#11036)
* [ios, macos] Finished implementing MGLHillshadeStyleLayer

* [macos] Added icon for hillshade layer

Also set the background layer icon to mirror in right-to-left locales.

* [ios, macos] Implemented raster DEM source

* [macos] Added Enhance Terrain debugging command

* [ios, macos] Simplified raster DEM source example
2018-01-25 10:46:27 -08:00
Minh Nguyễn
fb5b8d34f2 Reimplement style values atop NSExpression (#10726)
* [ios, macos] Import headers, not implementation files

* [core] Added accessors for various expression parameters

Added missing parameter accessors to various expression operator classes, as well as a method on InterpolatorBase and Step that enumerates the stops and their values.

* [ios, macos] Silenced warning in test of error condition

* [ios, macos] Made MGLSphericalPosition boxable

* [ios, macos] Implemented array enumeration during conversion

* [ios, macos] Temporarily ignore heatmap layer type

* [ios, macos] Migrated MGLSymbolStyleLayer.text to NSExpression

MGLSymbolStyleLayer.text is now of type NSExpression instead of MGLStyleValue, as a first step toward migrating the entire layer API from style values to expressions.

Implemented conversions from NSExpression to JSON arrays and vice versa. The most common NSExpression functions are now converted into style expressions, but not all of the most common style expression operators are supported yet.

* [ios, macos] Implemented string coercion

* [ios, macos] Color literals

* [ios, macos] Null constant expressions

* [ios, macos] Convert dictionary literals

* [ios, macos] Interpolation expressions

* [ios, macos] to-boolean, to-number, get from object

* [ios, macos] Variable expressions

Implemented custom expression functions for assigning and referring to variables within the context of an expression. Variables are assigned via a “context dictionary” and applied to an subexpression that is given as another argument to the same expression. Also implemented built-in variable expressions for zoom level and heatmap density.

* [ios, macos] Convert colors, offsets, padding in expressions to JSON objects

* [ios, macos] Expression-based style property getters

Implemented a conversion from mbgl::style::PropertyValues to Objective-C JSON objects, which are then converted to NSExpressions.

* [ios, macos] Consolidated property value–expression conversion in MGLStyleValueTransformer

* [ios, macos] Predicate and expression guide

Extracted documentation about predicates from a documentation comment in MGLVectorStyleLayer.h to a new jazzy guide. Added details about NSExpression support as well. Began updating the “For Style Authors” guide to reflect the transition from style values to expressions.

* [ios, macos] Updated style authoring guide

Updated the Information for Style Authors guide to discuss expressions instead of style functions. Included a table mapping style specification expression operators to NSExpression syntaxes.

* [ios, macos] Migrated codegen templates to expressions

* [ios, macos] Applied expression changes via codegen

Ran make darwin-style-code.

* [macos] Migrated macosapp to expressions

* [ios, macos] Updated style function guide

This guide needs to be thoroughly rewritten, but for now the example code has been migrated to expressions.

* [ios, macos] Eviscerated style function tests

* [ios, macos] Updated changelogs

* [ios] Migrated iosapp to expressions

* [ios, macos] Exposed JSON conversion methods publicly

* [ios, macos] Removed MGLStyleValue, MGLStyleFunction
2018-01-24 00:04:02 -08:00
Minh Nguyễn
40a0b2deb7 [android, ios, macos] Added Hebrew localization 2018-01-19 15:57:54 -08:00
Fabian Guerra
187b6dc31c Merge branch 'release-agua' into master
# Conflicts:
#	circle.yml
#	cmake/core-files.cmake
#	platform/android/CHANGELOG.md
#	platform/android/MapboxGLAndroidSDK/build.gradle
#	platform/android/MapboxGLAndroidSDK/gradle.properties
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/CameraChangeDispatcher.java
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMapOptions.java
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/text/LocalGlyphRasterizer.java
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/BitmapUtils.java
#	platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml
#	platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/DebugModeActivity.java
#	platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/LocalGlyphActivity.java
#	platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/MyLocationTintActivity.java
#	platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_local_glyph.xml
#	platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml
#	platform/darwin/src/MGLMapSnapshotter.mm
#	platform/darwin/src/MGLRendererConfiguration.h
#	platform/ios/CHANGELOG.md
#	platform/ios/DEVELOPING.md
#	platform/ios/INSTALL.md
#	platform/ios/README.md
#	platform/ios/resources/bg.lproj/Localizable.strings
#	platform/ios/resources/es.lproj/Localizable.strings
#	platform/ios/resources/vi.lproj/Localizable.strings
#	platform/ios/src/MGLMapView.mm
#	platform/macos/macos.xcodeproj/project.pbxproj
#	src/mbgl/text/glyph_manager.cpp
2018-01-04 12:55:19 -06:00
Andrew Kitchen
314c51611c [darwin, ios, macos] Introduces an MGLRendererConfiguration class
Instructions for enabling client-side rendering of CJK glyphs live in
this header, and this class provides the rest of the values needed for
instantiating the renderer on iOS and macOS.
2018-01-03 11:37:53 -06:00
Jason Wray
637892cd6f [ios, macos] Move private categories into explicitly private headers
Instead of creating `MGLAdditions` categories/files for our own classes, this standardizes on the `Private` convention that we had been using elsewhere.

This also fixes build errors where the `MGLAdditions` categories weren't importing their parents.
2018-01-02 19:36:31 -05:00
Minh Nguyễn
7f5dfb16bc Update iOS, macOS SDK translations (#10738)
* [ios, macos] Updated Bulgarian, Spanish, Vietnamese localizations

* [ios, macos] Added Arabic localization

* [ios, macos] Updated localizations
2017-12-20 02:26:05 -08:00
Jason Wray
f10377d416 [ios, macos] Update to Xcode 9.x build settings 2017-12-15 19:21:38 -05:00
Andrew Kitchen
b2f06677a7 [darwin, ios, macos] Introduces an MGLRendererConfiguration class
Instructions for enabling client-side rendering of CJK glyphs live in
this header, and this class provides the rest of the values needed for
instantiating the renderer on iOS and macOS.
2017-12-11 10:43:00 -08:00