Releases: mapbox/mapbox-maps-android
Releases · mapbox/mapbox-maps-android
android-v10.7.0
10.7.0 July 29, 2022
Changes since Mapbox Maps SDK for Android 10.6.0
Breaking changes ⚠️
- Remove deprecated
FollowPuckViewportStateOptions.animationDurationMs
from experimental viewport plugin. (1421) - Remove experimental ModelLayer APIs. (1545)
Features ✨ and improvements 🏁
- Optimise the bearing update frequency for the location puck animator. (1398)
- Use
orientation
model source property to update the 3D puck's bearing, as it is more efficient than updating themodel-rotation
layer property. (1407) - Optimize
MapboxMap.loadStyle()
to apply images and models earlier. 1378 - Remove
MapboxExperimental
annotation from viewport plugin and promote viewport plugin as stable API. (1425) - Introduce
addRendererSetupErrorListener
/removeRendererSetupErrorListener
methods forMapView
andMapSurface
to listen to renderer setup errors and give opportunity to control some edge cases. (1427) - Introduce transition properties for atmosphere and terrain. (1451)
- Enable main thread checking on the map/style object when running applications in debug build. This utility class will crash the application if these objects are accessed from a worked thread. It's required to call these object functions on the main thread, otherwise you can hit edge case crashes. This configurations is advised but can be opted out with a Manifest metadata entry of
com.mapbox.maps.ThreadChecker
and corresponding false value. (1316). - Introduce view annotation
ViewAnnotationManager.setViewAnnotationUpdateMode
/ViewAnnotationManager.getViewAnnotationUpdateMode
API with following synchronization modes: MAP_SYNCHRONIZED (used by default) and MAP_FIXED_DELAY. (1415) - Introduce
FillExtrusionLayer.fillExtrusionAmbientOcclusionIntensity
andFillExtrusionLayer.fillExtrusionAmbientOcclusionRadius
properties for FillExtrusionLayer. (1458) - Introduce
PointAnnotation.textLineHeight
and deprecatedPointAnnotationManager.textLineHeight
, astext-line-height
is data-driven property now. (1458) - Method
MapboxMap.cameraForCoordinates
now allows to ignore edges of framing box dynamically depending on the position of the principal point of the camera. (1543) - Synchronize volatile data (like traffic tiles) in multi-map environment. Decrease network traffic. (1543)
- Make uploading of large graphics data asynchronous to improve rendering speed in particular on zooming in/out. (1543)
- Reuse single index buffer in symbol layer rendering. (1543)
- Use shared index buffers per tile to reduce the time spent in the upload pass. (1543)
- Reduce geometry on globe tile to increase rendering performance. (1543)
- Improve rendering performance with deleting layer render data on a worker thread. (1543)
- The deprecated Settings API is using the same non-persistent storage as the SettingsService API from Common SDK so that all settings consolidated in a single place. (1543)
- Support using
line-trim-offset
property with pure line color. (1543) - Render cache and terrain can now have mipmapping enabled to reduce aliasing. (1543)
- Fast ambient occlusion support for fill extrusion layer. (1543)
- Add API to create tileset descriptor from a tilesets list. (1543)
- Add API
OfflineManager::createTilesetDescriptor(TileDescriptorOptionsForTilesets)
to create tileset descriptor from a tilesets list. (1543)
Bug fixes 🐞
- Fix lifecycle edge cases not being handled properly by introducing internal
ViewLifecycleOwner
to have granular control over MapView's lifecycle. (1330) - Fix an issue when
literal
array expression is used as output inside thematch
expression. (1444) - Fix skipping gesture updates resulting in slower gestures on low-end devices. (#1440)
- Fix excessive logs appearing sometimes after
onStop
lifecycle event. (1527) - Fix
com.mapbox.maps.MapboxMapException
crash on style load. (1532) - Avoid NaN when converting screen coordinates to geographical coordinates executed as part of gesture. 1491
- Remove android.permission.WAKE_LOCK permission from the SDK. (1494)
- Fixes a bug when map aligned symbol layers are placed on top of other layers if draping is active. (1543)
- Fix tile flickering with globe on rapid zooming in/out. (1543)
- Fixed
cameraForCoordinateBounds
method returning different values for the same input. (1543) - Fix setting
exaggeration-transition
property viasetStyleTerrain
API. (1543) - Fix SDK fragment format in turnstile user agent. (1543)
- Fix view annotation occlusion issue when terrain enabled. (1543)
- Fix symbol flickering issue when
textAllowOverlap
oriconAllowOverlap
is true. (1543) - Fixes rendering issues with the globe on unsupported hardware by falling back to mercator projection. (1543)
- Fixed feature states not being applied on new tiles when zoom doesn't change. (1543)
- Disable MapBuffer OpenGL extension on PowerVR SGX 544MP GPUs to fix incorrect usage of unimplemented methods. (1543)
- Fix incorrect image source rendering with terrain enabled. (1543)
- Fix possible crash bug in image processing. CVE-2022-38216 (1543)
- Fix some cpu-updated symbols being invisible in globe view. (1543)
- Fix zoom constraining issue when the input
maxZoom
is smaller than the currentminZoom
value. (1543) - Fix crash on calling Query Rendered Features API from renderer thread before initialising the renderer. (1543)
- Fix tile pre-fetching for the globe map projection. (1543)
- Relayout tiles after recovering from Metal rendering errors. (1543)
- Fix a bug where changing size of the map would lead map center getting changed as well. (1543)
Dependencies
- Bump telemetry to v8.1.5. (1494)
Also bumps WorkManager 2.7.1 that enforces compileSdk 31 or newer. - Bump gl-native to v10.7.0, common to 22.1.0. (1543)
android-v10.6.2
10.6.2 - July 15, 2022
Dependencies
- Bump gl-native to v10.6.2. (#1505)
-
Changelog
- Bug fixes 🐞
- Disable MapBuffer OpenGL extension on PowerVR SGX 544MP GPUs to fix incorrect usage of unimplemented methods
- Bug fixes 🐞
-
- Bump telemetry to v8.1.5. (#1505)
Also bumps WorkManager 2.7.1 that enforces compileSdk 31 or newer.-
Changelog
- Bug fixes 🐞
- [libtelemetry] Bump workManagerVersion to 2.7.1, add JavaVersion.VERSION_1_8 to compileOptions mapbox/mapbox-events-android#573
- Bug fixes 🐞
-
android-v10.7.0-rc1
10.7.0-rc.1 - July 14, 2022
Features ✨ and improvements 🏁
- Introduce experimental
ModelLayer.modelCastShadows
andLocationPuck3D.modelCastShadows
property. (1480) - Add model-cast-shadows paint property to model layer to allow turning off shadow casting per model layer. (1497)
- Reuse single index buffer in symbol layer rendering. (1497)
- Use shared index buffers per tile to reduce the time spent in the upload pass. (1497)
Bug fixes 🐞
- Remove android.permission.WAKE_LOCK permission from the SDK. (1494)
- Fix setting 'exaggeration-transition' property via 'setStyleTerrain' API. (1497)
- Fix SDK fragment format in turnstile useragent. (1497)
- Fix view annotation occlusion issue when Terrain enabled. (1497)
- Fix symbol flickering issue when 'textAllowOverlap' or 'iconAllowOverlap' is true. (1497)
- Fixes rendering issues with the globe on unsupported hardware by falling back to mercator projection. (1497)
- Fixed feature states not being applied on new tiles when zoom doesn't change. (1497)
- Disable MapBuffer OpenGL extension on PowerVR SGX 544MP GPUs to fix incorrect usage of unimplemented methods. (1497)
- Avoid NaN when converting screen coordinates to geographical coordinates executed as part of gesture. #1491
Dependencies
- Bump telemetry to v8.1.5. (#1494)
Also bumps WorkManager 2.7.1 that enforces compileSdk 31 or newer. - Bump gl-native to v10.7.0-rc.1, common to 22.1.0-rc.1. (#1497)
android-v10.6.1
10.6.1 - July 7, 2022
Bug fixes 🐞
- Fix an issue when
literal
array expression is used as output inside thematch
expression. (1444) - Fix possible crash bug due to image size overflow. CVE-2022-38216 (1482)
- Remove
android.permission.WAKE_LOCK
permission from the SDK. (1482)
Dependencies
android-v10.7.0-beta.1
10.7.0-beta.1 - June 29, 2022
Breaking changes ⚠️
- Remove deprecated
FollowPuckViewportStateOptions.animationDurationMs
from experimental viewport plugin. (1421)
Features ✨ and improvements 🏁
- Optimise the bearing update frequency for the location puck animator. (1398)
- Use
orientation
model source property to update the 3D puck's bearing, as it is more efficient than updating themodel-rotation
layer property. (1407) - Optimize
MapboxMap.loadStyle()
to apply images and models earlier. #1378 - Remove
MapboxExperimental
annotation from viewport plugin and promote viewport plugin as stable API. (1425) - Introduce
addRendererSetupErrorListener
/removeRendererSetupErrorListener
methods forMapView
andMapSurface
to listen to renderer setup errors and give opportunity to control some edge cases. (1427) - Introduce transition properties for atmosphere and terrain. (1451)
- Enable main thread checking on the map/style object when running applications in debug build. This utility class will crash the application if these objects are accessed from a worked thread. It's required to call these object functions on the main thread, otherwise you can hit edge case crashes. This configurations is advised but can be opted out with a Manifest metadata entry of
com.mapbox.maps.ThreadChecker
and corresponding false value. (#1316). - Introduce view annotation
ViewAnnotationManager.setViewAnnotationUpdateMode
/ViewAnnotationManager.getViewAnnotationUpdateMode
API with following synchronization modes: MAP_SYNCHRONIZED (used by default) and MAP_FIXED_DELAY. (1415) - Reduce geometry on globe tile to increase rendering performance. (#1462)
- Improve rendering performance with deleting layer render data on a worker thread. (#1462)
- Support using
line-trim-offset
property with pure line color. (#1462) - Render cache and Terrain can now have mipmapping enabled to reduce aliasing. (#1462)
- Fast ambient occlusion support for fill extrusion layer. (#1462)
- Refactor view annotation implementation to align map and annotation movement better when camera changes. (#1462)
- Add API
OfflineManager::createTilesetDescriptor(TileDescriptorOptionsForTilesets)
to create tileset descriptor from a tilesets list. (#1462) - Implement shadow rendering support. (#1462)
- Expose experimental shadow APIs for
Light
. #1447 - Introduce
FillExtrusionLayer.fillExtrusionAmbientOcclusionIntensity
andFillExtrusionLayer.fillExtrusionAmbientOcclusionRadius
properties for FillExtrusionLayer. (1458) - Introduce
PointAnnotation.textLineHeight
and deprecatedPointAnnotationManager.textLineHeight
, astext-line-height
is data-driven property now. (1458)
Bug fixes 🐞
- Fix lifecycle edge cases not being handled properly by introducing internal
ViewLifecycleOwner
to have granular control over MapView's lifecycle. (1330) - Fix an issue when
literal
array expression is used as output inside thematch
expression. (1444) - Fix skipping gesture updates resulting in slower gestures on low-end devices. (#1440)
- Fix incorrect image source rendering with terrain enabled. (#1462)
- Fix possible crash bug in image processing. (#1462)
- Fix some cpu-updated symbols being invisible in globe view. (#1462)
- Add support for terrain transition properties. (#1462)
- Fix zoom constraining issue when the input 'maxZoom' is smaller than the current 'minZoom' value. (#1462)
- Fix crash on calling Query Rendered Features API from renderer thread before initialising the renderer. (#1462)
- Fix tile pre-fetching for the globe map projection. (#1462)
- Fix a bug where changing size of the map would lead map center getting changed as well. (#1462)
Dependencies
- Bump gl-native to v10.7.0-beta.1, common to 22.1.0-beta.1. (#1462)
android-v10.6.0
10.6.0 - June 16, 2022
Changes since Mapbox Maps SDK for Android 10.5.0
Breaking changes ⚠️
- Remove deprecated (since
v10.5.0
) experimental methodsMapboxMap.setMapProjection
/MapboxMap.getMapProjection
. Those methods should be replaced with setting projection as part of Style DSL to achieve the same behavior. (1420)
Features ✨ and improvements 🏁
- Enable support for incremental annotation processing. (#1323)
- Make use of non-deprecated common Mapbox logger. (#1327)
- Expose factory methods for high-level camera animators. (#1338)
- Introduce map atmosphere and fog. Setting atmosphere and fog supports Style DSL as well. (#1344)
- Introduce experimental 3D model support. (#1351)
- Use a single shared buffer across all globe tiles to increase globe rendering performance. (#1351)
- Re-introduce partial tile loading feature that decreases map load times. (#1351)
- The
TilesetDescriptorOptions.pixelRatio
parameter is now passed to the TileStore and considered for the raster tile pack loading. This enables loading of a raster tilepacks for retina displays. (#1351) - Introduce pinchScrollEnabled configuration to enable/disable 2-finger map panning, default to true. (#1343)
- Re-throw native exceptions
jni::PendingJavaException
as readable Java exceptions with detailed exception text. (#1363) - Add static
MapView.isTerrainRenderingSupported()
method to validate if 3D terrain rendering is supported on given device. (1368) - Optimize
MapboxMap.loadStyle()
to apply styling properties earlier. #1362 - Update SDK name in attribution action sheet. (1375)
- Introduce experimental ModelLayer API to render 3D models on the map. (#1369)
- Minimise tiles relayout on camera zooming with globe view. Improve the overall performance and reduce latency of the cached tiles appearance. (#1396)
- Add minimum and maximum range check for sky layer property
sky-atmosphere-sun
andsky-gradient-center
. If the input is invalid, the default property value will be used. (#1396) - Share render data between vector render tiles referring to the same logical tile. (#1396)
- Reduce geometry on globe tile to increase rendering performance. (#1432)
Bug fixes 🐞
- Enable two finger pan gesture. (#1280)
- Fix a bug that scale bar is shorter than it should be; trigger
invalidateScaleBar
while updating settings to make scale keep the latest status. (#1336) - Keep the original animator owner for
CameraAnimationsPlugin.playAnimatorsTogether
andCameraAnimationsPlugin.playAnimatorsSequentially
. (#1345) - Fix for momentary appearing of a lower zoom level tile labels during camera movement. (#1351)
- Fix for location indicator not being rendered at the horizon when terrain is enabled. (#1351)
- Fix for loading gltf models with interleaved buffers. (#1351)
- Fix a bug that
line-trim-offset
input may lose precision via shader calculation. (#1359) - Add mercator scale factor to 3D location puck, so that the 3D puck size won't increase as latitude increases. (#1350
- Fix a crash due to invalid focal point when panning the map. (#1364)
- Fix compass is not showing in "edge-to-edge" mode. (1391)
- Fix an unexpected request update delay for tiles taken from in-memory cache when minimumTileUpdateInterval is set. (#1396)
- Fix a rare bug where some tiles would not show up correctly on globe. (#1396)
- Fix a bug where features could be queried without cursor intersecting the globe. (#1396)
- Fix view annotations disappearing on the globe. (#1396)
- Fix symbols ignoring both collision and placement on the globe. (#1396)
- Add anti-aliasing on the globe on low zoom levels. (#1396)
- Fix globe controls when map orientation is something else than "north". (#1396)
- Fix circle and heatmap layers not being aligned with globe's surface. (#1396)
- Optimise the frequency to update location layer's visibility. (1399)
- Fix the delay in the first appearance of the location puck. (1403)
- Remove
android.permission.GET_TASKS
permission from the SDK. (1430) - Fix lag during night/day style switching when globe is enabled. (#1432)
- Fix crash on globe symbol placement that happens during style change. (#1432)
- Fix incorrect image source rendering with terrain enabled. (#1432)
- Fix in-memory tile cache for non-geometry tiles when the map projection changes. Before, the tiles cached while the previous projection was active could not be used with the new projection active. (#1432)
Dependencies
android-v10.6.0-rc.1
10.6.0-rc.1 June 2, 2022
Features ✨ and improvements 🏁
- Minimise tiles relayout on camera zooming with globe view. Improve the overall performance and reduce latency of the cached tiles appearance. (#1396)
- Add minimum and maximum range check for sky layer property
sky-atmosphere-sun
andsky-gradient-center
. If the input is invalid, the default property value will be used. (#1396) - Share render data between vector render tiles referring to the same logical tile. (#1396)
Bug fixes 🐞
- Fix compass is not showing in "edge-to-edge" mode. (1391)
- Fix an unexpected request update delay for tiles taken from in-memory cache when minimumTileUpdateInterval is set. (#1396)
- Fix a rare bug where some tiles would not show up correctly on globe. (#1396)
- Fix a bug where features could be queried without cursor intersecting the globe. (#1396)
- Fix view annotations disappearing on the globe. (#1396)
- Fix symbols ignoring both collision and placement on the globe. (#1396)
- Add anti-aliasing on the globe on low zoom levels. (#1396)
- Fix globe controls when map orientation is something else than "north". (#1396)
- Fix circle and heatmap layers not being aligned with globe's surface. (#1396)
Dependencies
- Bump gl-native to v10.6.0-rc.1, common to 22.0.0-rc.2. (#1396)
android-v10.6.0-beta.2
android-v10.6.0-beta.1
10.6.0-beta.1 May 19, 2022
Features ✨ and improvements 🏁
- Enable support for incremental annotation processing. (#1323)
- Make use of non-deprecated common Mapbox logger. (#1327)
- Expose factory methods for high-level camera animators. (#1338)
- Introduce map atmosphere and fog. Setting atmosphere and fog supports Style DSL as well. (#1344)
- Introduce experimental 3D model support. (#1351)
- Use a single shared buffer across all globe tiles to increase globe rendering performance. (#1351)
- Re-introduce partial tile loading feature that decreases map load times. (#1351)
- The
TilesetDescriptorOptions.pixelRatio
parameter is now passed to the TileStore and considered for the raster tile pack loading. This enables loading of a raster tilepacks for retina displays. (#1351) - Introduce pinchScrollEnabled configuration to enable/disable 2-finger map panning, default to true. (#1343)
- Re-throw native exceptions
jni::PendingJavaException
as readable Java exceptions with detailed exception text. (#1363) - Add static
MapView.isTerrainRenderingSupported()
method to validate if 3D terrain rendering is supported on given device. (1368) - Optimize
MapboxMap.loadStyle()
to apply styling properties earlier. #1362
Bug fixes 🐞
- Enable two finger pan gesture. (#1280)
- Fix a bug that scale bar is shorter than it should be; trigger
invalidateScaleBar
while updating settings to make scale keep the latest status. (#1336) - Keep the original animator owner for
CameraAnimationsPlugin.playAnimatorsTogether
andCameraAnimationsPlugin.playAnimatorsSequentially
. (#1345) - Fix for momentary appearing of a lower zoom level tile labels during camera movement. (#1351)
- Fix for location indicator not being rendered at the horizon when terrain is enabled. (#1351)
- Fix for loading gltf models with interleaved buffers. (#1351)
- Fix a bug that
line-trim-offset
input may lose precision via shader calculation. (#1359) - Add mercator scale factor to 3D location puck, so that the 3D puck size won't increase as latitude increases. (#1350
- Fix a crash due to invalid focal point when panning the map. (#1364)
Dependencies
android-v10.4.4
10.4.4 May 12, 2022
Bug fixes 🐞
- Fix NaN latitude native crash rarely happening during
MapboxMap#flyTo
. (#1271)