Skip to content

Releases: mapbox/mapbox-navigation-android

Mapbox Navigation SDK v0.15.0

21 Jun 22:04
Compare
Choose a tag to compare

Release Notes

Release contains new APIs → See Navigation UI Notes

Navigation Core libandroid-navigation

  • Add internal logging for error scenarios related to voice instructions
  • Fixed issue with off-route events working incorrectly after the user has arrived at the end of their route
  • Bug fixes

Navigation UI libandroid-navigation-ui

  • Upcoming maneuver arrow drawn on the route line - we now support dynamically drawing an arrow at the upcoming maneuver point (see gif)
    • Just like the route line itself, the colors of the arrow itself are customizable via a NavigationMapRoute style.
  • Current way name pill underneath user location icon (also, see gif)
    • New APIs in NavigationView to customize this:
      • NavigationView#updateWaynameView(String wayname)
      • NavigationView#updateWaynameVisibility(boolean isVisible)
      • NavigationView#updateWaynameQueryMap(boolean isEnabled)
  • Bug fixes

ezgif com-video-to-gif

Changelog:

  • Use theme attribute to update MapView map style URL #1018
  • Remove setting voiceLanguage / voice unitType in RouteFetcher #1046
  • Add distance remaining buffer to show first instruction immediately #1043
  • Revert Maps SDK version to 6.1.3 #1044
  • Update Maps SDK to 6.2.0 #1042
  • Update to MAS 3.3.0 and add approaches / waypointNames to NavigationRoute #996
  • Fix upcoming arrow is drawn over annotations #1041
  • Added error logging for API voice errors #1036
  • Removed AndroidSpeechPlayer.UtteranceProgressListener and replaced wi… #1017
  • Added check for whether a language is supported by API voice before d… #1004
  • Updated NavigationRoute.language to take a Locale #1025
  • Add route overview button and animation to NavigationView #967
  • NavigationViewEventDispatcher remove navigation listeners in onDestroy #1013
  • Fixed issue where map still had focus when instruction list was visib… #1014
  • Remove origin, destination, unit type and locale from nav options #965
  • Remove metric arrival event reset for multiple waypoints #1022
  • Check for valid name property value in MapWayname #1031
  • Update NavigationActivity naming to avoid naming collisions #1020
  • Hide way name when camera is not tracking Location #1027
  • Add check to remove listener from location engine in NavigationService #1026
  • Fixed overlapping of button and compass by wrapping button content #990
  • Add missing arrival ManeuverViewMap pair #1007
  • Remove attempt to place route source when style layers are null #1006
  • Update LocationLayerPlugin to 0.5.3, MAS 3.2.0 #1010
  • Added extra call to onError for cases where a response is received bu… #997
  • Added InstructionViewCallback to allow views to be alerted when the in… #988
  • Update repositories block in build.gradle to have google() as the first entry #1000
  • Add wayname underneath navigation puck #953
  • Add upcoming maneuver arrow on the route line #934
  • Update InstructionView with BannerMilestone only with callback #969
  • Added onOffRoute call and removed queue from NavigationInstructionPlayer #986
  • Example cleanup #987
  • Check distance remaining before running OffRouteDetector logic #977
  • Add try catch when obtaining FragmentManager in InstructionView #973

Mapbox Navigation SDK v0.15.0-beta.2

15 Jun 23:51
Compare
Choose a tag to compare

Pre-release of v0.15.0:

  • Stability fixes / improvements over beta.1

Mapbox Navigation SDK v0.15.0-beta.1

12 Jun 20:39
Compare
Choose a tag to compare

Pre-release of v0.15.0:

  • Includes upcoming maneuver arrow on the route line, current way name underneath the location "puck", and other bug fixes.

Mapbox Navigation SDK v0.14.0

31 May 18:09
Compare
Choose a tag to compare

Release Notes

Release contains API Breaking Changes → See Navigation UI Notes

Navigation Core libandroid-navigation

  • New API that allows for a List of Milestone to be added at the same time, rather than each Milestone added individually.
  • Bug fixes

