Skip to content

Releases: mapbox/mapbox-maps-android

v11.4.2

17 Jul 12:36
Compare
Choose a tag to compare

11.4.2 July 17, 2024

Bug fixes 🐞

  • Fix local glyph rasterization to ensure the correct Typeface is used.

Dependencies

  • Update gl-native to v11.4.1.

v11.5.0

05 Jul 17:11
Compare
Choose a tag to compare

11.5.0 July 05, 2024

Breaking changes ⚠️

  • [compose] Make MapboxMap.onMapClickListener and MapboxMap.onMapLongClickListener nullable and default to null.
  • [compose] Rename ImportConfig to ImportConfigs.
  • [compose] Move MapboxMap.mapEvents to events flows in MapState.
  • [compose] Move MapboxMap.gesturesSettings to MapState.
  • [compose] Move Projection to generated package and rename default values to DEFAULT.
  • [compose] Rename LightPreset to LightPresetValue.
  • [compose] Rename TerrainState.disabled to TerrainState.DISABLED.
  • [compose] Replace terrain property Exaggeration with DoubleValue.
  • [compose] Replace concrete AtmosphereState properties (e.g. HighColor, HorizonBlend, SpaceColor, etc) with generic ones: ColorValue, DoubleValue, DoubleRangeValue.
  • [compose] Replace concrete Layer properties(e.g. CircleColor, CircleOpacity, IconImage etc) with generic ones: ColorValue, DoubleValue, ImageValue etc.
  • [compose] Replace concrete GeoJsonSourceState, ImageSourceState, RasterArraySourceState, RasterDemSourceState, RasterSourceState, SourceProperties, VectorSourceState properties with generic ones (e.g. BooleanValue, StringValue, LongValue...).
  • [compose] Move GeoJSONData outside of generated package.
  • Remove experimental CustomRasterSource.invalidateRegion and CustomRasterSource.invalidateTile methods and change signature of CustomRasterSource.setTileData.
  • Remove experimental CustomRasterSource.tileCacheBudget getter and setter. If needed, caching should be implemented on user's side.
  • Remove experimental MapboxMap and Style methods: invalidateStyleCustomRasterSourceTile, invalidateStyleCustomRasterSourceRegion; change signature of setStyleCustomRasterSourceTileData method in MapboxMap and Style.

Features ✨ and improvements 🏁

  • [compose] Enable r8 optimisations of compose extension in consumer proguard file, the optimisation will apply when minify is enabled in app's build settings.
  • [compose] Introduce StyleImport composable API to be used in the GenericStyle, MapStyle and MapboxStandardStyle.
  • [compose] Introduce MapState that can be hoisted to interact with map states, such as query rendered features, subscribe to map events and configure gestures settings.
  • [compose] Expose TerrainState and AtmosphereState properties as MutableState.
  • [compose] Introduce AmbientLightState, DirectionalLightState, FlatLightState as separate states; LightsState can be constructed by combination of DirectionalLightState and AmbientLightState or with FlatLightState to be set to the style.
  • [compose] Avoid recreation of objects during recomposition of GenericStyle.
  • Expose LineJoin.NONE which in conjunction with e.g. linePattern image allows to display repeated series of images along a line (e.g. dotted route line).
  • Expose new function DefaultLocationProvider.locationAnimatorOptions to allow changing the value animator properties for puck position animation.
  • Deprecate MapboxMap.cameraForCoordinates suspending extension function in favour of suspend MapboxMap.awaitCameraForCoordinates.
  • Add min/max/default values to the docs for the generated properties.
  • Add asynchronous TileStore.create().clearAmbientCache() API that can be used for clearing all ambient cache data.
  • Expose experimental lineZOffset and lineOcclusionOpacity for LineLayer.
  • Expose experimental modelFrontCutoff for ModelLayer.
  • Expose experimental iconOcclusionOpacity and textOcclusionOpacity for SymbolLayer and PointAnnotationManager.
  • Expose experimental lineOcclusionOpacity for PolylineAnnotationManager.
  • Expose experimental lineZOffset for PolylineAnnotation and PolylineAnnotationOptions.
  • Expose clusterMinPoints property for GeoJSONSource and for annotation's ClusterOptions.
  • Remove explicit main thread locking when using CircleAnnotationManager, PointAnnotationManager, PolygonAnnotationManager, PolylineAnnotationManager and dragging the map that could lead to an ANR.
  • Use dedicated thread for the tile store to increase performance.
  • [compose] Expose TerrainState and AtmosphereState properties as MutableState.

