Skip to content

Commit

Permalink
Add drop in ui
Browse files Browse the repository at this point in the history
  • Loading branch information
kmadsen committed Aug 12, 2022
1 parent 3c36847 commit 6232549
Show file tree
Hide file tree
Showing 23 changed files with 203 additions and 1,287 deletions.
4 changes: 2 additions & 2 deletions android-auto-app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,6 @@ dependencies {
implementation "androidx.fragment:fragment-ktx:1.4.1"

// Mapbox Navigation Android Auto SDK Developer Preview
implementation("com.mapbox.navigation:ui-androidauto:0.1.0")
implementation("com.mapbox.search:mapbox-search-android-ui:1.0.0-beta.26")
implementation("com.mapbox.navigation:ui-androidauto:0.6.0")
implementation("com.mapbox.navigation:ui-dropin:2.7.0-rc.1")
}
2 changes: 1 addition & 1 deletion android-auto-app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
android:supportsRtl="true"
android:theme="@style/Theme.MapboxNavigationExamples">
<activity
android:name=".MainActivity"
android:name=".app.MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,17 @@
package com.mapbox.navigation.examples.androidauto

import android.app.Application
import com.mapbox.android.core.location.LocationEngineProvider
import com.mapbox.androidauto.MapboxCarApp
import com.mapbox.navigation.base.ExperimentalPreviewMapboxNavigationAPI
import com.mapbox.navigation.base.options.NavigationOptions
import com.mapbox.navigation.core.lifecycle.MapboxNavigationApp
import com.mapbox.search.MapboxSearchSdk

@OptIn(ExperimentalPreviewMapboxNavigationAPI::class)
class ExampleApplication : Application() {

override fun onCreate() {
super.onCreate()

initializeSearchSDK()

// Setup MapboxNavigation
MapboxNavigationApp.setup(
NavigationOptions.Builder(applicationContext)
Expand All @@ -26,13 +22,4 @@ class ExampleApplication : Application() {
// Setup android auto
MapboxCarApp.setup(this)
}

private fun initializeSearchSDK() {
val locationEngine = LocationEngineProvider.getBestLocationEngine(applicationContext)
MapboxSearchSdk.initialize(
this,
getString(R.string.mapbox_access_token),
locationEngine
)
}
}

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package com.mapbox.navigation.examples.androidauto.app

import com.mapbox.androidauto.ActiveGuidanceState
import com.mapbox.androidauto.ArrivalState
import com.mapbox.androidauto.FreeDriveState
import com.mapbox.androidauto.MapboxCarApp
import com.mapbox.androidauto.RoutePreviewState
import com.mapbox.navigation.base.ExperimentalPreviewMapboxNavigationAPI
import com.mapbox.navigation.core.MapboxNavigation
import com.mapbox.navigation.dropin.NavigationView
import com.mapbox.navigation.dropin.NavigationViewListener
import com.mapbox.navigation.ui.base.lifecycle.UIComponent

/**
* This is a temporarily solution for syncing two new libraries, Drop-in-ui and the Mapbox AA.
*
* The libraries are defining public apis so that there can be options to determine the experience
* while both the car and phone are displayed.
*/
@OptIn(ExperimentalPreviewMapboxNavigationAPI::class)
class CarAppSyncComponent(
private val navigationView: NavigationView
) : UIComponent() {

private val appListener = object : NavigationViewListener() {
override fun onFreeDrive() {
MapboxCarApp.updateCarAppState(FreeDriveState)
}

override fun onDestinationPreview() {
MapboxCarApp.updateCarAppState(FreeDriveState)
}

override fun onRoutePreview() {
MapboxCarApp.updateCarAppState(RoutePreviewState)
}

override fun onActiveNavigation() {
MapboxCarApp.updateCarAppState(ActiveGuidanceState)
}

override fun onArrival() {
MapboxCarApp.updateCarAppState(ArrivalState)
}
}

override fun onAttached(mapboxNavigation: MapboxNavigation) {
super.onAttached(mapboxNavigation)
navigationView.addListener(appListener)
}

override fun onDetached(mapboxNavigation: MapboxNavigation) {
super.onDetached(mapboxNavigation)
navigationView.removeListener(appListener)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@

package com.mapbox.navigation.examples.androidauto.app

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.mapbox.navigation.base.ExperimentalPreviewMapboxNavigationAPI
import com.mapbox.navigation.core.internal.extensions.attachStarted
import com.mapbox.navigation.examples.androidauto.databinding.MapboxActivityNavigationViewBinding

@OptIn(ExperimentalPreviewMapboxNavigationAPI::class)
class MainActivity : AppCompatActivity() {
private lateinit var binding: MapboxActivityNavigationViewBinding

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = MapboxActivityNavigationViewBinding.inflate(layoutInflater)
setContentView(binding.root)

// This allows to simulate your location
binding.navigationView.api.enableReplaySession()

attachStarted(CarAppSyncComponent(binding.navigationView))
}
}
Loading

0 comments on commit 6232549

Please sign in to comment.