Navigation UI libandroid-navigation-ui

  • Breaking change: origin, destination, unitType, and locale have been removed from NavigationViewOptions and NavigationLauncherOptions.
    • This API change was done in an effort to make localizing the SDK more straightforward.
    • You now must request a DirectionsRoute prior to starting navigation with either the NavigationLauncher or NavigationView itself.
    • We will now use the language and voiceUnit type to determine pronunciation for voice announcements and parsing of distances (imperial v. metric) in the UI.
    • An example request demonstrating how to configure:
      NavigationRoute.builder(this)
        .accessToken(Mapbox.getAccessToken())
        .origin(origin)
        .destination(destination)
        .language(Locale.FRANCE.getLanguage())
        .voiceUnits(DirectionsCriteria.METRIC)
        .build().getRoute(this);
      
    • Once this route is successfully retrieved by our Directions API and passed to the SDK, we will look at the French Locale and METRIC voice units for our localization.
    • The NavigationRoute.``builder``(this) now takes in a Context so we can provide device defaults based on the current configuration if a language or voiceUnit is not set.
  • Dynamic abbreviations in the InstructionView
    • The Directions API now offers abbreviations for each components being used to create the top banner. If the combined text / images do not fit within the TextView, we will now automatically abbreviate certain words in an effort to make the text fit without an ellipsis.

ezgif com-video-to-gif

  • Navigation Map Styles v3
    • Updated default maps styles designed by our Cartography team.
  • Bug fixes

Changelog:

  • Always provide DirectionsRoute in NavigationActivity #980
  • Update Maps SDK to 6.1.3 and Events library to 3.1.2 #975
  • Add List of Milestones to NavigationViewOptions #974
  • Remove origin, destination, unit type and locale from nav options #965
  • Update Maps SDK 6.1.2 #962
  • Disable debug logging for Telemetry and Image loading #961
  • Reset EventDispatcher in onDestroy #954
  • Fix link in CONTRIBUTING.md #952
  • Fix navigation guidance styles keys #948
  • Resume navigation state based on MapboxNavigation running #946
  • Initialize ViewModel EventDispatcher in NavigationView constructor #945
  • Add NavigationHelper check for valid step points using lineSlice #944
  • Use last BannerInstruction for arrival event #943
  • Downgrade min sdk version to 14 #942
  • Remove onStyleLoaded Callback in NavigationView #939
  • Update ConstraintLayout, Support Lib, and LocationLayerPlugin dependencies #938
  • Update translation Strings and add Burmese #937
  • Check for valid BannerInstructions when milestones are enabled #936
  • Added null check to make sure a file is actually returned #925
  • Update to Guidance V3 Map Styles #917
  • Check NavigationOptions in NavigationService #916
  • Remove AWS Polly dependency not needed anymore #914
  • Update localization.md #913
  • Dynamic abbreviations in banner instructions #887

Mapbox Navigation SDK v0.13.0

03 May 04:56
Compare
Choose a tag to compare

Release Notes

Release contains API Breaking Changes → See Navigation UI Notes

Navigation Core libandroid-navigation

  • RouteProgress now provides more data that can be used while navigating:
    • RouteProgress#currentStepPoints
    • RouteProgress#upcomingStepPoints
    • RouteProgress#currentLegProgress#currentLegAnnotation which will provide the current annotation data that the Location updates are traveling within along the route.
      • Note: the DirectionsRoute must be requested with ANNOTATION_DISTANCE to enable this within the RouteProgress - we now do this by default in NavigationRoute.
    • RouteProgress#currentLegProgress#currentStepProgress#currentIntersection
      • An intersection is considered a current intersection once passed through and will remain so until a different intersection is passed through.
    • RouteProgress#currentLegProgress#currentStepProgress#upcomingIntersection
      • The intersection being traveled towards on the route. Will be null if the upcoming step is null (last step of the leg).
  • Bug fixes

Navigation UI libandroid-navigation-ui

  • Breaking change: NavigationView#getNavigationAsync has been updated to NavigationView#initialize
  • API Voice Integration
    • An AWS pool ID is no longer needed in NavigationLauncherOptions or NavigationViewOptions to access improved voice instructions with AWS Polly. We now provide this functionality with a valid internet connection. If, at the time of the announcement, an internet connection isn’t found or the request fails, the SDK will fall back to Android TextToSpeech
  • Maps SDK 6.0.1
    • The new Mapbox Maps SDK release has been integrated into our turn-by-turn UI. This also includes the LocationLayerPlugin 0.5.0 release.