Bug fixes 🐞

  • [compose] Fix the layer and annotation ordering by moving the annotations/layers according to the relative position in the node tree.
  • [compose] Fix No enum constant com.mapbox.maps.GeoJSONSourceData crash when restoring app from background.
  • Fix transitioning to OverviewViewportState in corner cases when the map is not yet ready for rendering(e.g. immediately after MapView is created).
  • Set default minimum displacement between location updates to 0.1 meters in DefaultLocationProvider. Now this value is the same regardless of application using Google Play Services location library or not.
  • Fix PointAnnotationManager and CircleAnnotationManager cluster layer id collision issue, so that multiple clusters can work at the same time.
  • Fix RasterParticleLayer.rasterParticleCount and RasterParticleLayer.defaultRasterParticleCount returning null.
  • Fix an issue allowing view annotation to be added even if its associated layer does not exist. Now, view annotation will function correctly once the layer is added.
  • Fix feature queries for symbols above the horizon.
  • Fix the rotated icon position during the globe transition.
  • Fix Dynamic View Annotation (DVA) placement to place DVA in the center of the line geometry point, and try to avoid placing DVA near the lines' intersection point.
  • Reduce the max raster-particle animation speed. It prevents particles from moving too fast, causing a visible clipping artifact at tile boundaries.
  • Snapshotter methods throw SnapshotterDestroyedException if destroy was already called.
  • Fix precision issues in ColorUtils methods.
  • Fix NPE when parsing rgb(...) strings with ColorUtils methods.
  • Fix ScaleBar.useContinuousRendering not being in sync with ScaleBar.settings.useContinuousRendering.
  • Fix accuracy ring related location settings updates not being rendered immediately.
  • Fix a crash for Draco compressed 3D models whose geometry share indices.
  • Fix tile rendering errors when the composited source tile components are overscaled.
  • Fix transparent areas in overlapped polygons of MultiPolygon feature.
  • Fix crash on multiple style pack loading operations.

Dependencies

  • Update gl-native to v11.5.1 and common to v24.5.0.

v10.18.2

24 Jun 08:43
Compare
Choose a tag to compare

10.18.2 June 24, 2024

Features ✨ and improvements 🏁

  • Remove explicit main thread locking when using CircleAnnotationManager, PointAnnotationManager, PolygonAnnotationManager, PolylineAnnotationManager and dragging the map that could lead to an ANR.

v11.5.0-rc.1

20 Jun 12:46
Compare
Choose a tag to compare
v11.5.0-rc.1 Pre-release
Pre-release

11.5.0-rc.1 June 20, 2024

Breaking changes ⚠️

  • [compose] Make MapboxMap.onMapClickListener and MapboxMap.onMapLongClickListener nullable and default to null.
  • [compose] Rename ImportConfig to ImportConfigs.
  • [compose] Move MapboxMap.mapEvents to events flows in MapState.
  • [compose] Move MapboxMap.gesturesSettings to MapState.
  • Remove experimental CustomRasterSource.invalidateRegion and CustomRasterSource.invalidateTile methods and change signature of CustomRasterSource.setTileData.
  • Remove experimental CustomRasterSource.tileCacheBudget getter and setter. If needed, caching should be implemented on user's side.
  • Remove experimental MapboxMap and Style methods: invalidateStyleCustomRasterSourceTile, invalidateStyleCustomRasterSourceRegion; change signature of setStyleCustomRasterSourceTileData method in MapboxMap and Style.

