Skip to content

Latest commit

 

History

History
251 lines (206 loc) · 19.5 KB

CHANGELOG.md

File metadata and controls

251 lines (206 loc) · 19.5 KB

Changelog for Mapbox Maps SDK v10 for Android

Mapbox welcomes participation and contributions from everyone.

10.0.0-beta.19 - May 5, 2021

Breaking changes ⚠️

  • Remove temporary CustomMapInterface used for testing, obsolete with having interface inheritance from upstream. (#296)
  • Align MapCameraManagerDelegate with MapCameraManagerInterface (#293)
  • Refactor CameraOptions and change MapboxMap.getCameraState method to return non-nullable CameraState record
  • Remove MapboxMap.getMinZoom, MapboxMap.getMaxZoom and MapboxMap.getScale methods that are duplicate of functionality provided by MapboxMap.getBounds. MapboxMap.getBounds returns new CameraBounds type with non-nullable fields.
  • Remove MapboxMap.setDefaultFramebufferObject.
  • Remove MapboxMap.dumpDebugLog.
  • Remove isPanning, isRotating, isScaling and cancelTransitions methods from MapboxMap. Controlling map animations should be done with camera animation plugin.
  • Remove following methods from MapCameraManagerDelegate (formerly MapCameraDelegate): getLan(), getLon(), getPitch(), getBearing(), getPadding(), setBearing(double). Those properties could be accessed now from MapCameraManagerDelegate.cameraState directly.

OfflineManager and CacheManager

  • Introduce TileStoreUsageMode enum and use it in resource options. New enum allows to set tile store usage mode in an non ambiguous way.
  • Cache manager asynchronous calls complete even after the cache manager instance gets out of scope on the client side. Fix possible crash on setDatabasePath() call
  • CacheManager::prefetchAmbientCache() semantics is updated

Features ✨ and improvements 🏁

  • Add styleUri property in MapInitOptions (#287)
  • Refactored plugin system to have more granular control over which plugins are loaded when creating a MapView programmatically. (#231)
  • Instrument tests for offline (#290)
  • Cleanup kdoc documentation, remove html tags (#305)
  • Reduce GPU memory usage by reusing depth stencil buffer for terrain rendering

Bug fixes 🐞

  • Request layout when updating ornaments margins, making updates immediate (#292)
  • Remove runtime plugin dependency for legacy location plugin. (#295)
  • Fix an issue that causes the extension functions not discoverable from downstream projects. (#299)
  • Style and map error loading listeners are only called for the style that was associated to the listeners when style loading started. This avoid calling the wrong listeners with multiple style loads. Renamed Style#isStyleLoadInited to Style#isStyleLoadInitiated. (#300)
  • Fix crash if doing setCamera during map loading (#310)
  • Fix map rendering issue when text-field's inline images used with complex case expressions
  • Fix erroneous font eviction when text-field's formatted sections have text-font overrides
  • Fix Adreno specific crash that happens when terrain is enabled
  • Fix OfflineManager network errors handling
  • Fix map rendering issue when feature-state and terrain features are enabled
  • The ResourceRequest event response.offline-data field now indicates whether or not the response came from tile store

Dependencies

  • Bump to gl-native v10.0.0-beta.21, update common v11.0.2. (#304)

10.0.0-beta.18 - April 22, 2021

Breaking changes ⚠️

  • Rename MapView plugin extension functions. (#272)
    • mapView.getAnnotationPlugin() -> mapView.annotations
    • mapView.getGesturesPlugin() -> mapView.gestures
    • mapView.getOverlayPlugin() -> mapView.overlay() // using function here because of experimental annotation
    • mapView.getLocationComponentPlugin() -> mapView.location
    • mapView.getCameraAnimationsPlugin() -> mapView.camera
    • mapView.getAttributionPlugin() -> mapView.attribution
    • mapView.getCompassPlugin() -> mapView.compass
    • mapView.getLogoPlugin() -> mapView.logo
    • mapView.getScaleBarPlugin() -> mapView.scalebar
  • Remove deprecated location plugin (#276)
  • Add feature sdk initialisation (#269)
    • Load the Mapbox Street style by default if user doesn't load any style before the onStart lifecycle event.
    • Introduce CredentialsManager to manage mapbox access token, when all MapViews should use same token could be handled by using CredentialsManager.shared static object.
    • Introduce MapInitOptions to replace MapboxMapOptions.

Features ✨ and improvements 🏁

  • High-level animations return cancelable interface (#262)
  • Introduce OfflineManager API that manages style packs and produces tileset descriptors for the tile store.
    • By default, users may download up to 250MB of data for offline use without incurring additional charges. This limit is subject to change during the beta.
    • The new API replaces the deprecated OfflineRegionManager API. The OfflineManager API can be used to create offline style packs that contain style data, such as: style definition, sprites, fonts and other resources. Tileset descriptors created by the OfflineManager API are used to create tile packs via TileStore API. Mobile maps SDKs use tile packs for rendering map content.
  • Add offline activity example. (#259)
  • Load the Mapbox Street style by default if user doesn't load any style before the onStart lifecycle event(#248)

Bug fixes 🐞

  • Keep CompassPlugin enabled/disabled state after other properties update (#252)
  • Fix disabling logo in xml. (#273)
  • Introduce StyleInterface that include the current display's pixel ratio, and fix Style#addImage to take the correct pixel ratio from display. (#228)
  • Properly reset anchor after some gestures。 (#279)
  • Remove animator cancel listeners logic duplicating end listeners logic. (#280)

Dependencies

  • Bump gl-native to v10.0.0-beta.20, common to v11.0.1 (#261)

10.0.0-beta.17 - April 14, 2021

Breaking changes ⚠️

  • [Annotation plugin] Rename annotation classes, the rules are as follows and applied for Annotations/Options/Managers (#227)
    • Symbol -> PointAnnotation
    • Circle -> CircleAnnotation
    • Line -> PolylineAnnotation
    • Fill -> PolygonAnnotation
  • mapboxMap.queryRenderedFeatures will return a new data class QueriedFeature which will contain additional properties (#247):
    • source (id of the source)
    • sourceLayer (id of the source's layer)
    • state (feature's state)
  • Rename Style#isStyleFullyLoaded to Style#isStyleLoaded
  • Remove old map#drag API and the AnimationOptions API
  • Don't emit MapIdle event when there is gesture and / or user animation in progress
  • Make overlay plugin experimental (#233)

Features ✨ and improvements 🏁

  • Introducing NetworkConnectivity API (offline switch). If setting setMapboxStackConnected(false), the Reachability API will report NotReachable, http requests are being blocked and if running, cancelled.
  • Added new CameraManager.cameraForCoordinates overload
  • Added support for query rendered features for Circle Layer on Terrain
  • Enable identical code folding and -lto-O3 optimizations to reduce binary size of native map shared library

Bug fixes 🐞

  • Fix runtime crash if logo / attribution not enabled (#240)
  • Fixed a bug that causes map not loading when connected through ethernet.
  • Fix distance expression parsing for geometries containing over 20k points
  • Fixed holes in the ground for terrain with negative elevation
  • Make StyleImageMissing callback a no-op after ImageManager destruction
  • Reset unprocessed event queue for destructed renderer
  • Fix clipping of fill-extrusions on near plane
  • Set 'clusterMaxZoom' to be 'maxZoom-1' when it is not provided
  • Fix crash for the case when MapSnapshotter object is destructed from within user provided callback
  • Terrain render cache now disabled during property transitions
  • Fix missing terrain tiles when camera is on mountain peak
  • Black screen not used during loading anymore, prefering platform background
  • Emit CameraChanged, SourceAdded(Removed) and StyleImageMissing events synchronously

Dependencies

  • [deps] Bump gl-native to v10.0.0-beta.19, common to v11.0.0 (#247)

10.0.0-beta.16 - March 25, 2021

Breaking changes ⚠️

  • Remove ModelLayer and ModelSource API (#128)
  • Refactor Event API into new Observers. (#166)
  • Bump minSdkVersion of the SDK to 21, and bumped okhttp dependency to v4.9.0. (#176)
  • Rename jumpTo(options: CameraOptions) to setCamera(options: CameraOptions), rename setFreeCameraOptions (options: FreeCameraOptions) to setCamera(options: FreeCameraOptions). (#176)
  • Rename OnMapLoadingFinishedListener to OnMapLoadedListener. (#176)
  • Introduce OnStyleDataLoadedListener to replace OnStyleLoadingFinishedListener, and introduce OnSourceDataLoadedListener to replace OnSourceChangedListener. So that developers have granular control of style/source loading status. (#176)
  • Introduce coordinateBoundsForCamera() API to replace the getRegion() API. (#176)
  • Remove MapObserver from MapSurface's constructor. (#200)

Features ✨ and improvements 🏁

  • [Annotation plugin] Add symbol cluster support (#122)
  • [map] Make public API entry points as MapView and Snapshotter (#149)
  • [plugins] Remove PluginRequirementException (#158)
  • Use String protocol for passing GeoJSON data (#162)
  • [Annotation plugin] Set default values for annotation option properties to null. (#173)
  • [rendering] Schedule non-rendering tasks on Android's scheduler to improve render performance. (#176)
  • [rendering] Query rendered features now work for fill-extrusions when terrain is enabled. (#176)
  • [rendering] Improved terrain rendering performance due to reduction of loaded tiles. (#176)
  • [doc] Change http link to markdown style in doc (#187)
  • [rendering] Differentiate render tasks and non-render tasks (#192)
  • [gestures] Introduce platform-driven drag API to move a map (#201)

Bug fixes 🐞

  • [Annotation plugin] Implement MapStyleObserverPlugin to listen style load event to reload layer and source (#161)
  • [gestures] Fix crash if zooming for SDK less than 23 (#171)
  • Fix an issue that will result in map not rendering on a device with Ethernet connection. (#176)
  • Fix the crash when running maps on the emulator. (#176)
  • Patch scroll gesture with a pitched camera (#184)
  • [locationcomponent] Fix jitter animations if interrupting animations (#185)
  • [animation] Fix zero duration animators, fix medium-level animators to use only CameraAnimators (#198)
  • [animations] Fix interpolation for flyTo (#202)

Dependencies

  • Update minSdkVersion of the SDK to 21, and bumped okhttp dependency to v4.9.0. (#176)
  • Update gl-native to v10.0.0-beta.17, common to v10.0.2 (#176)

10.0.0-beta.15 - March 5, 2021

Bugs

  • [annotation] Fix text-font issue in annotation plugin. (#144)

Dependencies

  • [gl-native] Update to v10.0.0-beta.16, common to beta.12 (#137)

10.0.0-beta.14 - February 24, 2021

Breaking changes

  • [map] Change signature of Map#getElevation from Float to Double #120
  • [map] Fixed text-field strings are now returned as formatted expressions #120
  • [annotation] Rename getAnnotationManger to createAnnotationManager #105
  • [style] GeoJsonSource data property can't be empty #120

Features

  • [location-component] Add isLocatedAt API to location component plugin #99
  • [snapshot] Introduce interfaces for style events and snapshot result #124
  • [annotation] Process anchor animators correctly #109
  • [annotation] Limit adding style images multiple times for annotations #118
  • [annotation] Add GeoJSONOptions configuration #79
  • [annotation] Show all icons and text from annotation manager by default #115
  • [animation] Add kotlin dsl builder for CameraOptions and java builders for CameraAnimatorOptions and MapAnimationOptions #90
  • [map] Better use of Choreographer inside renderer resulting to smoother map animations #107
  • [gestures] change default interpolator from Decelerate to LinearOutSlowIn #103

Bugs

  • [compass] Hide the compass on startup when facing north #116
  • [annotation] Change default value of text font for symbols to null #111
  • [map] Remove renderStill from public API #104
  • [style] Rename reference to style plugin and converting them to style extension #123
  • [annotation] Expose collection of annotations as a List instead of Map #121
  • [camera] Trigger map camera change updates immediately, Fix order of animation callbacks in camera animation plugin #125

Dependencies

  • [gl-native] update to v10.0.0-beta.15 #120
  • [common] update to v10.0.0-beta.11 #120

10.0.0-beta.13 - February 10, 2021

Features

  • [map] Expose FPS listener #80
  • [annotation] Add convenience color int API #76
  • [annotation] Add convenience bitmap API for symbols #67
  • [annotation] Make getting annotation manager configurable #47
  • [location] Improve the default location provider and improve handling of location updates #58
  • [location] Add OnIndicatorPositionChangedListener and OnIndicatorBearingChangedListener #56

Bugs

  • [map] allow getSourceAs returning null values, handle cast gracefully #88
  • [animation] remove internal plugin singleton, support multi display maps #70
  • [telemetry] correct versioning of BuildConfig #65
  • [annotation] Fix offset array not working issue #60
  • [plugin] make xml attribute parsers internal #81

Dependencies

  • [gl-native] update to v10.0.0-beta.14 #87
  • [common] update to v10.0.0-beta.9.1 #87

10.0.0-beta.12 - January 27, 2021

Announcement

V10 is the latest version of the Mapbox Maps SDK for Android. v10 brings substantial performance improvements, new features like 3D terrain and a more powerful camera, modern technical foundations, and a better developer experience.

To get started with v10, please refer to our migration guide.

Known Issues

Style

  • Currently there is no compile-time validation of the Style DSL, exceptions will be thrown in runtime.

Location

  • Location component plugin is still under active development and the interfaces are subject to change.

3D Terrain

  • 3D Terrain is in an experimental state
  • 3D Terrain crashes on specific GPU hardware:
    • Qualcomm Adreno 640

Other

  • Annotation plugin is not feature complete with the old implementation
  • Restricting the map to a bounds that includes the antemeridian will result in an invalid jump to the left side of the bounds.
  • Known deficiencies with max and min zoom map properties
  • An invalid LatLng conversion can occur and produce a native crash
  • Native crash when resuming the map in specific situations
  • Native crash when performing a camera transition using Map#jumpTo