Mapbox welcomes participation and contributions from everyone. If you'd like to do so please see the Contributing Guide
first to get started.
- Binding integration for expressions #10654
- CustomGeometrySource #9983
- HillshadeLayer and RasterDemSource #11031
- Revisit marker placement for snapshot #11029
- SafeVarargs annotation for expressions #11027
- Expression#toString #11024
- Rename initRenderSurface to onSurfaceCreated #11023
- Expose attribution manager as public API #10942
- Replace Mapzen vector source example with Mapillary #10931
- Add Hebrew localization #10967
- Cleanup gradle configuration files #10903
- Send double tap event only once #10855
- Parameter validation for LatLngBounds#from #10831
- Replace JSON parsing #10815
- Orientation change regression test #10814
- Max & min LatLng constants #10780
- LatLng#wrap return new instance of LatLng #10769
- Custom library loader #10733
- Inconsistent parameters for LatLngBounds.union #10728
- Gradle 4.1 / AS 3.0 #10549
- Validate surface creation before destroying #10890
- Add filesource activation ot OfflineRegion #10904
- Save configuration of UiSettings #10908
- Do not overwrite user-set focal point #10910
- Camera callbacks for velocity animated movements #10925
- Allow changing the used OkHttpClient #10948
- Validate zoom level before creating telemetry event #10959
- Handle null call instances in HttpRequest #10987
- Blacklist binary program loading for Vivante GC4000 GPUs #10862
- Support Genymotion #10841
- Getting bitmap from drawable fix #10763
- Use US locale when converting between int color and RGBA string #10810
- Harden map destruction #10811
- RTL support #10828
- Allow configuring Http url logging when a request fails #10830
- Don't send double tap event multiple times for telemetry #10854
- Fix code generation #10856
- Use the correct cancelable callback after posting cancel #10871
- Add support for TinySDF #10706
- Save restore MyLocationViewSettings #10746
- Post animation callback invocation #10664
- Allow configuring Http logging #10681
- Fix reverse scale gesture #10688
- Update offline region metadata documentation #10693
- Post camera listener invocation #10690
- Activate filesource for offline region creation #10718
- Update Spanish/Vietnamese translations #10740
- Update instrumented make target #10724
- Remove black flash on start for fragments #10717
- CompassView decode crash #10717
- Android SDK renaming #10609
- Map touch listener based lists #10749
- Close race condition in RunLoop #10537
- OkHttp 3.9.1 #10515
- Attribution anchor point fix #10558
- Pre API 19 VerifyError #10579
- Set larger Http request limit #10567
- Remove jar generation from maven publish #10625
- Enable Map Rendering when paused for multiple window support #10509
- Activate FileSource when listing offline regions #10531
- Harden MarkerView integration by checking for null bitmap #10532
- Use concurrent lists for camera change listeners #10542
- Handle destroy activity as part of theme switching #10589
- add FileSource activation/deactivation to MapSnapshotter #10556
- Monkey crashes #10472
- MapSnapshot attribution #10362
- Downgrade min sdk to 14 #10355
- Harden deselection mechanism for markers #10403
- Cherry picks to agua #10442
- Rework test activity gen script setup #10365
- Fix broken android unit tests, update test make target to SDK #10387
- Check for null value when calling mapboxMap.clear #10388
- Revert adding mapbox-android-core dependency (#10354) #10380
- Asynchronous TextureView #10370
- Workaround OkHttp bug on Android O 10366
- Revisit logo resize 10553
- Logo resize for MapSnapshotter #10312
- Make location provider optional #10354
- Check for positive animation value #10348
- Fix IAE of ease/animate #10338
- Run full test suite on CI #10333
- Make sure camera position gets updated in onFinish() callback after camera.move #10324
- throw IAE in animate() and easeCamera() when duration <= 0 #10321
- Don't save state if map hasn't been initialised #10320
- Make map snapshot optional #10310
- Synchronise locationlastions with Transifex #10309
- MapboxMap#addImages #10281
- Move shape annotation click handling to core #10267
- Map snapshotter additions #10163
- Add velocity to gestures / port animations to SDK animators #10202
- Don't save state if map hasn't been initialised #10320
- android.hardware.location.gps feature should not be required #10347
- Wire up MapZoomButtonController with camera change events #10221
- Execute callbacks only when not idle #10220
- Cleanup unused gradle plugins #10211
- add FileSource pause/resume #9977
- add make target for ndk-stack #10185
- Add interpolator examples #10067
- Add an UnsatisfiedLinkError safeguard #10180
- Hold off handling hover events untill map has been created #10142
- Added
MapboxMap.getCameraForGeometry()
to get a camera with zoom level and center coordinate computed to fit a shape #10107 - Fine tune gesture zoom & rotation #10134
- Allow multiple listeners for camera events, deprecate old API #10141
- Update symbol layer example with location #10092
- Make OfflineTilePyramidRegionDefinition parceable #10080
- Fix 5.2.0-SNAPSHOT CI build failing #10079
- Deprecate MarkerView #9782
- Hide overlain views on initalisation #10068
- API for platform side animations #10001
- Android asynchronous rendering #9576
- Set error handler when starting snapshotter #10035
- Hook camera events into compass #10019
- Testapp cleanup #10006
- Update zoom function example with selected state #9987
- Add style inspection to debug activity #9773
- Bump external dependencies #9972
- Don't recycle bitmap for icon reuse. #9966
- Android snapshotter #9748
- Revert #9764 #9851
- Update docs replacing Bitrise mentions with CircleCI #9515
- Style image accessor #9763
- Update readme with checkstyle and ndk-stack #9788
- make android-check #9787
- Deprecate MyLocationView in favor of LocationLayer plugin #9771
- Increase firebase timeout for CI testing #9774
- Restore max zoom to 25.5 #9765
- Update example of camera zoom function on a symbol layer. #9743
- Optimise icon management #9643
- Expose setStyleJson and getStyleJson #9714
- update LatLngBounds activity with BottomSheet interaction #9736
- post updating InfoWindow update for InfoWindowAdapter #9716
- Annotate MapboxMap class with UiThread #9712
- Move ZoomButtonController creation to view initalisation #9587
- Solve lint issues, reduce baseline #9627
- Remove wear module from project #9618
- Add zMediaOverlay configuration + bottom sheet integration #9592
- Forward getMapAsync to map for fragment #9621
- Make target for dumping system gfx information #9616
- Make target documentation #9617
- onGlobalLayout hook for map creation #9607
- Custom viewpager for horizontal swiping #9601
- Disable program caching on Adreno 3xx, 4xx, and 5xx GPUs due to known bugs #9574
- Avoid creating InfoWindow iterator if no InfoWindows are shown #9477
- Rewire map initialisation #9462
- Trying to update non-existent polyline fix #9544
- Location accuracy threshold #9472
- Rewire gesture handling and telemetry event push #9494
- run style instrumentation tests on CI #9353
- Fix javadoc comment for public setOfflineMapboxTileCountLimit method #9454
- add Map change & visibility test activities #9425
- build release package once during ci build #9351
- Add support for ImageSource #9110
- Increased the default maximum zoom level from 20 to 22. #9835
- Remove obsolete terminate context/display calls #10162
- Determine need for clip ID based on actual layers/tiles #10216
- Correctly alter sprite URLs #10217
- Russian and Ukrainian localizations #9945
- Update translations #10033 & #9945
- Continue rendering tiles despite erros #10012
- Fix layer z-fighting #9942
- Align line vertex to 4-byte boundary #9943
- Bump proguard config for OkHttp #9970
- Remove database on schema downgrade #9837
- Disable rotation gesture when pinch zooming #10026
- Do not check if connection is local request #9968
- Harden offline region deletion #9967
- Clear out mapCallback's OnMapReadyListeners on destroy #9957
- Avoid adding duplicate points to bounds #9955
- Download is complete fix #9913
- MAS 2.2.3 #9901
- Russian and Ukrainian localizations #9945
- Use separate attribute component for line normals #9753
- Track state of initial overlain views margins #9391
- Compability for Samsung devices forcing 3-4 array vector length #9746
- Smallest LatLngBounds when visible region crosses dateline #9747
- Readd ProjectMeters #9766
- Enable location change animation of MyLocationView by default #9779
- Avoid IndexOutOfBoundsException when destroying map object #9789
- MAS 2.2.1 #9796
- Disable program caching on Ardreno GPU 3xx, 4xx and 5xx #9625
- GeoJSON proguard issue #9577
- Harden click events of shape annotations #9585
- Validate Marker before opening InfoWindow #9586
- Fix added to map check #9602
- Don't query shape annotations if none were added #9606
- Fix compass direction #9632
- Remove preview image integration #9657
- Try/catch initialization of telemetry #9658
- Fix typo OnCameraMoveStartedListener #9664
- Bump MAS dependency to 5.2.0 #9671
- Rework attribution binding #9433
- BackendScope changes #9538
- Invisible MarkerView performance fix #9420
- Polyline/Polygon click listeners #9443
- Hit test Marker/MarkerViews #9424
- Fine tune fling gesture #9532
- Bump OkHttp 3.8.0, Android 7.x crashes #9522
- MyLocationView tint fix #9410
- VisibleRegion logic #9428
- Validate motion event #9434
- Add French localization #9545
- Fix public.xml #9525
- Manage InfoWindow selection in AnnotationManager #9567
- Increase touch target size #9565
- Work around Adreno 2xx GPU bugs #9573
- Update to MAS 2.1.3 #9402
- Downgrade LOST to v1.1.1 #9394
- OnCameraIdle hook into quickzoom gesture #9339
- LatLngBounds conversion regression, add test #9324
- Update MAS dependency to 2.1.2 #9311
- Update LOST dependency to 3.0.1 #9302
- Fix Pulse example Parcelable creator #9283
- Custom marker view anchoring #9282
- Update Activity test generation #9276
- Validate camera position before transforming #9275
- Revisit javadoc #9266
- Build with NDK 15 #9263
- Snapshot with view content #9263
- Update source changed javadoc #9243
- Run tests on UI-thread #9198
- Fix trackball on worker thread #9305
- Option to disable location change animation #9210
- Invalidating MyLocationView bearing when not following #9212
- Remove upgrade runtime exceptions #9191
- Check source usage before removal #9129
- Fix tracking mode + camera race condition #9133
- Harden orientation changes #9128
- Infinite location animation updates #9194
- Invoke callback with valid fling gestures #9192
- Keep location tracking after screen rotation #9187
- Update components with camera values when animating #9174
- Validate if gestures should execute #9173
- Custom location source and LOST integration #9142
- Add binding support for Light #9013
- Update attribution with new Mapbox wordmark #8774
- LatLngBounds bearing default value #9102
- Stop location updates when toggling MyLocationView #9099
- Horizontally rotated in snapshot #9083
- Disable letter spacing for Arabic text #9071
- Correct bearing conversion when animating the map #9050
- Don't leak selected markers when removing #9047
- Bump tools and support lib version #9046
- MarkerView deselect events with OnMarkerViewClickListener #9047
- LOST update to v3.0.0 #9112
- Convert dp to pixels for meters per pixel at latitude #9048
5.1.0-beta.2 builds further on 5.1.0-beta.1 and adds:
- When a layer is added, reload its source's tiles #8963
- Update release script to support CircleCI builds #8950
- URL getter on Sources #8959
- Build SNAPSHOT from release branch CI configuration #8958
- Fix UI test filter in Makefile #8960
- Bump & fixup dependencies #8921
- Ignore already deleted region #8920
- Keep offline observer when timeout occurs #8919
- Show error message when no browser installed #8920
- Reset observers of removed Sources and Layers #8900
- Only build custom layer .so for debug builds #8885
- Update localizations #8883
- Reset observers of removed Sources and Layers #8862
- Remove force style cascade #8866
- Update proguard config #8944
- Update LOST to 2.3.0-SNAPSHOT #8872
- Update logo #8774
- Camera change listener v2.0 #8644
- Allow filesource url transform reset #8957
5.1.0-beta.1 builds further on 5.0.2 and adds:
- Support for FillExtrusionLayer #8431
- Limit Viewport #8622
- Transition Properties for Layer attributes #8509
- Style wide transition duration and transition offset in milliseconds #8576
- Transifex integration, Catalan & Dutch translations #8556
- LatLngBounds includes with another bounds #8517
- LatLngBounds includes takes in account LatLng on the edges (cfr. core) #8517
- LatLngBounds facility getters/setters for LatLnbg on the edges of the bounds #8517
- Expose world bounds in LatLngBounds #8517
- OfflineRegion are validated if the bounds is found in the world bounds, else onError will be invoked #8517
- Polygon holes #8557 and #8722
- Custom location source #8710
- Expose source layer identifier #8709
- Ensure surface is created after display and context #8759
- Harden telemetry event dispatch #8767
- Move LatLngBounds calculation for CameraUpdateFactory to core #8765
- Spanish, Lithuanian, and Vietnamese localizations #8852
- Warning when updating a non-added annotation #8832
- Share location source between components #8825
- Test application runtime permissions for pre lollipop devices #8823
- Do not call OnMarkerClick listener twice #8804
- Rework instrumentation tests #8793
- Set first render flag to false when destroying the surface #8739
- Post resetting tracking settings to avoid race condition reset #8738
- Expose Source Layer identifier #8709
- Derived source attribution #8630
- Consistent use of duration unit #8578
- Swedish localization #8883
- Streets v10, Outdoors v10, Satellite Streets v10, Traffic Day v2, Traffic Night v2 #6301
5.0.2 is a patch release that contains the following changes:
- Binary shader caching #8604
- Fix resource transform callback #8582
- Restore onTouch behaviour to 4.x version #8585
- Restore anchoring after updating MarkerView Icon #8519
5.0.1 is a patch release that addresses a shader precision issue that created a rendering problem on some devices.
- Use
highp
for color attributes #8385
5.0.0 final release contains:
- Support for data-driven styles #7752
- Additional APIs to manage runtime styling layers #8195
- Allow query all features in sources (
querySourceFeatures
) #5792 - Improve accessibility TalkBack support by including content description in views #8230
- Consistent double tap zoom acceleration #7514
- Allow zooming/scaling to use
AnimationOptions
#8181 - Cleanup inconsistencies
float
vsdouble
#4445 - Add
mapbox_
prefix to attributes #6482 - Update LOST to 2.x #6573
- MAS submodules (
geojson
,telemetry
) are now smaller to reduce the overall method count #7642 - Telemetry Service is now include automatically via Manifest merge to simplify set up #8338
- Support for Android Nougat #5910
- Move location listening logic to
onStart
/onStop
activity lifecylce methods
- Move location listening logic to
- Removal of
accessToken
onMapView
andMapboxMap
#5621 - Introduction of new make targets #5940
- Targets for testing, running and using external tools directly from the command line
- Cleanup Gradle files #6009
- Introducing single purpose
.gradle
files
- Introducing single purpose
- Checkstyle integration #7442
- Transform refactor #6532
- All camera related code is moved to a dedicated transform class cfr. core architecture
- Encapsulate gestures #6557
- All gesture event code is encapsulated in
MapGestureDetector
- All key event code is encapsulated in
MapKeyListener
- All gesture event code is encapsulated in
- Transparent background for
MyLocationView
#7116 - Correctly scale accuracy circle for
MyLocationView
#8255 - Update documentation on generate sanity tests #7147
- Update documentation on style templates #7157
- Fix
NullPointerException
during save instance state #7157 - Move management style to core #7275
- Fix
OnCameraChange
not called for the final position of animation bug #7350 MapboxAccountManager
refactor #6534- Consolidating the location where tokens are set
- Rename to reflect the increased responsibilities introduced in prior releases
- AnnotationManager refactor #6067
- Extracting all business logic related to annotations into a separate class cfr. to core and the iOS codebase
- Gesture handling improvements:
- Support for style-wide transition animation duration and delay #6779
- Allow callback parameter for style setting #8262
- Support for all animated camera changes to configure dismissing tracking modes #7854
- Avoid disabling location tracking on all gestures #7878
LatLng
objects produced by the SDK are wrapped by default #4522- Proguard update for new SDK packages #8437
- Javadoc cleanup #8438
- MarkerViewClickListener and MapClickListener called simultaneously #8447
- Fix LOST v2.0.0 integration #8445
- Crash with OnMapChangeListener #8380
- Feature query crash #8374
- flyTo fix #8302
- Don't dispatch MarkerView motion event up to MapView #8447
5.0.0-beta.3 focuses on addressing stability issues and bug fixes. It also includes:
- Allow query all features in sources (
querySourceFeatures
) #5792 - Improve accessibility TalkBack support by including content description in views #8230
- Allow zooming/scaling to use
AnimationOptions
#8181 - Telemetry Service is now include automatically via Manifest merge to simplify set up #8338
- Correctly scale accuracy circle for
MyLocationView
#8255 - Round tap-zoom gestures to nearest integer #8027
- Allow callback parameter for style setting #8262
- Avoid disabling location tracking on all gestures #7878
5.0.0-beta.2 focuses on addressing stability issues and bug fixes. It also includes:
- Data-driven styling for
{text,icon}-{color,opacity,halo-color,halo-blur,halo-width}
#7939 - Additional APIs to manage runtime styling layers #8195
- Support for data-driven styles #7752
- Consistent double tap zoom acceleration #7514
- Cleanup inconsistencies
float
vsdouble
#4445 - Add
mapbox_
prefix to attributes #6482 - Update LOST to 2.0.0 #6573
- MAS submodules (geojson, telemetry) are now smaller to reduce the overall method count #7642
- Support for Android Nougat #5910
- Move location listening logic to onStart/onStop Activity lifecylce methods
- Removal of
accessToken
onMapView
andMapboxMap
#5621 - Introduction of new make targets #5940
- Targets for testing, running and using external tools directly from the command line
- Cleanup Gradle files #6009
- Introducing single purpose
.gradle
files
- Introducing single purpose
- Checkstyle integration #7442
- Transform refactor #6532
- All camera related code is moved to a dedicated transform class cfr. core architecture
- Encapsulate Gestures #6557
- All gesture event code is encapsulated in
MapGestureDetector
- All key event code is encapsulated in
MapKeyListener
- All gesture event code is encapsulated in
- Transparent background for
MyLocationView
#7116 - Update documentation on generate sanity tests #7147
- Update documentation on style templates #7157
NullPointerException
during save instance state #7157- Move management style to core #7275
OnCameraChange
not called for the final position of animation bug #7350MapboxAccountManager
refactor #6534- Consolidating the location where tokens are set
- Rename to reflect the increased responsibilities introduced in prior releases
- AnnotationManager refactor #6067
- Extracting all business logic related to annotations into a separate class cfr. to core and the iOS codebase
- Gesture handling bugs
- Avoid calls to onFling when while pinch zooming #7666
- Support for style-wide transition animation duration and delay #6779
- Support for all animated camera changes to configure dismissing tracking modes #7854
LatLng
objects produced by the SDK are wrapped by default for compatibility with the Google Maps API on Android #4522
Mapbox Android 4.2.2 builds further on v4.2.1 and resolves:
- OnFling gesture improvements
- Improve fling by calculating animation time based on velocity #7676
- Avoid triggering a fling after a scale gesture #7675
- Deselect marker on infowindow click #7784
- Update build tools to Bitrise supported one #7729
- Removal of redudant log statements in native_map_view.cpp #7801
- Invalidate markersviews when updating their position #7794
- Avoid clustering unclusterable GeoJSON #7633
- Prevent null pointer exceptions when receiving connecitivy change events #6858
Mapbox Android 4.2.1 is a bugfix release build on top of 4.2.0 and resolves:
- Gesture handling bugs
- Null pointer exception on TrackingSettings #7505
- Patches to our CI integration #7363 & #7385
- Screen density is now correctly applied for attributes #7327
- Usage of LocalBroadCastReceiver #7511
Mapbox Android 4.2.0 contains all 4.2.0-beta.5 changes and adds:
- Adds additional documentation to APIs
- Resolved issue with marker views occasionally not showing up until a gesture was performed on map #7239
- Added horizontal accuracy to location events #7237
- Resolved issue with changing visibility of a layer #7242
- Proguard improvement and fixes
Mapbox Android 4.2.0-beta.5 adds no new features, only bug fixes.
Mapbox Android 4.2.0-beta.4 contains all 4.2.0-beta.3 changes and adds:
- Query rendered features by source #6516
- Decreased logging for release builds #6787
- setConnected method to manually set a connected flag #6618
Mapbox Android 4.2.0-beta.3 contains all 4.2.0-beta.2 changes and adds:
- Configurable API endpoint #6309
- Adjusted logging level for failed OkHttp requests 6356
- Offline improvements:
- Fix SQLite crashes by reverting WAL journal mode #6320
Mapbox Android 4.2.0-beta.2 contains all 4.2.0-beta.1 changes and adds:
- Query rendered features #5869
- Clustering #5852
- Integrated support for Mapbox Android Services
- Offline improvements:
Mapbox Android 4.2.0 introduces the Runtime Style API and improves performance.
- Runtime Style API (#5610)
- Earcut (#2444)
- Map view rendered with
SurfaceView
for improved performance #5000
Mapbox Android 4.1.1 is a patch release and is recommended to upgrade to it as soon as possible.
- Default Styles Caching Crash (#5722)
Mapbox Android 4.1.0 builds off our ambitious 4.0.0 version with 3 major new features being released.
- New samples:
- Marker improvements:
- Make gesture focal point configurable
- Dynamically Update InfoWindow (#5237)
- armeabi ABI Work On armv7 Devices (#3985)
- Remove Adapter Requirement For MarkerView (#5214)
- Always Current Version Style URL Constants (#5193)
- Random NullPointerException On Telemetry (#5186)
Mapbox Android 4.1.0 builds off our ambitious 4.0.0 version with 3 major new features being released. To help us produce the highest quality SDK possible we're releasing an official Beta release first so that everyone has time to explore it and help hardened it before the official 4.1.0 Final Release.
Mapbox Android 4.0.1 is a patch release to make this bug fix available sooner.
- MapboxMap.removeAnnotations() doesn't remove markers (#4553)
Mapbox Android 4.0.0 contains the following 3 major new features.
- Default Value Bug Fix for MapboxMapOptions (#4398)
- NullPointerException When Scrolling (#4424)
- Platform Specific CHANGELOGS (#4432)
- Introduce LatLng.wrap() (#4475)
- arm64 ABI Support (#3128)
- Unify Offline And Cache Databases (#4362)
- Offline Database Vacuuming (#4342)
- Telemetry User Agent Fix (#4328)
- OnCameraChange Bug Fix (#4327)
- OnCameraChangeListener vs getCameraPosition (#4326)
Mapbox Android 4.0.0 is the most ambitious Android release to date with 3 major new features being released. To help us produce the highest quality SDK possible we're releasing an official Beta release first so that everyone has time to explore it and help hardened it before the official 4.0.0 Final Release.
- Fixed crash caused by annotation image with non-integer width or height (#3031)
- Tracking Mode Reverses Bearing Fix (#3664)
- GPS Extra Rotation Fix (#3661)
- Added new methods for getting and setting the min and max zoom levels:
getMinZoom
,setMinZoom
,getMaxZoom
,setMaxZoom
. (#509)
- Camera API Callback Improvements (#3412)
- Coordinate Deprecated For LatLng (#3309)
- Responsive User Dot Location Tracking (#2049)
- Added Camera API (#3244)
- Custom Layer Support (#3248)
- Reverse Tilt Gesutre Detection (#3245)
- Decoupled Location Provider (#2954)
- Added Tilt / Pitch Support (#2805)
- Keep InfoWindow Open When Panning (#3121)
- Concurrent Multiple Open InfoWindows (#3115)
- OkHttp Replace curl (#2856)
- GPS and Compass Customization Support (#2858)
- New User Dot location graphics (#2732)
- Custom Drawable Markers (#2744)
MapView.setOnInfoWindowClickListener()
support (#2448)- Completed Annotations API (#1716)
- Satellite Streets Style (#2739)
- RESOLVED Black Screen On Ice Cream Sandwich and Jelly Bean devices (#2802)
- Initial Android release.