Features ✨ and improvements 🏁

  • [compose] Introduce StyleImport composable API to be used in the GenericStyle, MapStyle and MapboxStandardStyle.
  • [compose] Introduce MapState that can be hoisted to interact with map states, such as query rendered features, subscribe to map events and configure gestures settings.
  • Deprecate MapboxMap.cameraForCoordinates suspending extension function in favour of suspend MapboxMap.awaitCameraForCoordinates.
  • Add min/max/default values to the docs for the generated properties.
  • Add asynchronous TileStore.create().clearAmbientCache() API that can be used for clearing all ambient cache data.
  • Expose experimental lineZOffset and lineOcclusionOpacity for LineLayer.
  • Expose experimental modelFrontCutoff for ModelLayer.
  • Expose experimental iconOcclusionOpacity and textOcclusionOpacity for SymbolLayer and PointAnnotationManager.
  • Expose experimental lineOcclusionOpacity for PolylineAnnotationManager.
  • Expose experimental lineZOffset for PolylineAnnotation and PolylineAnnotationOptions.

Bug fixes 🐞

  • Fix RasterParticleLayer.rasterParticleCount and RasterParticleLayer.defaultRasterParticleCount returning null.
  • Fix the rotated icon position during the globe transition.
  • Fix Dynamic View Annotation (DVA) placement to place DVA in the center of the line geometry point, and try to avoid placing DVA near the lines' intersection point.
  • Reduce the max raster-particle animation speed. It prevents particles from moving too fast, causing a visible clipping artifact at tile boundaries.

Dependencies

  • Update gl-native to v11.5.0-rc.1 and common to v24.5.0-rc.1.

v11.5.0-beta.1

11 Jun 15:59
Compare
Choose a tag to compare
v11.5.0-beta.1 Pre-release
Pre-release

11.5.0-beta.1 June 11, 2024

Breaking changes ⚠️

  • [compose] Move Projection to generated package and rename default values to DEFAULT.
  • [compose] Rename LightPreset to LightPresetValue.
  • [compose] Rename TerrainState.disabled to TerrainState.DISABLED.
  • [compose] Replace terrain property Exaggeration with DoubleValue.
  • [compose] Replace concrete AtmosphereState properties (e.g. HighColor, HorizonBlend, SpaceColor, etc) with generic ones: ColorValue, DoubleValue, DoubleRangeValue.
  • [compose] Replace concrete Layer properties(e.g. CircleColor, CircleOpacity, IconImage etc) with generic ones: ColorValue, DoubleValue, ImageValue etc.
  • [compose] Replace concrete GeoJsonSourceState, ImageSourceState, RasterArraySourceState, RasterDemSourceState, RasterSourceState, SourceProperties, VectorSourceState properties with generic ones (e.g. BooleanValue, StringValue, LongValue...).
  • [compose] Move GeoJSONData outside of generated package.

Features ✨ and improvements 🏁

  • Expose clusterMinPoints property for GeoJSONSource and for annotation's ClusterOptions.
  • Remove explicit main thread locking when using CircleAnnotationManager, PointAnnotationManager, PolygonAnnotationManager, PolylineAnnotationManager and dragging the map that could lead to an ANR.
  • Use dedicated thread for the tile store to increase performance.
  • [compose] Expose TerrainState and AtmosphereState properties as MutableState.
  • [compose] Introduce AmbientLightState, DirectionalLightState, FlatLightState as separate states; LightsState can be constructed by combination of DirectionalLightState and AmbientLightState or with FlatLightState to be set to the style.
  • [compose] Avoid recreation of objects during recomposition of GenericStyle.

Bug fixes 🐞

  • [compose] Fix No enum constant com.mapbox.maps.GeoJSONSourceData crash when restoring app from background.
  • Snapshotter methods throw SnapshotterDestroyedException if destroy was already called.
  • Fix precision issues in ColorUtils methods.
  • Fix NPE when parsing rgb(...) strings with ColorUtils methods.
  • Fix ScaleBar.useContinuousRendering not being in sync with ScaleBar.settings.useContinuousRendering.
  • Fix accuracy ring related location settings updates not being rendered immediately.
  • Fix a crash for Draco compressed 3D models whose geometry share indices.
  • Fix tile rendering errors when the composited source tile components are overscaled.
  • Fix transparent areas in overlapped polygons of MultiPolygon feature.
  • Fix crash on multiple style pack loading operations.

Dependencies

  • Update gl-native to v11.5.0-beta.1 and common to v24.5.0-beta.4.

