Commit Graph

507 Commits

Author SHA1 Message Date
Fabian Guerra Soto
5c565a5e51 [ios] Fixes an issue that caused the ornaments ignore contentInset property. (#15584)
* [ios] Add mapView content inset tests.

* [ios] Fix an issue that caused the ornaments ignore the contentInsets.

Fixed an issue that caused ornaments ignore the contentInset. Added a new property automaticallyAdjustContentInset that has the same purpose as UIViewController. automaticallyAdjustsScrollViewInsets. This was changed due to the latter being deprecated.

* [ios] Fix automaticallyAdjustsScrollViewInsets legacy behavior.

The property automaticallyAdjustsScrollViewInsets overrode automaticallyAdjustsScrollViewInsets which caused a breaking change. This is fixed to consider the legacy property when calculating the content insets and added tests for both cases.

* [ios] Fix the contentInset value after adding padding to the camera.

Fixed an issue that caused a discrepancy between the contentInset in MGLMapView and the padding in the transformation state.

When padding is passed through methods such as setCamera it’s persisted. This fix resets the contentInsets.

* [ios] Fix pinch test.

* [ios] Update automaticallyAdjustsScrollViewInsets name and documentation.

* [ios] Update changelog.
2019-10-04 17:13:00 -07:00
Julian Rex
cab756374f [ios] Fix layout of Scale bar components (#15703)
* [ios] Add failing tests for scale bar updates.

* [ios] Remove borderLayer

* [ios] Ensure bar sections have non-fractional width

* [ios] Add RTL override

* [ios] Update constraints/layout

* [ios] Invalidate scalebars size, after the parent's layout has happened (to ensure the view dimensions are correct when re-laying out the scale bar.

* [ios] Refactor layout

* [ios] Update changelog / remove commented code.

* [ios] Remove whitespace

* [ios] Stop integration tests asserting (when scale bar is hidden). Also reduces the # of calculations (since updateConstraints and layoutSubviews can be called outside of our control).

* [ios] Moves declaration of properties for testing.

* [ios] Removes redundant property attribute

* [ios] Updated change log
2019-10-04 11:15:20 -04:00
Jason Wray
45140af7cb [ios] Refactor way location permissions are requested 2019-09-09 17:25:42 -07:00
Jordan Kiley
39af6b48c5 [ios] Remove feature flag for rotation threshold (#15562) 2019-09-04 14:35:56 -07:00
Ander Conselvan de Oliveira
21632a66f8 [core] Remove programCacheDir parameter from ProgramParameters
Binary shader support has been removed in commit c2f974f2a5 ([core]
Remove binary shader support). This left-over parameter is not used
anywhere anymore.
2019-08-27 16:23:48 +03:00
Julian Rex
4010b1d256 [ios] Added pending completion blocks (#15122) 2019-08-25 01:02:29 -04:00
Fabian Guerra Soto
5c066f874c [ios] Improve tilt gesture recognizer detection. (#15349)
* [ios] Improve tilt gesture recognizer detection.

* [ios] Update tilt gesture detection angles.

* [ios] Fix a delay at the beginning of the drag gesture.

* [ios] Update tilt gesture recognizer tests.

* [ios] Update changelog.

* [ios] Add horizontal tilt gesture test.

* [ios] Addresses review feedback.

* [ios] Add comments to clarify the tilt gesture initialization.
2019-08-23 17:59:38 -07:00
Jason Wray
0e57c7de44 [ios] Refactor NSUserDefaults key variable names 2019-08-21 12:14:20 -07:00
Jordan Kiley
6f78560f24 [ios] Add threshold for triggering the rotate gesture recognizer (#14929) 2019-08-20 22:12:08 -07:00
Aleksandar Stojiljkovic
d968cbba15 [ios][macos] Fix center coordinate incorrect after pinch gesture
To changelog:
Fixed incorrect center coordinate after pinch regression caused by edge insets fix (#14664).

While working on #14664, missed to understand the logic used in

```
                CLLocationCoordinate2D centerCoordinate = _previousPinchCenterCoordinate;
                mbgl::EdgeInsets padding { centerPoint.y, centerPoint.x, self.size.height - centerPoint.y, self.size.width - centerPoint.x };
                self.mbglMap.jumpTo(mbgl::CameraOptions()
                                        .withCenter(MGLLatLngFromLocationCoordinate2D(centerCoordinate))
                                        .withPadding(padding));

```

Replacing this code by moveBy achieves the required translation.

Fixes: #14977, #15082
2019-07-14 22:20:56 +03:00
Jason Wray
5b488225fb [ios] Add MGLCompassButton and MGLOrnamentVisibility 2019-07-11 16:06:54 -07:00
Fabian Guerra Soto
12e0a6b0c6 [ios] Add removeStyleImage to MGLMapView (#14769)
* [ios] Add shoulRremoveStyleImage to MGLMapViewDelegate.

* [ios] Changelog update.

* [ios, macos] Update shouldRemoveStyle method documentation.
2019-07-02 16:33:09 -07:00
Jason Wray
8a9567e072 [ios, macos] Deprecate methods in favor of new completion handler versions 2019-06-26 12:18:22 -07:00
Minh Nguyễn
f7f74a6deb [ios, macos] Added completion handlers to animated MGLMapView methods 2019-06-21 17:45:36 -07:00
Jason Wray
b98dbd2121 [ios] Require two fingers for duration of tilt gesture 2019-06-20 10:33:32 -07:00
Alexander Shalamov
a71ccae141 [ios] Add integtation test that verifies MGLMapViewImpl size 2019-06-05 00:03:13 -07:00
Alexander Shalamov
0ba0b8c040 [ios] Calculate size of a MGLMapViewOpenGLImpl renderable from MGLMapView bounds
Fixes: #14807
2019-06-05 00:03:13 -07:00
Fabian Guerra Soto
402645109f [ios] Fix content insets with custom edge padding. (#14813)
* [ios] Fix content insets with custom edge padding.

* [ios, macos] Consolidated edge insets math

* [macos] Add content insets to edge padding when setting camera

* [ios, macos] Updated changelogs

* [ios, macos] Clarify setCamera:withDuration:animationTimingFunction:edgePadding method documentation.
2019-06-03 07:32:20 -07:00
Aleksandar Stojiljkovic
1637a4b694 [ios] Content insets border case fix and comment.
Allows changing camera when user duplicates content insets.

Related to previous patch and comment:
https://github.com/mapbox/mapbox-gl-native/pull/14664#pullrequestreview-243004376
Thanks @1ec5
2019-06-03 08:55:39 +03:00
Konstantin Käfer
9eb43a587b [ios,macos] refactor MGLMapViewImpl 2019-05-29 18:27:42 +02:00
Aleksandar Stojiljkovic
e5431d0181 Asymmetric viewport changelog entry
Check edge insets difference, in addition to isEqualToMapCamera in all the places in MGLMapView before map.easeTo/map.flyTo.
2019-05-28 14:38:01 +03:00
Aleksandar Stojiljkovic
9809c9f8f5 [core] Offset viewport center when edge insets are specified
The change is implemented in TransformState::getProjMatrix, the rest of the code is making sure that existing API contracts stay and there are tests verifyingrendering and render query processing only items within screen and given tolerance around screen edges.

MapView: don't bake edge insets into relalculated camera center. Keep edge insets as property of camera in TransformState (similar to pitch, zoom, bearing) independent from specified camera center. Interpolate edge insets in animation.

iOS Demo app: "Turn On/Off Content Insets" pitch the camera and navigate to convenient location in Denver, where streets are parallel to cardinal directions, to illustrate viewport center offset when edge insets are set.

Tests:
ViewFrustumCulling: although Annotations are deprecated, queryRenderedFeatures related tests in Annotations would need to get ported and decided to add the edge insets related query tests next to them. Verify frustum culling (render+queryRenderedFeatures) With different camera and edge insets setups. TODO: port Annotations tests.

Transform.Padding: Verify that coordinates take proper place on screen after applying edge insets.

LocalGlyphRasterizer: verify text rendering when applying padding.

Related to #11882: both use projection matrix elements [8] and [9].

Alternative approach to this was to increase and offset map origin so that the screen would be a sub-rectangle in larger map viewport. This approach has a drawback of unecessary processing the items that are outside screen area.

Fixes #12107, #12728, navigation-sdks/issues/120
2019-05-28 14:38:01 +03:00
Thiago Marcos P. Santos
06f1dc48a2 [core] Make the BackgroundScheduler a singleton
- Do not carry it over everywhere as parameter, it is a shared
  instance anyway and the lifecycle is pretty much the app lifecycle
  from the moment we instantiate a map.
- Rename to BackgroundScheduler because it is a Scheduler that will
  do tasks in the background, we don't make assumptions if it is a
  thread pool or a single thread.
- Most importantly, remove the dependency from `core` on `platform`.
2019-05-10 14:20:38 +03:00
Jason Wray
49b8e0a626 [ios] Remove obsolete telemetry gesture events 2019-05-09 14:52:44 -07:00
Minh Nguyễn
e69efb996d [ios] Interpret negative direction as unchanged when setting visible coordinates (#14575)
* [ios] Fixed negative direction when setting visible coordinates

* [ios] Document behavior of negative direction
2019-05-03 09:02:03 -07:00
Julian Rex
f7915fdc51 [ios] Static analysis fix tweaks - part 2 (#14572) 2019-05-02 14:08:48 -04:00
Julian Rex
9bd59bf041 [ios, macos] Fixes for static analyzer warnings (#14453) 2019-04-30 17:08:37 -04:00
Julian Rex
b15b78346f [ios] Check for valid superview to avoid crash on iOS 9 (#14529) 2019-04-30 16:11:14 -04:00
Julian Rex
dfb88e3541 [ios] Consider anchored UIView callouts when deciding whether to enable presentsWithTransaction (#14445) 2019-04-17 15:06:46 -04:00
Julian Rex
425553646b [ios] Ensure glFinish is called when going into the background, and block rendering in the background (#14439) 2019-04-16 22:49:34 -04:00
Konstantin Käfer
e95bf4dd9b [ios] run glFlush when reducing memory and don't reduce memory while in background (#14383) 2019-04-11 09:57:35 -04:00
Lloyd Sheng
8c5c4dd565 [ios] Fix issue wrong position of attribution dialog after rotation (#14185)
* Fix issue #12897
2019-04-11 16:48:53 +08:00
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
Konstantin Käfer
1d58850d0c [core] remove Renderer::flush 2019-04-05 11:49:17 +02:00
Konstantin Käfer
5cc3d7a733 [core] move GLContextMode to RendererBackend 2019-04-05 11:49:17 +02:00
Konstantin Käfer
66c020034e [core] refactor RendererBackend 2019-04-05 11:49:17 +02:00
Konstantin Käfer
a782a6d15b [core] move BackendScope to gfx namespace 2019-04-05 11:49:17 +02:00
Jordan Kiley
1aa705c2f6 [ios] Add iOS bindings and example for missing icons event. (#14302)
Added a new mapView delegate method that allows reload a style icon in case it couldn't load it from the style.

Added an iosapp test example.
2019-04-03 12:37:56 -07:00
Julian Rex
c7b709c5af [ios] Enable/disable presentsWithTransaction to address #14232 (#14307) 2019-04-03 11:50:11 -04:00
Sudarsana Babu Nagineni
7af00a404f [core] Include pixelRatio property in MapOptions
Move pixelRatio property from Map constructor to MapOptions.
2019-03-28 16:41:15 +02:00
Sudarsana Babu Nagineni
1cc1d4ea08 [core] Add setter/getter for size property in MapOptions 2019-03-28 16:41:15 +02:00
Sudarsana Babu Nagineni
e639087c91 [core] Add getter for Map options
Instead of having individual getter for each Map option,
add a common getter for all Map options.
2019-03-28 16:41:15 +02:00
Julian Rex
c7d53676d0 [ios, core] Updates project for iOS SDK 12.2 / Always use vendored optional (#14241) 2019-03-27 09:58:41 -04:00
Bruno de Oliveira Abinader
ac6855a473 [core] Fix signature of fluent interface setters 2019-03-23 09:12:44 +02:00
Jason Wray
07845b1208 [ios] Nitpicky style edits of recent changes 2019-03-21 14:26:11 -07:00
Bruno de Oliveira Abinader
d5868d3da8 [core] Remove file source from public Map ctor 2019-03-20 21:30:08 +02:00
Bruno de Oliveira Abinader
8ac73254c1 [darwin] [MGLOfflineStorage mbglFileSource] is now a shared_ptr 2019-03-20 21:30:08 +02:00
Ander Conselvan de Oliveira
5733440747 [core] Group Map LatLngBounds, min and max zoom methods
Group bounds, minimum and maximum zoom related methods together using
the new BoundOptions.

v2: Document that getBounds() initializes all optional fields.
  - Add test for getBounds() on a map with default values.
2019-03-14 18:33:11 +02:00
Bruno de Oliveira Abinader
8cc100bfd5 [core] Get FileSource via UpdateParameters in Renderer::Impl 2019-03-13 17:56:44 +02:00
Ander Conselvan de Oliveira
7d19115720 [core] Don't use exceptions in MapObserver::onDidFailLoadingMap
Using different exception pointers to specify the loading failure makes
an awkward API. Most users rethrow the exception only to figure out what
type of error happened so it can be reported properly. So replace the
exception pointer with a enum an string description of the failure.
2019-03-13 11:58:27 +02:00