├── .github ├── CODEOWNERS ├── aaos_example.png ├── splash_example.png └── android_auto_example.png ├── app ├── .gitignore ├── src │ ├── main │ │ ├── res │ │ │ ├── mipmap-hdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── values │ │ │ │ ├── colors.xml │ │ │ │ ├── strings.xml │ │ │ │ ├── styles_status.xml │ │ │ │ └── styles.xml │ │ │ ├── drawable │ │ │ │ ├── mapbox_button.xml │ │ │ │ └── ic_clear_black_24dp.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ ├── ic_launcher.xml │ │ │ │ └── ic_launcher_round.xml │ │ │ ├── animator │ │ │ │ ├── scale_in.xml │ │ │ │ └── scale_out.xml │ │ │ ├── drawable-v24 │ │ │ │ └── ic_launcher_foreground.xml │ │ │ └── layout │ │ │ │ └── mapbox_item_view_recycler.xml │ │ └── java │ │ │ └── com │ │ │ └── mapbox │ │ │ └── navigation │ │ │ └── examples │ │ │ ├── standalone │ │ │ ├── preview │ │ │ │ └── res │ │ │ │ │ ├── drawable │ │ │ │ │ └── mapbox_route_preview.jpg │ │ │ │ │ ├── values │ │ │ │ │ └── strings.xml │ │ │ │ │ └── layout │ │ │ │ │ └── activity_preview.xml │ │ │ ├── isochrone │ │ │ │ └── res │ │ │ │ │ ├── values │ │ │ │ │ └── strings.xml │ │ │ │ │ ├── drawable │ │ │ │ │ └── isochrone_activity_thumbnail.jpg │ │ │ │ │ └── layout │ │ │ │ │ └── activity_isochrone_range_preview.xml │ │ │ ├── replay │ │ │ │ ├── res │ │ │ │ │ ├── drawable │ │ │ │ │ │ ├── mapbox_screenshot_replay.png │ │ │ │ │ │ └── ic_refresh.xml │ │ │ │ │ ├── values │ │ │ │ │ │ ├── dimen.xml │ │ │ │ │ │ ├── styles.xml │ │ │ │ │ │ └── strings.xml │ │ │ │ │ └── layout │ │ │ │ │ │ ├── history_files_header.xml │ │ │ │ │ │ ├── history_files_list_item.xml │ │ │ │ │ │ └── history_files_activity.xml │ │ │ │ ├── AdapterItem.kt │ │ │ │ ├── HistoryFilesDirectory.kt │ │ │ │ ├── HistoryFileLoader.kt │ │ │ │ ├── HistoryFileAdapter.kt │ │ │ │ ├── HistoryFilesClient.kt │ │ │ │ └── HistoryFilesActivity.kt │ │ │ ├── voice │ │ │ │ └── res │ │ │ │ │ ├── drawable │ │ │ │ │ └── mapbox_screenshot_voice.jpg │ │ │ │ │ ├── values │ │ │ │ │ └── strings.xml │ │ │ │ │ └── layout │ │ │ │ │ └── mapbox_activity_play_voice_instruction.xml │ │ │ ├── compose │ │ │ │ └── res │ │ │ │ │ ├── drawable │ │ │ │ │ └── jetpack_compose_experience.jpg │ │ │ │ │ └── values │ │ │ │ │ └── strings.xml │ │ │ ├── camera │ │ │ │ └── res │ │ │ │ │ ├── drawable │ │ │ │ │ └── mapbox_screenshot_basic_camera.jpg │ │ │ │ │ ├── values │ │ │ │ │ └── strings.xml │ │ │ │ │ └── layout │ │ │ │ │ └── mapbox_activity_camera_transitions.xml │ │ │ ├── maneuvers │ │ │ │ └── res │ │ │ │ │ ├── drawable │ │ │ │ │ └── mapbox_screenshot_maneuvers.jpg │ │ │ │ │ ├── values │ │ │ │ │ └── strings.xml │ │ │ │ │ └── layout │ │ │ │ │ └── mapbox_activity_show_maneuver_instructions.xml │ │ │ ├── status │ │ │ │ ├── res │ │ │ │ │ ├── drawable │ │ │ │ │ │ ├── mapbox_screenshot_status_basic.png │ │ │ │ │ │ └── mapbox_screenshot_status_custom.png │ │ │ │ │ ├── values │ │ │ │ │ │ └── strings.xml │ │ │ │ │ └── layout │ │ │ │ │ │ ├── mapbox_activity_show_status.xml │ │ │ │ │ │ └── mapbox_activity_show_custom_status.xml │ │ │ │ ├── ShowStatusActivity.kt │ │ │ │ └── ShowCustomStatusActivity.kt │ │ │ ├── custompuck │ │ │ │ └── res │ │ │ │ │ ├── drawable │ │ │ │ │ ├── custom_puck_activity_thumbnail.jpg │ │ │ │ │ └── puck_icon.xml │ │ │ │ │ ├── values │ │ │ │ │ └── strings.xml │ │ │ │ │ └── layout │ │ │ │ │ └── mapbox_activity_custom_puck.xml │ │ │ ├── location │ │ │ │ └── res │ │ │ │ │ ├── drawable │ │ │ │ │ └── mapbox_ic_user_current_location.jpg │ │ │ │ │ ├── values │ │ │ │ │ └── strings.xml │ │ │ │ │ └── layout │ │ │ │ │ └── mapbox_activity_user_current_location.xml │ │ │ ├── routeline │ │ │ │ └── res │ │ │ │ │ ├── drawable │ │ │ │ │ └── mapbox_screenshot_route_lines.png │ │ │ │ │ ├── values │ │ │ │ │ └── strings.xml │ │ │ │ │ └── layout │ │ │ │ │ └── mapbox_activity_route_line.xml │ │ │ ├── speedlimit │ │ │ │ └── res │ │ │ │ │ ├── drawable │ │ │ │ │ └── mapbox_screenshot_speed_limit.png │ │ │ │ │ ├── values │ │ │ │ │ └── strings.xml │ │ │ │ │ └── layout │ │ │ │ │ └── mapbox_activity_show_speed_limit.xml │ │ │ ├── fetchroute │ │ │ │ └── res │ │ │ │ │ ├── drawable │ │ │ │ │ └── mapbox_screenshot_fetch_a_route.jpg │ │ │ │ │ ├── values │ │ │ │ │ └── strings.xml │ │ │ │ │ └── layout │ │ │ │ │ └── mapbox_activity_fetch_a_route.xml │ │ │ ├── turnbyturn │ │ │ │ └── res │ │ │ │ │ ├── drawable │ │ │ │ │ └── mapbox_screenshot_tbt_experience.jpg │ │ │ │ │ └── values │ │ │ │ │ └── strings.xml │ │ │ ├── building │ │ │ │ └── res │ │ │ │ │ ├── drawable │ │ │ │ │ └── mapbox_screenshot_building_extrusion.jpg │ │ │ │ │ ├── values │ │ │ │ │ └── strings.xml │ │ │ │ │ └── layout │ │ │ │ │ └── mapbox_activity_building_extrusions.xml │ │ │ ├── callout │ │ │ │ ├── res │ │ │ │ │ ├── drawable │ │ │ │ │ │ ├── mapbox_screenshot_custom_route_callout.png │ │ │ │ │ │ ├── bg_dva_eta.xml │ │ │ │ │ │ └── arrow_straight.xml │ │ │ │ │ ├── values │ │ │ │ │ │ ├── strings.xml │ │ │ │ │ │ └── colors.xml │ │ │ │ │ └── layout │ │ │ │ │ │ ├── item_dva_eta.xml │ │ │ │ │ │ ├── activity_route_callout.xml │ │ │ │ │ │ └── item_dva_alt_eta.xml │ │ │ │ └── BitmapUtils.kt │ │ │ ├── tripprogress │ │ │ │ └── res │ │ │ │ │ ├── drawable │ │ │ │ │ └── mapbox_screenshot_trip_progress.png │ │ │ │ │ ├── values │ │ │ │ │ └── strings.xml │ │ │ │ │ └── layout │ │ │ │ │ └── mapbox_activity_trip_progress.xml │ │ │ ├── waypoints │ │ │ │ └── res │ │ │ │ │ ├── drawable │ │ │ │ │ └── mapbox_screenshot_multiple_waypoints.jpg │ │ │ │ │ ├── values │ │ │ │ │ └── strings.xml │ │ │ │ │ └── layout │ │ │ │ │ └── mapbox_activity_multiple_waypoints.xml │ │ │ ├── alternative │ │ │ │ └── res │ │ │ │ │ ├── drawable │ │ │ │ │ └── mapbox_screenshot_alternative_routes.png │ │ │ │ │ ├── values │ │ │ │ │ └── strings.xml │ │ │ │ │ └── layout │ │ │ │ │ └── activity_show_alternative_routes.xml │ │ │ ├── arrival │ │ │ │ └── res │ │ │ │ │ ├── values │ │ │ │ │ └── strings.xml │ │ │ │ │ └── layout │ │ │ │ │ └── mapbox_activity_custom_arrival.xml │ │ │ └── res │ │ │ │ └── layout │ │ │ │ └── activity_standalone.xml │ │ │ ├── MapboxExample.kt │ │ │ └── MapboxExamplesAdapter.kt │ └── test │ │ └── java │ │ └── com │ │ └── mapbox │ │ └── navigation │ │ └── examples │ │ └── basics │ │ └── WaypointsSetTest.kt └── proguard-rules.pro ├── app-preview ├── .gitignore ├── src │ └── main │ │ ├── res │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ ├── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ ├── values-night │ │ │ └── themes.xml │ │ ├── layout │ │ │ ├── activity_main.xml │ │ │ └── mapbox_item_view_recycler.xml │ │ └── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ ├── java │ │ └── com │ │ │ └── mapbox │ │ │ └── navigation │ │ │ └── examples │ │ │ └── preview │ │ │ ├── copilot │ │ │ ├── res │ │ │ │ ├── drawable │ │ │ │ │ ├── mapbox_screenshot_copilot.png │ │ │ │ │ ├── ic_start.xml │ │ │ │ │ ├── ic_stop.xml │ │ │ │ │ ├── ic_feedback.xml │ │ │ │ │ ├── ic_wrong_location.xml │ │ │ │ │ ├── ic_route.xml │ │ │ │ │ └── ic_search.xml │ │ │ │ ├── values │ │ │ │ │ └── strings.xml │ │ │ │ └── layout │ │ │ │ │ └── mapbox_activity_copilot.xml │ │ │ └── CopilotViewModel.kt │ │ │ ├── MapboxExample.kt │ │ │ ├── ExamplesList.kt │ │ │ └── MapboxExamplesAdapter.kt │ │ └── AndroidManifest.xml ├── proguard-rules.pro └── build.gradle ├── feedback-agent-app ├── .gitignore ├── src │ └── main │ │ ├── res │ │ ├── values │ │ │ ├── strings.xml │ │ │ └── themes.xml │ │ └── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ ├── kotlin │ │ └── com │ │ │ └── mapbox │ │ │ └── navigation │ │ │ └── examples │ │ │ └── feedbackagent │ │ │ ├── voicefeedback │ │ │ ├── domain │ │ │ │ ├── AsrData.kt │ │ │ │ ├── AutomaticSpeechRecognitionEngine.kt │ │ │ │ ├── FeedbackDTO.kt │ │ │ │ ├── ASRState.kt │ │ │ │ ├── VoiceFeedbackContextDTO.kt │ │ │ │ └── VoiceFeedbackContextProvider.kt │ │ │ └── VoiceFeedbackViewState.kt │ │ │ ├── MainViewModel.kt │ │ │ └── FeedbackAgentPermissions.kt │ │ └── AndroidManifest.xml ├── local.properties ├── README.md └── build.gradle ├── android-auto-app ├── .gitignore ├── src │ └── main │ │ ├── res │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ ├── values │ │ │ ├── strings.xml │ │ │ ├── colors.xml │ │ │ └── themes.xml │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ ├── layout │ │ │ ├── mapbox_activity_navigation_view.xml │ │ │ └── activity_main.xml │ │ ├── values-night │ │ │ └── themes.xml │ │ └── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ ├── java │ │ └── com │ │ │ └── mapbox │ │ │ └── navigation │ │ │ └── examples │ │ │ └── androidauto │ │ │ ├── car │ │ │ └── MainCarAppService.kt │ │ │ ├── ExampleApplication.kt │ │ │ ├── app │ │ │ └── MainActivity.kt │ │ │ └── ReplayRouteTripSession.kt │ │ └── AndroidManifest.xml ├── proguard-rules.pro ├── README.md └── build.gradle ├── android-automotive-app ├── .gitignore ├── src │ └── main │ │ ├── res │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ ├── values │ │ │ └── strings.xml │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ └── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ ├── java │ │ └── com │ │ │ └── mapbox │ │ │ └── navigation │ │ │ └── examples │ │ │ └── aaos │ │ │ ├── car │ │ │ ├── MainCarAppService.kt │ │ │ ├── CarLocationPermissions.kt │ │ │ ├── CarTripSessionManager.kt │ │ │ └── ReplayRouteTripSession.kt │ │ │ ├── ExampleApplication.kt │ │ │ └── ExamplePermissionScreen.kt │ │ └── AndroidManifest.xml ├── proguard-rules.pro ├── README.md └── build.gradle ├── navigation_examples.keystore ├── gradle ├── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── script-git-version.gradle └── ktlint.gradle ├── settings.gradle ├── .gitignore ├── LICENSE.md ├── .editorconfig ├── gradle.properties ├── CONTRIBUTING.md ├── README.md ├── .circleci └── config.yml └── gradlew.bat /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @mapbox/navigation-android -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | src/main/res/values/mapbox_access_token.xml -------------------------------------------------------------------------------- /app-preview/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | src/main/res/values/mapbox_access_token.xml -------------------------------------------------------------------------------- /feedback-agent-app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | src/main/res/values/mapbox_access_token.xml -------------------------------------------------------------------------------- /android-auto-app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | src/main/res/values/mapbox_access_token.xml 3 | -------------------------------------------------------------------------------- /android-automotive-app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | src/main/res/values/mapbox_access_token.xml -------------------------------------------------------------------------------- /.github/aaos_example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/.github/aaos_example.png -------------------------------------------------------------------------------- /.github/splash_example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/.github/splash_example.png -------------------------------------------------------------------------------- /navigation_examples.keystore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/navigation_examples.keystore -------------------------------------------------------------------------------- /.github/android_auto_example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/.github/android_auto_example.png -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /feedback-agent-app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Feedback Agent 4 | -------------------------------------------------------------------------------- /app-preview/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app-preview/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app-preview/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app-preview/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app-preview/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app-preview/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app-preview/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app-preview/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app-preview/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app-preview/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android-auto-app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/android-auto-app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android-auto-app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/android-auto-app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android-auto-app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/android-auto-app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app-preview/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app-preview/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app-preview/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app-preview/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android-auto-app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/android-auto-app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android-auto-app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/android-auto-app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app-preview/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app-preview/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app-preview/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app-preview/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /feedback-agent-app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/feedback-agent-app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android-auto-app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/android-auto-app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android-auto-app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/android-auto-app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android-automotive-app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/android-automotive-app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android-automotive-app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/android-automotive-app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app-preview/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app-preview/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android-auto-app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/android-auto-app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android-auto-app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/android-auto-app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android-automotive-app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/android-automotive-app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android-automotive-app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/android-automotive-app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android-auto-app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/android-auto-app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android-automotive-app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/android-automotive-app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android-automotive-app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/android-automotive-app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android-automotive-app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/android-automotive-app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android-automotive-app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/android-automotive-app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android-automotive-app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/android-automotive-app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android-automotive-app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/android-automotive-app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ( 2 | ':app', 3 | ':app-preview', 4 | ':android-auto-app', 5 | ':android-automotive-app', 6 | ':feedback-agent-app' 7 | ) 8 | rootProject.name = "Mapbox Navigation Examples" 9 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #6200EE 4 | #3700B3 5 | #03DAC5 6 | -------------------------------------------------------------------------------- /android-auto-app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | AA-app 3 | 4 | Hello blank fragment 5 | -------------------------------------------------------------------------------- /app-preview/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #6200EE 4 | #3700B3 5 | #03DAC5 6 | -------------------------------------------------------------------------------- /feedback-agent-app/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/preview/res/drawable/mapbox_route_preview.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app/src/main/java/com/mapbox/navigation/examples/standalone/preview/res/drawable/mapbox_route_preview.jpg -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/isochrone/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Isochrone Range Preview 3 | Demonstrates using an isochrone. 4 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/replay/res/drawable/mapbox_screenshot_replay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app/src/main/java/com/mapbox/navigation/examples/standalone/replay/res/drawable/mapbox_screenshot_replay.png -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/voice/res/drawable/mapbox_screenshot_voice.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app/src/main/java/com/mapbox/navigation/examples/standalone/voice/res/drawable/mapbox_screenshot_voice.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable/mapbox_button.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Gradle 2 | .gradle 3 | /local.properties 4 | 5 | # IntelliJ 6 | out/ 7 | 8 | build/ 9 | /captures 10 | .externalNativeBuild 11 | 12 | # Idea 13 | .idea 14 | *.iml 15 | 16 | #MacOS 17 | .DS_Store 18 | 19 | jacoco.exec 20 | app/src/main/res/values/mapbox_access_token.xml 21 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/compose/res/drawable/jetpack_compose_experience.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app/src/main/java/com/mapbox/navigation/examples/standalone/compose/res/drawable/jetpack_compose_experience.jpg -------------------------------------------------------------------------------- /app-preview/src/main/java/com/mapbox/navigation/examples/preview/copilot/res/drawable/mapbox_screenshot_copilot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app-preview/src/main/java/com/mapbox/navigation/examples/preview/copilot/res/drawable/mapbox_screenshot_copilot.png -------------------------------------------------------------------------------- /app-preview/src/main/java/com/mapbox/navigation/examples/preview/copilot/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Copilot 4 | The example demonstrates how to integrate and work with Copilot. 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/camera/res/drawable/mapbox_screenshot_basic_camera.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app/src/main/java/com/mapbox/navigation/examples/standalone/camera/res/drawable/mapbox_screenshot_basic_camera.jpg -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/isochrone/res/drawable/isochrone_activity_thumbnail.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app/src/main/java/com/mapbox/navigation/examples/standalone/isochrone/res/drawable/isochrone_activity_thumbnail.jpg -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/maneuvers/res/drawable/mapbox_screenshot_maneuvers.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app/src/main/java/com/mapbox/navigation/examples/standalone/maneuvers/res/drawable/mapbox_screenshot_maneuvers.jpg -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/status/res/drawable/mapbox_screenshot_status_basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app/src/main/java/com/mapbox/navigation/examples/standalone/status/res/drawable/mapbox_screenshot_status_basic.png -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/status/res/drawable/mapbox_screenshot_status_custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app/src/main/java/com/mapbox/navigation/examples/standalone/status/res/drawable/mapbox_screenshot_status_custom.png -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | To the extent possible under law, Mapbox has waived all copyright and related or neighboring rights to Mapbox Navigation SDK Examples. This work is published from the United States. 2 | 3 | CC0 1.0 Universal (CC0 1.0) 4 | Public Domain Dedication 5 | https://creativecommons.org/publicdomain/zero/1.0/ -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/custompuck/res/drawable/custom_puck_activity_thumbnail.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app/src/main/java/com/mapbox/navigation/examples/standalone/custompuck/res/drawable/custom_puck_activity_thumbnail.jpg -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/location/res/drawable/mapbox_ic_user_current_location.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app/src/main/java/com/mapbox/navigation/examples/standalone/location/res/drawable/mapbox_ic_user_current_location.jpg -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/routeline/res/drawable/mapbox_screenshot_route_lines.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app/src/main/java/com/mapbox/navigation/examples/standalone/routeline/res/drawable/mapbox_screenshot_route_lines.png -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/speedlimit/res/drawable/mapbox_screenshot_speed_limit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app/src/main/java/com/mapbox/navigation/examples/standalone/speedlimit/res/drawable/mapbox_screenshot_speed_limit.png -------------------------------------------------------------------------------- /android-automotive-app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | AAOS-app 3 | Accept permissions to continue 4 | Location permissions 5 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/fetchroute/res/drawable/mapbox_screenshot_fetch_a_route.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app/src/main/java/com/mapbox/navigation/examples/standalone/fetchroute/res/drawable/mapbox_screenshot_fetch_a_route.jpg -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/turnbyturn/res/drawable/mapbox_screenshot_tbt_experience.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app/src/main/java/com/mapbox/navigation/examples/standalone/turnbyturn/res/drawable/mapbox_screenshot_tbt_experience.jpg -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/building/res/drawable/mapbox_screenshot_building_extrusion.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app/src/main/java/com/mapbox/navigation/examples/standalone/building/res/drawable/mapbox_screenshot_building_extrusion.jpg -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/callout/res/drawable/mapbox_screenshot_custom_route_callout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app/src/main/java/com/mapbox/navigation/examples/standalone/callout/res/drawable/mapbox_screenshot_custom_route_callout.png -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/tripprogress/res/drawable/mapbox_screenshot_trip_progress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app/src/main/java/com/mapbox/navigation/examples/standalone/tripprogress/res/drawable/mapbox_screenshot_trip_progress.png -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/waypoints/res/drawable/mapbox_screenshot_multiple_waypoints.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app/src/main/java/com/mapbox/navigation/examples/standalone/waypoints/res/drawable/mapbox_screenshot_multiple_waypoints.jpg -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-all.zip 4 | networkTimeout=10000 5 | validateDistributionUrl=true 6 | zipStoreBase=GRADLE_USER_HOME 7 | zipStorePath=wrapper/dists 8 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | [*.{kt,kts}] 2 | ktlint_code_style = ktlint_official 3 | ktlint_disabled_rules=argument-list-wrapping,multiline-if-else,no-empty-first-line-in-method-block,spacing-between-declarations-with-annotations,spacing-between-declarations-with-comments,trailing-comma-on-declaration-site,trailing-comma-on-call-site 4 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/alternative/res/drawable/mapbox_screenshot_alternative_routes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mapbox/mapbox-navigation-android-examples/HEAD/app/src/main/java/com/mapbox/navigation/examples/standalone/alternative/res/drawable/mapbox_screenshot_alternative_routes.png -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/replay/res/values/dimen.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 180dp 5 | 16dp 6 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/MapboxExample.kt: -------------------------------------------------------------------------------- 1 | package com.mapbox.navigation.examples 2 | 3 | import android.graphics.drawable.Drawable 4 | 5 | data class MapboxExample( 6 | val image: Drawable?, 7 | val title: String, 8 | val description: String, 9 | val activity: Class<*> 10 | ) 11 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/callout/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Draw custom route callouts 3 | Customize route callouts using MapboxRouteCalloutAdapter. 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app-preview/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app-preview/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Mapbox Navigation Examples 3 | 4 | Error: no mapbox access token 5 | Please put your mapbox access token to res/values/mapbox_access_token.xml 6 | 7 | 8 | -------------------------------------------------------------------------------- /android-auto-app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app-preview/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Mapbox Navigation Examples Preview 3 | 4 | Error: no mapbox access token 5 | Please put your mapbox access token to res/values/mapbox_access_token.xml 6 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/custompuck/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Use a custom 2D or 3D puck 4 | Demonstrates using a custom 2D or 3D puck. 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/maneuvers/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Render maneuver instructions for a route 4 | Draw maneuver instructions using the Maneuver API and MapboxManeuverView. 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/voice/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Play voice instructions for a route 4 | Use the example to play voice instructions using Speech API and Voice Instruction Player. 5 | 6 | 7 | -------------------------------------------------------------------------------- /android-auto-app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /android-automotive-app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app-preview/src/main/java/com/mapbox/navigation/examples/preview/MapboxExample.kt: -------------------------------------------------------------------------------- 1 | package com.mapbox.navigation.examples.preview 2 | 3 | import android.graphics.drawable.Drawable 4 | 5 | data class MapboxExample( 6 | val image: Drawable?, 7 | val title: String, 8 | val description: String, 9 | val activity: Class<*> 10 | ) 11 | -------------------------------------------------------------------------------- /android-automotive-app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/speedlimit/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Render speed limit for a route 4 | Render the speed limit of the current road using the Speed Limit API and MapboxSpeedLimitView. 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/tripprogress/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Render trip progress information 4 | Draw trip progress information using the Trip Progress API and MapboxTripProgressView. 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/location/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Render current location on a map 4 | Use NavigationLocationProvider to show a device\'s current location as a puck on a map. 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/camera/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Use camera to frame the map 4 | Use NavigationCamera to show various map camera transitions using live location and routing data. 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/building/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Render building extrusion on arrival 4 | Use the example to render building extrusions on arrival using building API and MapboxBuildingView. 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/turnbyturn/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Add a complete turn-by-turn experience 4 | Render a complete turn-by-turn experience using all relevant Navigation SDK APIs and pre-built UI components. 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/routeline/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Draw route lines and callouts on a map 4 | Draw route lines on a map using the route line and route arrow APIs and the related MapboxRouteLineView and MapboxRouteArrowView. 5 | 6 | 7 | -------------------------------------------------------------------------------- /app-preview/src/main/java/com/mapbox/navigation/examples/preview/copilot/res/drawable/ic_start.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app-preview/src/main/java/com/mapbox/navigation/examples/preview/copilot/res/drawable/ic_stop.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /feedback-agent-app/local.properties: -------------------------------------------------------------------------------- 1 | ## This file must *NOT* be checked into Version Control Systems, 2 | # as it contains information specific to your local configuration. 3 | # 4 | # Location of the SDK. This is only used by Gradle. 5 | # For customization when using a Version Control System, please read the 6 | # header note. 7 | #Thu Aug 07 15:46:41 CEST 2025 8 | sdk.dir=/Users/pabloguardiola/Library/Android/sdk 9 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/replay/AdapterItem.kt: -------------------------------------------------------------------------------- 1 | package com.mapbox.navigation.examples.standalone.replay 2 | 3 | sealed class AdapterItem 4 | 5 | data class ReplayPath( 6 | val title: String, 7 | val description: String, 8 | val path: String, 9 | val dataSource: ReplayDataSource 10 | ) : AdapterItem() 11 | 12 | class Header(val title: String) : AdapterItem() 13 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/compose/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Add a complete turn-by-turn experience using Jetpack Compose 4 | Render a complete turn-by-turn experience in Jetpack Compose using all relevant Navigation SDK APIs and pre-built UI components. 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/preview/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Route Preview 3 | Preview a route before navigation. 4 | Start active guidance 5 | Finish active guidance 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/arrival/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Render building extrusion based on custom arrival criteria. 4 | Use the example to render building extrusions on arrival using building API and MapboxBuildingView. 5 | 6 | 7 | -------------------------------------------------------------------------------- /feedback-agent-app/src/main/kotlin/com/mapbox/navigation/examples/feedbackagent/voicefeedback/domain/AsrData.kt: -------------------------------------------------------------------------------- 1 | package com.mapbox.navigation.examples.feedbackagent.voicefeedback.domain 2 | 3 | internal sealed interface AsrData { 4 | data class Transcript( 5 | val text: String, 6 | ) : AsrData 7 | 8 | data class Result( 9 | val description: String, 10 | val type: String, 11 | ) : AsrData 12 | } 13 | -------------------------------------------------------------------------------- /android-automotive-app/src/main/java/com/mapbox/navigation/examples/aaos/car/MainCarAppService.kt: -------------------------------------------------------------------------------- 1 | package com.mapbox.navigation.examples.aaos.car 2 | 3 | import androidx.car.app.CarAppService 4 | import androidx.car.app.validation.HostValidator 5 | 6 | class MainCarAppService : CarAppService() { 7 | override fun createHostValidator() = HostValidator.ALLOW_ALL_HOSTS_VALIDATOR 8 | 9 | override fun onCreateSession() = MainCarSession() 10 | } 11 | -------------------------------------------------------------------------------- /app-preview/src/main/java/com/mapbox/navigation/examples/preview/copilot/res/drawable/ic_feedback.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_clear_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /android-auto-app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFBB86FC 4 | #FF6200EE 5 | #FF3700B3 6 | #FF03DAC5 7 | #FF018786 8 | #FF000000 9 | #FFFFFFFF 10 | -------------------------------------------------------------------------------- /android-auto-app/src/main/java/com/mapbox/navigation/examples/androidauto/car/MainCarAppService.kt: -------------------------------------------------------------------------------- 1 | package com.mapbox.navigation.examples.androidauto.car 2 | 3 | import androidx.car.app.CarAppService 4 | import androidx.car.app.validation.HostValidator 5 | 6 | class MainCarAppService : CarAppService() { 7 | override fun createHostValidator() = HostValidator.ALLOW_ALL_HOSTS_VALIDATOR 8 | 9 | override fun onCreateSession() = MainCarSession() 10 | } 11 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/alternative/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Set route 4 | Request alternative route 5 | Show alternative routes 6 | Use the example to show alternative routes using routes API. 7 | 8 | 9 | -------------------------------------------------------------------------------- /gradle/script-git-version.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | mavenCentral() 4 | } 5 | dependencies { 6 | classpath 'org.ajoberstar.grgit:grgit-core:4.1.1' 7 | } 8 | } 9 | 10 | import org.ajoberstar.grgit.Grgit 11 | 12 | ext { 13 | git = Grgit.open(currentDir: projectDir) 14 | gitCommitHash = git.head().abbreviatedId 15 | gitNumberOfCommits = git.log().size() 16 | gitTagDescription = git.describe(tags: true) 17 | git.close() 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/callout/res/drawable/bg_dva_eta.xml: -------------------------------------------------------------------------------- 1 | 7 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/custompuck/res/layout/mapbox_activity_custom_puck.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | -------------------------------------------------------------------------------- /android-auto-app/src/main/res/layout/mapbox_activity_navigation_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | -------------------------------------------------------------------------------- /feedback-agent-app/src/main/kotlin/com/mapbox/navigation/examples/feedbackagent/voicefeedback/domain/AutomaticSpeechRecognitionEngine.kt: -------------------------------------------------------------------------------- 1 | package com.mapbox.navigation.examples.feedbackagent.voicefeedback.domain 2 | 3 | import kotlinx.coroutines.flow.StateFlow 4 | 5 | internal interface AutomaticSpeechRecognitionEngine { 6 | 7 | val state: StateFlow 8 | 9 | fun startListening() 10 | 11 | fun stopListening() 12 | 13 | fun connect() 14 | 15 | fun disconnect() 16 | } 17 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/callout/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #4264fb 4 | #00195F 5 | #AFADAD 6 | #424242 7 | #09AA74 8 | #AA093F 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/status/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Show status messages 4 | Learn how to use MapboxStatusView to show status messages. 5 | Show customized status messages 6 | Learn how to customize MapboxStatusView to match your application theme. 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/animator/scale_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/animator/scale_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | 14 | -------------------------------------------------------------------------------- /feedback-agent-app/src/main/kotlin/com/mapbox/navigation/examples/feedbackagent/voicefeedback/domain/FeedbackDTO.kt: -------------------------------------------------------------------------------- 1 | package com.mapbox.navigation.examples.feedbackagent.voicefeedback.domain 2 | 3 | import kotlinx.serialization.SerialName 4 | import kotlinx.serialization.Serializable 5 | 6 | internal const val FEEDBACK_ACTION_TYPE = "feedback" 7 | 8 | @Serializable 9 | internal data class FeedbackDTO( 10 | @SerialName("feedbackType") 11 | val feedbackType: String, 12 | @SerialName("feedbackDescription") 13 | val feedbackDescription: String, 14 | ) 15 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/waypoints/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Build a multiple waypoints route 4 | Build a route using different types of waypoints: regular, silent, and named. 5 | Reset the route 6 | Regular 7 | Named 8 | Silent 9 | 10 | 11 | -------------------------------------------------------------------------------- /app-preview/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | -------------------------------------------------------------------------------- /app-preview/src/main/res/values-night/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | -------------------------------------------------------------------------------- /app-preview/src/main/java/com/mapbox/navigation/examples/preview/ExamplesList.kt: -------------------------------------------------------------------------------- 1 | package com.mapbox.navigation.examples.preview 2 | 3 | import android.content.Context 4 | import androidx.core.content.ContextCompat 5 | import com.mapbox.navigation.examples.preview.copilot.CopilotActivity 6 | 7 | fun Context.examplesList() = listOf( 8 | MapboxExample( 9 | ContextCompat.getDrawable( 10 | this, 11 | R.drawable.mapbox_screenshot_copilot 12 | ), 13 | getString(R.string.title_copilot), 14 | getString(R.string.description_copilot), 15 | CopilotActivity::class.java 16 | ), 17 | ) 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/fetchroute/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Route was fetched successfully 4 | Route request was canceled 5 | Route request returned error 6 | Fetch routes between an origin and destination 7 | Fetch routes by specifying two coordinates in RouteOptions and passing those options to MapboxNavigation\'s requestRoutes method. 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/replay/res/drawable/ic_refresh.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/replay/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | 14 | -------------------------------------------------------------------------------- /android-automotive-app/src/main/java/com/mapbox/navigation/examples/aaos/ExampleApplication.kt: -------------------------------------------------------------------------------- 1 | package com.mapbox.navigation.examples.aaos 2 | 3 | import android.app.Application 4 | import com.mapbox.navigation.base.options.NavigationOptions 5 | import com.mapbox.navigation.core.lifecycle.MapboxNavigationApp 6 | 7 | class ExampleApplication : Application() { 8 | 9 | override fun onCreate() { 10 | super.onCreate() 11 | 12 | // Set up MapboxNavigation 13 | MapboxNavigationApp.setup( 14 | NavigationOptions.Builder(applicationContext) 15 | .accessToken(getString(R.string.mapbox_access_token)) 16 | .build() 17 | ).attachAllActivities(this) 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /android-auto-app/src/main/java/com/mapbox/navigation/examples/androidauto/ExampleApplication.kt: -------------------------------------------------------------------------------- 1 | package com.mapbox.navigation.examples.androidauto 2 | 3 | import android.app.Application 4 | import com.mapbox.navigation.base.options.NavigationOptions 5 | import com.mapbox.navigation.core.lifecycle.MapboxNavigationApp 6 | 7 | class ExampleApplication : Application() { 8 | 9 | override fun onCreate() { 10 | super.onCreate() 11 | 12 | // Setup MapboxNavigation 13 | MapboxNavigationApp.setup( 14 | NavigationOptions.Builder(applicationContext) 15 | .accessToken(getString(R.string.mapbox_access_token)) 16 | .build() 17 | ).attachAllActivities(this) 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /gradle/ktlint.gradle: -------------------------------------------------------------------------------- 1 | configurations { 2 | ktlint 3 | } 4 | 5 | dependencies { 6 | ktlint "com.pinterest:ktlint:0.47.1" 7 | } 8 | 9 | def inputFiles = project.fileTree(dir: "src", include: "**/*.kt") 10 | 11 | task ktlint(type: JavaExec, group: "verification") { 12 | inputs.files(inputFiles) 13 | 14 | description = "Check Kotlin code style." 15 | main = "com.pinterest.ktlint.Main" 16 | classpath = configurations.ktlint 17 | args "src/**/*.kt" 18 | } 19 | check.dependsOn ktlint 20 | 21 | task ktlintFormat(type: JavaExec, group: "formatting") { 22 | description = "Fix Kotlin code style deviations." 23 | main = "com.pinterest.ktlint.Main" 24 | classpath = configurations.ktlint 25 | args "-F", "src/**/*.kt" 26 | } -------------------------------------------------------------------------------- /feedback-agent-app/src/main/kotlin/com/mapbox/navigation/examples/feedbackagent/voicefeedback/VoiceFeedbackViewState.kt: -------------------------------------------------------------------------------- 1 | package com.mapbox.navigation.examples.feedbackagent.voicefeedback 2 | 3 | internal data class VoiceFeedbackViewState( 4 | val state: String = "Disconnected", 5 | val connectionAvailable: Boolean = true, 6 | val disconnectionAvailable: Boolean = false, 7 | val startListeningAvailable: Boolean = false, 8 | val stopListeningAvailable: Boolean = false, 9 | val showSuccessMessage: Boolean = false, 10 | val successMessage: String = "", 11 | val errorState: ErrorState? = null, 12 | ) { 13 | 14 | data class ErrorState( 15 | val message: String, 16 | val isRetryable: Boolean = true, 17 | ) 18 | } 19 | -------------------------------------------------------------------------------- /android-auto-app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /app-preview/src/main/java/com/mapbox/navigation/examples/preview/copilot/res/drawable/ic_wrong_location.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /app-preview/src/main/java/com/mapbox/navigation/examples/preview/copilot/res/drawable/ic_route.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app-preview/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/location/res/layout/mapbox_activity_user_current_location.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 15 | -------------------------------------------------------------------------------- /android-auto-app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /android-automotive-app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /app-preview/src/main/java/com/mapbox/navigation/examples/preview/copilot/res/drawable/ic_search.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/isochrone/res/layout/activity_isochrone_range_preview.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/replay/res/layout/history_files_header.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/callout/res/drawable/arrow_straight.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 9 | 12 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /android-auto-app/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16 | -------------------------------------------------------------------------------- /android-auto-app/src/main/res/values-night/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16 | -------------------------------------------------------------------------------- /app-preview/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 23 | 24 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/replay/HistoryFilesDirectory.kt: -------------------------------------------------------------------------------- 1 | package com.mapbox.navigation.examples.standalone.replay 2 | 3 | import android.content.Context 4 | import com.mapbox.navigation.core.history.MapboxHistoryReader 5 | import java.io.File 6 | 7 | private const val DIRECTORY_NAME = "replay" 8 | 9 | /** 10 | * Helper class that designates a directory for replay. The files in this 11 | * directory are then used with the [MapboxHistoryReader]. 12 | */ 13 | object HistoryFilesDirectory { 14 | /** 15 | * The directory where the replay files are stored. 16 | */ 17 | private fun replayDirectory(context: Context): File = 18 | File(context.filesDir, DIRECTORY_NAME).also { it.mkdirs() } 19 | 20 | /** 21 | * Returns a file in the [replayDirectory] where a history file can be written. 22 | */ 23 | fun outputFile(context: Context, path: String): File = 24 | File(replayDirectory(context), path) 25 | } 26 | -------------------------------------------------------------------------------- /app-preview/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 20 | 21 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/res/layout/activity_standalone.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 19 | 20 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/custompuck/res/drawable/puck_icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 11 | 14 | 17 | -------------------------------------------------------------------------------- /feedback-agent-app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 13 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /android-auto-app/src/main/java/com/mapbox/navigation/examples/androidauto/app/MainActivity.kt: -------------------------------------------------------------------------------- 1 | 2 | package com.mapbox.navigation.examples.androidauto.app 3 | 4 | import android.os.Bundle 5 | import androidx.appcompat.app.AppCompatActivity 6 | import com.mapbox.navigation.examples.androidauto.CarAppSyncComponent 7 | import com.mapbox.navigation.examples.androidauto.databinding.MapboxActivityNavigationViewBinding 8 | 9 | class MainActivity : AppCompatActivity() { 10 | private lateinit var binding: MapboxActivityNavigationViewBinding 11 | 12 | override fun onCreate(savedInstanceState: Bundle?) { 13 | super.onCreate(savedInstanceState) 14 | binding = MapboxActivityNavigationViewBinding.inflate(layoutInflater) 15 | setContentView(binding.root) 16 | 17 | // TODO going to expose a public api to share a replay controller 18 | // This allows to simulate your location 19 | // binding.navigationView.api.routeReplayEnabled(true) 20 | 21 | CarAppSyncComponent.getInstance().setNavigationView(binding.navigationView) 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/replay/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Replay Example 4 | Demonstrates the use of replay API. 5 | Replay speed %d 6 | Play history 7 | Select history 8 | Paused 9 | History failed to load item 10 | Failed to load list 11 | Local history file 12 | Replay directory 13 | Recorded history file 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/values/styles_status.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 15 | 16 | 23 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/callout/res/layout/item_dva_eta.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /feedback-agent-app/src/main/kotlin/com/mapbox/navigation/examples/feedbackagent/MainViewModel.kt: -------------------------------------------------------------------------------- 1 | package com.mapbox.navigation.examples.feedbackagent 2 | 3 | import android.app.Application 4 | import androidx.lifecycle.AndroidViewModel 5 | import com.mapbox.navigation.base.ExperimentalPreviewMapboxNavigationAPI 6 | import com.mapbox.navigation.mapgpt.core.common.SharedLog 7 | import kotlinx.coroutines.flow.MutableStateFlow 8 | import kotlinx.coroutines.flow.asStateFlow 9 | import kotlinx.coroutines.flow.update 10 | 11 | @OptIn(ExperimentalPreviewMapboxNavigationAPI::class) 12 | internal class MainViewModel(application: Application) : AndroidViewModel(application) { 13 | 14 | private val _state = MutableStateFlow(AppState()) 15 | val state = _state.asStateFlow() 16 | 17 | fun onPermissionsGranted(granted: Boolean) { 18 | SharedLog.i(TAG) { "onPermissionsGranted $granted" } 19 | _state.update { it.copy(permissionsGranted = granted) } 20 | } 21 | 22 | companion object { 23 | private const val TAG = "MainViewModel" 24 | } 25 | } 26 | 27 | @OptIn(ExperimentalPreviewMapboxNavigationAPI::class) 28 | data class AppState( 29 | val permissionsGranted: Boolean = false, 30 | ) 31 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | # IDE (e.g. Android Studio) users: 3 | # Gradle settings configured through the IDE *will override* 4 | # any settings specified in this file. 5 | # For more details on how to configure your build environment visit 6 | # http://www.gradle.org/docs/current/userguide/build_environment.html 7 | # Specifies the JVM arguments used for the daemon process. 8 | # The setting is particularly useful for tweaking memory settings. 9 | org.gradle.jvmargs=-Xmx2048m 10 | # When configured, Gradle will run in incubating parallel mode. 11 | # This option should only be used with decoupled projects. More details, visit 12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 13 | # org.gradle.parallel=true 14 | # AndroidX package structure to make it clearer which packages are bundled with the 15 | # Android operating system, and which are packaged with your app"s APK 16 | # https://developer.android.com/topic/libraries/support-library/androidx-rn 17 | android.useAndroidX=true 18 | # Automatically convert third-party libraries to use AndroidX 19 | android.enableJetifier=true 20 | # Kotlin code style for this project: "official" or "obsolete": 21 | kotlin.code.style=official -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/status/res/layout/mapbox_activity_show_status.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 17 | 18 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/replay/res/layout/history_files_list_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 15 | 16 | 22 | 23 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /android-automotive-app/src/main/java/com/mapbox/navigation/examples/aaos/car/CarLocationPermissions.kt: -------------------------------------------------------------------------------- 1 | package com.mapbox.navigation.examples.aaos.car 2 | 3 | import android.Manifest 4 | import android.util.Log 5 | import androidx.car.app.CarContext 6 | import com.mapbox.android.core.permissions.PermissionsManager 7 | import kotlinx.coroutines.flow.MutableStateFlow 8 | import kotlinx.coroutines.flow.asStateFlow 9 | 10 | class CarLocationPermissions { 11 | 12 | private val locationPermissions = listOf( 13 | Manifest.permission.ACCESS_COARSE_LOCATION, 14 | Manifest.permission.ACCESS_FINE_LOCATION 15 | ) 16 | 17 | private val _grantedState = MutableStateFlow(false) 18 | val grantedState = _grantedState.asStateFlow() 19 | 20 | fun requestPermissions(carContext: CarContext) { 21 | if (PermissionsManager.areLocationPermissionsGranted(carContext)) { 22 | Log.i("CarLocationPermissions", "Permissions already granted") 23 | _grantedState.value = true 24 | } else { 25 | Log.i("CarLocationPermissions", "Requesting permissions") 26 | carContext.requestPermissions(locationPermissions) { grantedPermissions, _ -> 27 | if (locationPermissions.any { grantedPermissions.contains(it) }) { 28 | _grantedState.value = true 29 | } 30 | } 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/alternative/res/layout/activity_show_alternative_routes.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 16 | 17 | 28 | 29 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/status/res/layout/mapbox_activity_show_custom_status.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 17 | 18 | 29 | 30 | -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 12 | 16 | 17 | 21 | 22 | 29 | 30 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/callout/res/layout/activity_route_callout.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 16 | 17 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /android-automotive-app/README.md: -------------------------------------------------------------------------------- 1 | # Mapbox Navigation Android-Auto SDK Examples 2 | 3 | The android-automotive-app showcases the minimum integration needed to support the android-automotive in your application. 4 | 5 |
6 | 7 |
8 | 9 | ## Installation 10 | 11 | 1. Change "Configuration" of "android-automotive-app". "Launch Options - Launch" should be "Nothing" 12 | 1. Update or create the "mapbox_access_token.xml" under "android-auto-app/src/main/res/values" and put below 13 | 14 | 15 | PUBLIC TOKEN HERE 16 | 17 | 1. Establish Android Automotive developer environment by following [Google's document](https://developer.android.com/training/cars/testing#test-automotive-os) 18 | 1. Run "android-automotive-app" which installs the app onto the Automotive emulator 19 | 20 | ## Enable route replay (AUTO_DRIVE) 21 | 22 | When testing Android Auto, it is easy to simulate a route instead of using mock locations. Follow these instructions, to enable route replay. 23 | https://docs.mapbox.com/android/navigation/guides/developer-tools/route-replay/ 24 | 25 | ``` 26 | 2. Open your navigation app 27 | 3. $ adb shell dumpsys activity service com.mapbox.navigation.examples.aaos.car.MainCarAppService AUTO_DRIVE 28 | ``` 29 | -------------------------------------------------------------------------------- /android-automotive-app/src/main/java/com/mapbox/navigation/examples/aaos/ExamplePermissionScreen.kt: -------------------------------------------------------------------------------- 1 | package com.mapbox.navigation.examples.aaos 2 | 3 | import android.util.Log 4 | import androidx.car.app.CarContext 5 | import androidx.car.app.Screen 6 | import androidx.car.app.model.Action 7 | import androidx.car.app.model.MessageTemplate 8 | import androidx.car.app.model.Template 9 | import com.mapbox.navigation.examples.aaos.car.CarLocationPermissions 10 | 11 | internal class ExamplePermissionScreen( 12 | carContext: CarContext, 13 | private val carLocationPermissions: CarLocationPermissions, 14 | ) : Screen(carContext) { 15 | override fun onGetTemplate(): Template { 16 | Log.i(TAG, "Request permissions onGetTemplate") 17 | return MessageTemplate.Builder( 18 | carContext.getString(R.string.example_permission_screen_message) 19 | ).setTitle( 20 | carContext.getString(R.string.example_permission_screen_title) 21 | ).addAction( 22 | Action.Builder() 23 | .setTitle(carContext.getString(com.mapbox.androidauto.R.string.car_label_ok)) 24 | .setOnClickListener { 25 | Log.i(TAG, "Request permissions click") 26 | carLocationPermissions.requestPermissions(carContext) 27 | } 28 | .build() 29 | ).build() 30 | } 31 | 32 | private companion object { 33 | private const val TAG = "ExamplePermissionScreen" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/arrival/res/layout/mapbox_activity_custom_arrival.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 15 | 16 | 32 | 33 | -------------------------------------------------------------------------------- /android-auto-app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 12 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 25 | 26 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /feedback-agent-app/src/main/kotlin/com/mapbox/navigation/examples/feedbackagent/FeedbackAgentPermissions.kt: -------------------------------------------------------------------------------- 1 | package com.mapbox.navigation.examples.feedbackagent 2 | 3 | import androidx.activity.ComponentActivity 4 | import androidx.activity.result.ActivityResultLauncher 5 | import androidx.activity.result.contract.ActivityResultContracts 6 | import androidx.core.content.ContextCompat 7 | 8 | class FeedbackAgentPermissions( 9 | private val componentActivity: ComponentActivity, 10 | private val onPermissionsResult: (Boolean) -> Unit, 11 | ) { 12 | 13 | private val requiredPermissions = arrayOf( 14 | android.Manifest.permission.RECORD_AUDIO, 15 | android.Manifest.permission.ACCESS_FINE_LOCATION, 16 | ) 17 | 18 | private val permissionLauncher: ActivityResultLauncher> = 19 | componentActivity.registerForActivityResult( 20 | ActivityResultContracts.RequestMultiplePermissions(), 21 | ) { permissions -> 22 | val granted = permissions.entries.all { it.value } 23 | onPermissionsResult(granted) 24 | } 25 | 26 | fun requestPermissions() { 27 | val notGranted = requiredPermissions.filter { 28 | val selfPermission = ContextCompat.checkSelfPermission(componentActivity, it) 29 | selfPermission != android.content.pm.PackageManager.PERMISSION_GRANTED 30 | } 31 | 32 | if (notGranted.isNotEmpty()) { 33 | permissionLauncher.launch(notGranted.toTypedArray()) 34 | } else { 35 | // all permissions already granted 36 | onPermissionsResult(true) 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /feedback-agent-app/README.md: -------------------------------------------------------------------------------- 1 | # Feedback Agent App 2 | 3 | This module demonstrates the Mapbox Navigation SDK's voice feedback capabilities. It provides a simple interface for users to provide voice feedback during navigation sessions. 4 | 5 | ## Features 6 | 7 | - Voice feedback recording and processing 8 | - Real-time speech recognition display 9 | - Feedback submission to Mapbox Navigation SDK 10 | - Clean Material 3 UI with Jetpack Compose 11 | 12 | ## Usage 13 | 14 | 1. Tap "Connect" to establish connection with the voice feedback service 15 | 2. Tap "Start Listening" to begin voice input 16 | 3. Speak your feedback 17 | 4. Tap "Stop Listening" to end recording and submit feedback 18 | 5. View feedback submission results 19 | 20 | ## Architecture 21 | 22 | The app follows a MVVM architecture pattern with: 23 | 24 | - `VoiceFeedbackView` - Compose UI for the feedback interface 25 | - `VoiceFeedbackViewModel` - Business logic and state management 26 | - `AutomaticSpeechRecognitionEngine` - ASR integration layer 27 | - Domain models for speech recognition states and feedback DTOs 28 | 29 | ## Dependencies 30 | 31 | - Mapbox Navigation SDK v3.11.0 32 | - Jetpack Compose for UI 33 | - Kotlin Coroutines for async operations 34 | - Android microphone middleware for audio capture 35 | 36 | ## Permissions 37 | 38 | The app requires microphone permissions to capture voice feedback. The app will prompt for permissions on first launch. 39 | 40 | ## Technical Implementation 41 | 42 | - Uses MapGPT experimental APIs for speech recognition infrastructure 43 | - AudioLiteMicrophoneMiddleware for microphone access 44 | - Integration with Mapbox Navigation SDK telemetry for feedback submission -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/MapboxExamplesAdapter.kt: -------------------------------------------------------------------------------- 1 | package com.mapbox.navigation.examples 2 | 3 | import android.view.LayoutInflater 4 | import android.view.ViewGroup 5 | import androidx.recyclerview.widget.RecyclerView 6 | import com.mapbox.navigation.examples.databinding.MapboxItemViewRecyclerBinding 7 | 8 | class MapboxExamplesAdapter( 9 | private val examplesList: List, 10 | private val itemClickLambda: (position: Int) -> Unit 11 | ) : RecyclerView.Adapter() { 12 | 13 | override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MapboxExamplesViewHolder { 14 | val binding = MapboxItemViewRecyclerBinding.inflate( 15 | LayoutInflater.from(parent.context), parent, false 16 | ) 17 | return MapboxExamplesViewHolder(binding) 18 | } 19 | 20 | override fun getItemCount(): Int = examplesList.size 21 | 22 | override fun onBindViewHolder(holder: MapboxExamplesViewHolder, position: Int) { 23 | with(holder) { bindItem(examplesList[position]) } 24 | } 25 | 26 | inner class MapboxExamplesViewHolder( 27 | private val viewBinding: MapboxItemViewRecyclerBinding 28 | ) : RecyclerView.ViewHolder(viewBinding.root) { 29 | fun bindItem(example: MapboxExample) { 30 | viewBinding.itemImage.setImageDrawable(example.image) 31 | viewBinding.itemTitle.text = example.title 32 | viewBinding.itemDescription.text = example.description 33 | 34 | viewBinding.root.setOnClickListener { 35 | itemClickLambda(layoutPosition) 36 | } 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/building/res/layout/mapbox_activity_building_extrusions.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 16 | 17 | 34 | 35 | -------------------------------------------------------------------------------- /app-preview/src/main/java/com/mapbox/navigation/examples/preview/MapboxExamplesAdapter.kt: -------------------------------------------------------------------------------- 1 | package com.mapbox.navigation.examples.preview 2 | 3 | import android.view.LayoutInflater 4 | import android.view.ViewGroup 5 | import androidx.recyclerview.widget.RecyclerView 6 | import com.mapbox.navigation.examples.preview.databinding.MapboxItemViewRecyclerBinding 7 | 8 | class MapboxExamplesAdapter( 9 | private val examplesList: List, 10 | private val itemClickLambda: (position: Int) -> Unit 11 | ) : RecyclerView.Adapter() { 12 | 13 | override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MapboxExamplesViewHolder { 14 | val binding = MapboxItemViewRecyclerBinding.inflate( 15 | LayoutInflater.from(parent.context), parent, false 16 | ) 17 | return MapboxExamplesViewHolder(binding) 18 | } 19 | 20 | override fun getItemCount(): Int = examplesList.size 21 | 22 | override fun onBindViewHolder(holder: MapboxExamplesViewHolder, position: Int) { 23 | with(holder) { bindItem(examplesList[position]) } 24 | } 25 | 26 | inner class MapboxExamplesViewHolder( 27 | private val viewBinding: MapboxItemViewRecyclerBinding 28 | ) : RecyclerView.ViewHolder(viewBinding.root) { 29 | fun bindItem(example: MapboxExample) { 30 | viewBinding.itemImage.setImageDrawable(example.image) 31 | viewBinding.itemTitle.text = example.title 32 | viewBinding.itemDescription.text = example.description 33 | 34 | viewBinding.root.setOnClickListener { 35 | itemClickLambda(layoutPosition) 36 | } 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /android-auto-app/README.md: -------------------------------------------------------------------------------- 1 | # Mapbox Navigation Android-Auto SDK Examples 2 | 3 | The android-auto-app showcases the minimum integration needed to support the android-auto module in your application, it's a portable example that can be copied into your app. See instructions for integrating below. 4 | 5 |
6 | 7 |
8 | 9 | ## Installation 10 | 11 | 1. Change "Configuration" of "android-auto-app". "Launch Options - Launch" should be "Nothing" 12 | 1. Update or create the "mapbox_access_token.xml" under "android-auto-app/src/main/res/values" and put below 13 | 14 | 15 | PUBLIC TOKEN HERE 16 | 17 | 1. Establish Android Auto environment by following [Google's document](https://developer.android.com/training/cars/testing) or [Readme](https://github.com/mapbox/mapbox-navigation-android-examples/blob/main/android-auto/README.md) 18 | 1. Run "android-auto-app" which installs the app on your device 19 | 1. Run the app on "Desktop Head Unit" 20 | 21 | ## Enable route replay (AUTO_DRIVE) 22 | 23 | When testing Android Auto, it is easy to simulate a route instead of using mock locations. Follow these instructions, to enable route replay. 24 | https://docs.mapbox.com/android/navigation/guides/developer-tools/route-replay/ 25 | 26 | ``` 27 | 1. Start the desktop head unit 28 | 2. Open your navigation app 29 | 3. $ adb shell dumpsys activity service com.mapbox.navigation.examples.androidauto.car.MainCarAppService AUTO_DRIVE 30 | ``` 31 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 15 | 18 | 21 | 22 | 23 | 24 | 30 | -------------------------------------------------------------------------------- /app-preview/src/main/res/drawable-v24/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 15 | 18 | 21 | 22 | 23 | 24 | 30 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/callout/BitmapUtils.kt: -------------------------------------------------------------------------------- 1 | package com.mapbox.navigation.examples.standalone.callout 2 | 3 | import android.graphics.Bitmap 4 | import android.graphics.Canvas 5 | import android.graphics.drawable.BitmapDrawable 6 | import android.graphics.drawable.Drawable 7 | import androidx.annotation.ColorInt 8 | 9 | /** 10 | * Utility class to work with bitmaps and drawables. 11 | */ 12 | object BitmapUtils { 13 | 14 | fun drawableToBitmap( 15 | sourceDrawable: Drawable?, 16 | flipX: Boolean = false, 17 | flipY: Boolean = false, 18 | @ColorInt tint: Int? = null, 19 | ): Bitmap? { 20 | if (sourceDrawable == null) { 21 | return null 22 | } 23 | return if (sourceDrawable is BitmapDrawable) { 24 | sourceDrawable.bitmap 25 | } else { 26 | // copying drawable object to not manipulate on the same reference 27 | val constantState = sourceDrawable.constantState ?: return null 28 | val drawable = constantState.newDrawable().mutate() 29 | val bitmap = Bitmap.createBitmap( 30 | drawable.intrinsicWidth, drawable.intrinsicHeight, 31 | Bitmap.Config.ARGB_8888 32 | ) 33 | tint?.let(drawable::setTint) 34 | val canvas = Canvas(bitmap) 35 | drawable.setBounds(0, 0, canvas.width, canvas.height) 36 | canvas.scale( 37 | if (flipX) -1f else 1f, 38 | if (flipY) -1f else 1f, 39 | canvas.width / 2f, 40 | canvas.height / 2f 41 | ) 42 | drawable.draw(canvas) 43 | bitmap 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /app/src/main/java/com/mapbox/navigation/examples/standalone/preview/res/layout/activity_preview.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 17 | 18 |