v11.4.1

03 Jun 09:53
Compare
Choose a tag to compare

11.4.1 June 03, 2024

Bug fixes 🐞

  • Fix an issue that getLight API always returns null.

v10.18.1

30 May 14:28
Compare
Choose a tag to compare

10.18.1 May 30, 2024

Bug fixes 🐞

  • Fix a bug when billing event can be retried endlessly with 0 timeout in case network returns error.

Dependencies

  • Update common to v23.10.1.

v10.18.0

23 May 11:35
Compare
Choose a tag to compare

10.18.0 May 23, 2024

Bug fixes 🐞

  • Reduce unnecessary usage of main thread during lifecycle monitoring.
  • Fixed invalid circle order while using circle-sort-key.
  • Fixed duplicate circles in static viewport mode.
  • Fixed a crash during style change.

Dependencies

  • Update gl-native to v10.18.0 and common to v23.10.0.

v11.4.0

22 May 13:12
Compare
Choose a tag to compare

11.4.0 May 22, 2024

Breaking changes ⚠️

  • [compose] Remove locationComponentSettings from MapboxMap composable function, MapEffect with location component API should be used instead. More compose-friendly location component API will be introduced in future releases.
  • [compose] Remove TileCacheBudget(com.mapbox.maps.TileCacheBudget) constructor and introduce TileCacheBudget(TileCacheBudgetInMegabytes) and TileCacheBudget(TileCacheBudgetInTiles) constructor instead.
  • [compose] Remove layoutParams from ViewAnnotation composable function, the internal ComposeView wrapping the ViewAnnotation.content will always use WRAP_CONTENT; In case of tests where the assertion happens before the measure, user can force the content size using ViewAnnotationOptions.width/height APIs.
  • [compose] Constructor in PromoteId data class from compose now takes PropertyName and optional SourceId instead of itself.
  • [compose] Use new SlotsContent instead of generic Map to handle the style content for slots. Introduced slotsContent builder function.
  • [compose] Use new LayerPositionedContent instead of generic Map to handle the layer positioned style content. Introduced layerPositionedContent builder function.
  • [compose] Use new StyleImportsConfig instead of generic Map to handle the style import configurations. Introduced styleImportsConfig builder function.
  • [compose] Move MapboxStandardStyle to a different package and introduce LightPreset with available presets as constants.
  • [compose] MapViewportState properties cameraState, mapViewportStatusChangedReason and mapViewportStatus are null when the state is not attached to a map.
  • [compose] MapViewportState constructor parameter has been renamed to initialCameraState.

Features ✨ and improvements 🏁

  • [compose] Add AtmosphereState parameter to GenericStyle composable function.
  • [compose] Introduce Projection and AtmosphereState API on MapStyle and MapboxStandardStyle.
  • [compose] Add StyleImage to construct following image layer properties: IconImage, FillPattern, LinePattern, BearingImage, ShadowImage, TopImage.
  • [compose] Add ModelId constructor to add model id and uri.
  • [compose] Add TerrainState parameter to GenericStyle, MapStyle and MapboxStandardStyle composable functions.
  • Introduce addStyleImportFromJSON, addStyleImportFromURI, updateStyleImportWithJSON, updateStyleImportWithURI, moveStyleImport APIs to MapboxMap and Style.
  • Handle updating geo-json data exceptions and propagate them to MapboxMap.subscribeMapLoadingError(mapLoadingErrorCallback).
  • Introduce SlotLayer in Style DSL.
  • Add statistics for graphics pipeline program creation.
  • Enable raster-elevation for tiled raster sources.
  • Improve tile processing performance by filtering out tiny polygon holes.
  • Reduce number of evaluations of step expression in line-gradient properties.
  • Add support for line-trim-offset with line-pattern.
  • Enable two dimensional data handling in Mapbox Raster tiles.
  • Trim zoom ranges for the style at tileset descriptor resolving.
  • Extend SymbolLayer.iconColorSaturation range from [0, 1] to [-1, 1] and change default value to 0.
  • Reduce time spent on model layer re-evaluation during light change.
  • Expose experimental Style.styleSlots allowing to get the ordered list of slots.
  • Deprecate MapboxMap.cameraForCoordinateBounds, MapboxMap.cameraForGeometry and some synchronous overloaded MapboxMap.cameraForCoordinates in favour of single synchronous, asynchronous and suspend MapboxMap.cameraForCoordinates. Synchronous MapboxMap.cameraForCoordinates returns empty camera (could be checked with CameraOptions.isEmpty) if the map's size is not yet calculated.
  • Add feature metrics collection. Mapbox Maps SDK collects anonymous data about which of its features are used. Mapbox uses this data to understand how our software is being used and prioritize plans to improve it. These metrics tell us whether a feature has been used ("flyTo was called"), but not how ("flyTo was called with this position"). No user-level metrics or identifiers are collected as part of this initiative.
  • Avoid locking main thread when it is not needed on map destroy.
  • Add experimental MapView.setSnapshotLegacyMode function to help avoiding MapView.snapshot native crash on some Samsung devices running Android 14.
  • Add experimental RasterParticleLayer in Style DSL and Compose.
  • Add mapView.location.slot API to assign a slot for the location indicator.