Changelog:

  • Add missing uturn step maneuver modifier to should flip modifiers set #908
  • Bump Mapbox SDK Services to 3.1.0 version #907
  • Reverse maneuver sharp left resource #905
  • Fixed bug where we weren't checking if the unit type changed before l… #896
  • Remove use of LiveData for fetching DirectionsRoute and updating Location #894
  • Update String resources with new Transifex translations #889
  • Cancel delayed transitions when InstructionView is detached #885
  • Remove app name String resource from libandroid-navigation #884
  • Update localization.md #881
  • Fix Feedback FAB margins #878
  • Update new Transifex translation Strings #870
  • Check for null camera engine before returning from MapboxNavigation #866
  • Update Maps SDK 5.5.2 #865
  • Added null check for race condition when deleting instruction files #860
  • Add null start timestamp check for metric events #857
  • Add NavigationLauncherOption snap-to-route enabled #856
  • Use BannerText roundabout degrees + Banner and Voice Milestone Tests #854
  • Added null checks in case the user isn't using voice instructions #852
  • Add gradle-dependency-graph-generator-plugin to the project #850
  • Remove draw routes and add direction waypoints calls already being called #849
  • Add AutoValue Proguard rule #838
  • Validate route profile passed into RouteViewModel #829
  • Remove NavigationCamera ProgressChangeListener as public api #828
  • Upgrade RouteProgress Step Data #812
  • Integrate API Voice #751

Mapbox Navigation SDK v0.12.0

03 Apr 20:12
4daaed8
Compare
Choose a tag to compare

Release Notes

*** Release uses Java 8 (static interface method) ***

If you run into this error when updating the SDK:

Static interface methods are only supported starting with Android N (--min-api 24): com.mapbox.geojson.Geometry com.mapbox.geojson.Geometry.fromJson(java.lang.String)
Message{kind=ERROR, text=Static interface methods are only supported starting with Android N (--min-api 24): com.mapbox.geojson.Geometry com.mapbox.geojson.Geometry.fromJson(java.lang.String), sources=[Unknown source file], tool name=Optional.of(D8)}

The static interface method used in com.mapbox.geojson.Geometry is compatible with any minSdkVersion (see Supported Java 8 Language Features and APIs).

To fix the issue you're seeing, ensure that you are using Gradle version 3.0 or greater, then you can add this to your build.gradle:

android {
  ...
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}

This can also be done via your project settings (File > Project Structure > Your_Module > Source Compatibility / Target Compatibility).

With Android Studio 3.1.0, you should not run into this issue, as the new dex compiler D8 will be enabled by default.

Release contains API Breaking Changes → See Navigation UI Notes

Navigation Core libandroid-navigation

  • Complete rework of how we validate incoming Location updates from the device GPS. #690 updated this logic, where we were previously checking if the update had speed and a horizontal accuracy of < 100 meters.
  • Bug fixes
    • Issue with disabling off-route detection fixed
    • Index out of bounds for decoding step geometry fixed

Navigation UI libandroid-navigation-ui

  • #782 (breaking change) introduced NavigationLauncherOptions to be used with NavigationLauncher.
    • Both NavigationLauncherOptions and NavigationViewOptions subclass NavigationOptions as there a few shared variables between both options objects.
    • Previously NavigationViewOptions were used with NavigationLauncher as well as NavigationView#startNavigation. This didn't make sense because NavigationLauncher wasn't considering all of the variables passed from NavigationViewOptions, such as the listeners.
  • The navigation UI now supports with 12 / 24 hour arrival-time formatting with an option added to NavigationViewOptions #805
  • With #808, during off-route scenarios, the navigation UI will select the most similar route (compared to the one you were driving along) from the list of routes returned from our Directions API. Previously, we were always selecting the fastest from A to B.

Changelog:

  • Add MapboxNavigationOptions to adjust location validation thresholds #818
  • Set default driving profile and check for empty profile #816
  • Update to MAS 3.0.1 #815
  • Added safety for NONE_SPECIFIED type for voice units #811
  • Add stick to chosen route when re-routing with UI functionality #808
  • Remove NavigationView lifecycle observer and add Fragment Example #806
  • Add 12/24 hour format to NavigationViewOptions #805
  • Fixed unit type was defaulting to imperial #804
  • Update ISSUE_TEMPLATE.md #798
  • Decrease Robo tests time to 5 minutes #795
  • Send departure event with a valid distance traveled #789
  • Remove last location check from location validation #788
  • Add localization instructions #785
  • Extract NavigationEngine processing logic and add tests #784
  • Fix OffRoute detection disabled bug #783
  • Create separate options for Launcher and View #782
  • Create LocationValidator for checking new location updates #690

Mapbox Navigation SDK v0.11.1

16 Mar 21:25
Compare
Choose a tag to compare
  • Adjust sound layout margin #775
  • Fix distancesFromManeuver not being cleared #773
  • Allow setting of custom destination marker in theme #763
  • Fixed back button in NavigationViewActivity #768
  • Fixed unit type bug #769
  • Fix MapRoute listener not firing for index 0 #772
  • Stop scroll of InstructionList before hiding #766
  • Add baseUrl to NavigationRoute and Turf conversion #767
  • Force first location update without last location #756
  • Update EventListener Thread Safe #762
  • Create camera animation from time between updates #753
  • NavigationView Landscape Optimizations #749