Bug fixes 🐞

  • [compose] Fix an issue with rememberGeoJsonSourceState, where the Value and GeoJsonData can not be serialised.
  • [compose] Remember default ComposeMapInitOptions and GesturesSettings so that we don't reconstruct these classes when MapboxMap recomposes.
  • [compose] Filter relevant events for ViewAnnotation.onUpdatedListener and skip events from other view annotations.
  • [compose] Do not consume tap event for Compass, so that user set clickable can be processed.
  • [compose] Fix slots and layerposition content not being cleaned up during recomposition.
  • [compose] Propagate onRemoved and onClear to children nodes of MapStyleNode to do proper clean up.
  • [compose] Fix lost style import config during style switch by waiting for style load event.
  • [compose] Make the initial compass visibility to be false, so the compass wouldn't show and hide initially if the user is facing north.
  • [compose] Fix java.io.NotSerializableException: com.mapbox.bindgen.Value for SourceState.
  • [compose] Queue viewport operations when the MapViewportState is no yet attached to the map, to avoid losing events.
  • Fix Snapshotter.cameraForCoordinates arguments padding, bearing and pitch to be nullable.
  • Fix config with format expression that contains text property overrides.
  • Make non-vector tile parsing cancellable.
  • Move cutoff opacity calculation to CPU side.
  • Fix icon/pattern missing issue if the missing image is only added after map gets rendered.
  • Introduce a dedicated thread for 3d landmarks parsing.
  • Fix crash on start when no free disk space left.
  • Fix TilePrefetch for GeoJSON sources.
  • Fix snapshotter latency when 3d tiles involved.
  • Fix renderer destruction being blocked by 3d models parsing completion.
  • Fix memory leak when camera animations are skipped.
  • Fix Mapbox attribution and telemetry links not opening in a browser.
  • Fix incorrect size of the tile memory budget for vector tiles when the budget is set in megabytes.
  • Fix LogoView.logoEnabled not being in sync with MapView.logo.enabled state.
  • Fix raster-particle not being visible on some Android devices.
  • Fixed invalid circle order while using circle-sort-key.
  • Fixed duplicate circles in static viewport mode.
  • Fixed a crash during style change.

Dependencies

  • Update gl-native to v11.4.0 and common to v24.4.0.

v11.4.0-rc.2

15 May 09:27
Compare
Choose a tag to compare
v11.4.0-rc.2 Pre-release
Pre-release

11.4.0-rc.2 May 15, 2024

Breaking changes ⚠️

  • [compose] MapViewportState properties cameraState, mapViewportStatusChangedReason and mapViewportStatus are null when the state is not attached to a map.
  • [compose] MapViewportState constructor parameter has been renamed to initialCameraState.

Bug fixes 🐞

  • [compose] Queue viewport operations when the MapViewportState is no yet attached to the map, to avoid losing events.
  • Fix LogoView.logoEnabled not being in sync with MapView.logo.enabled state.
  • Fix raster-particle not being visible on some Android devices.

Dependencies

  • Update gl-native to v11.4.0-rc.2 and common to v24.4.0-rc.2.