Mapbox Navigation SDK v0.11.0

07 Mar 20:21
Compare
Choose a tag to compare

Release Notes

Navigation Core libandroid-navigation

  • Bug fixes
    • Now fixed: OffRouteDetector was firing unnecessary off-route events in roundabouts / circular on and off ramps.

Navigation UI libandroid-navigation-ui

  • DynamicCamera added to provide contextual camera movements based on the user’s location traveling along the given LegStep.
  • Updated Mapbox Android Services, LocationLayerPlugin, and Maps SDKs to their latest released versions.
  • Bug fixes.

Changelog:

  • Fix same point being added twice for LatLngBounds #741
  • Fix Recent Distances from maneuver Off-Route #739
  • Update MAS Dependencies #738
  • Update LocationLayerPlugin to 0.4.0 #734
  • Fix visibility bug with TurnLanes #733
  • Update Maps SDK 5.5.0 #732
  • Show first BannerInstruction immediately #731
  • Fix initialization of directions list #728
  • Default Dynamic Camera for Navigation UI #679

Mapbox Navigation SDK v0.10.0

26 Feb 22:14
Compare
Choose a tag to compare

Release Notes

Navigation Core libandroid-navigation

  • Off-Route Bug fixes
    • There we several bugs causing incorrect off-route events while location updates were actually still on the route.
    • Our entire OffRouteDetector was reworked in #667 to address these bugs and tests were added to ensure the logic remains stable.
  • Faster-Route detection now considers bearing. The DirectionsRoute provided by FasterRouteListener was not considering the direction the user was going when making new route requests, which would sometimes result in the new route calling for an immediate u-turn. This was fixed with #687.

Navigation UI libandroid-navigation-ui

  • Localization Improvements
    • The distance units will automatically be set to either imperial or metric based on the set Locale of the device. You can now also override this with MapboxNavigationOptions#locale(Locale).
      • Spoken instructions are now also based on Locale, so for both PollyPlayer and the default TextToSpeak engine. This will better ensure instructions are spoken with better pronunciations.
  • When a new DirectionsRoute request would be made during an off-route event, the turn-by-turn UI would not consider previous options or remaining waypoints when making the new route request.
    • #680 ensures the original options from the DirectionsRoute provided are considered, along with calculating the remaining waypoints along the route if there are any.
  • Bug fixes surrounding the NavigationMapRoute, InstructionView, and FeedbackBottomSheet.

Changelog:

  • Fix NPE with MapRoute click listener #721
  • Null check camera tracking #719
  • Initialize metric session state in constructor #718
  • Clean dependencies exposed #711
  • Fix Javadocs so that supports JDK 8 #712
  • Clear features so DirectionsRoute isn't redrawn when new style loads #706
  • Fix bug with MapRoute onClick #703
  • Fix flashing InstructionView list during re-routes #700
  • Fix FeedbackBottomSheet rotation bug #699
  • Check Turn / Then Banner on each update #696
  • Instructions based on locale #691
  • Cancel animation if AlertView detaches while running #689
  • Add bearing to RouteEngine requests #687
  • LocationViewModel obtain best LocationEngine #685
  • Dependencies Bump #684
  • Fix issue with startup in Night Mode #683
  • Cache route options / calculate remaining waypoints #680
  • Switched setOnMapClickListener() to addOnMapClickListener() #672
  • Locale distance formatter #668
  • Off-Route Bug Fixes #667
  • Update Default Zoom Level #655

Mapbox Navigation SDK v0.10.0-beta.1

16 Feb 23:45
Compare
Choose a tag to compare

Beta Release

  • Clear features so DirectionsRoute isn't redrawn when new style loads #706
  • Fix bug with MapRoute onClick #703
  • Fix flashing InstructionView list during re-routes #700
  • Fix FeedbackBottomSheet rotation bug #699
  • Check Turn / Then Banner on each update #696
  • Instructions based on locale #691
  • Cancel animation if AlertView detaches while running #689
  • Add bearing to RouteEngine requests #687
  • LocationViewModel obtain best LocationEngine #685
  • Dependencies Bump #684
  • Fix issue with startup in Night Mode #683
  • Cache route options / calculate remaining waypoints #680
  • Switched setOnMapClickListener() to addOnMapClickListener() #672
  • Locale distance formatter #668
  • Off-Route Bug Fixes #667
  • Update Default Zoom Level #655