Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,8 @@ allprojects {
// we allow access to snapshots repo if ALLOW_SNAPSHOT_REPOSITORY is set, what means we are running on CI
// with Navigation Native forced to be some snapshot version
// if you need to use snapshots while development, just set `addSnapshotsRepo` to true manually
def addSnapshotsRepo = project.hasProperty('ALLOW_SNAPSHOT_REPOSITORY') ? project.property('ALLOW_SNAPSHOT_REPOSITORY') : (System.getenv("ALLOW_SNAPSHOT_REPOSITORY")?.toBoolean() ?: false)
// def addSnapshotsRepo = project.hasProperty('ALLOW_SNAPSHOT_REPOSITORY') ? project.property('ALLOW_SNAPSHOT_REPOSITORY') : (System.getenv("ALLOW_SNAPSHOT_REPOSITORY")?.toBoolean() ?: false)
def addSnapshotsRepo = true
if (addSnapshotsRepo) {
println("Snapshot repository reference added.")
maven {
Expand Down
2 changes: 1 addition & 1 deletion gradle/dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ ext {
mapboxCrashMonitor : '2.0.0',
mapboxAnnotationPlugin : '0.8.0',
mapboxBaseAndroid : '0.8.0',
mapboxMapsAndroidAuto : '0.2.0',
mapboxMapsAndroidAuto : '0.3.0-SNAPSHOT',
androidXLifecycle : '2.4.0',
androidXCoreVersion : '1.6.0',
androidXArchCoreVersion : '2.1.0',
Expand Down
1 change: 1 addition & 0 deletions libnavui-androidauto/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ Mapbox welcomes participation and contributions from everyone.
## Unreleased
#### Features
#### Bug fixes and improvements
- Integrate `MapboxCarMapSessionInstaller` and `MapboxCarMapScreenInstaller`. [#6211](https://github.com/mapbox/mapbox-navigation-android/pull/6211)

## androidauto-v0.8.0 - Aug 18, 2022
### Changelog
Expand Down
24 changes: 0 additions & 24 deletions libnavui-androidauto/api/current.txt
Original file line number Diff line number Diff line change
Expand Up @@ -76,15 +76,7 @@ package com.mapbox.androidauto.car {

public final class MainCarScreen extends androidx.car.app.Screen {
ctor public MainCarScreen(com.mapbox.androidauto.car.MainCarContext mainCarContext);
method public com.mapbox.androidauto.car.location.CarLocationRenderer getCarLocationRenderer();
method public com.mapbox.androidauto.car.navigation.CarNavigationCamera getCarNavigationCamera();
method public com.mapbox.androidauto.car.preview.CarRouteLine getCarRouteLine();
method public com.mapbox.androidauto.car.navigation.speedlimit.CarSpeedLimitRenderer getCarSpeedLimitRenderer();
method public androidx.car.app.model.Template onGetTemplate();
property public final com.mapbox.androidauto.car.location.CarLocationRenderer carLocationRenderer;
property public final com.mapbox.androidauto.car.navigation.CarNavigationCamera carNavigationCamera;
property public final com.mapbox.androidauto.car.preview.CarRouteLine carRouteLine;
property public final com.mapbox.androidauto.car.navigation.speedlimit.CarSpeedLimitRenderer carSpeedLimitRenderer;
}

public final class MainMapActionStrip {
Expand Down Expand Up @@ -287,15 +279,7 @@ package com.mapbox.androidauto.car.navigation {

public final class ActiveGuidanceScreen extends androidx.car.app.Screen {
ctor public ActiveGuidanceScreen(com.mapbox.androidauto.car.navigation.CarActiveGuidanceCarContext carActiveGuidanceContext, java.util.List<? extends com.mapbox.androidauto.car.action.MapboxActionProvider> actionProviders, com.mapbox.androidauto.car.placeslistonmap.PlacesListOnMapLayerUtil placesLayerUtil = com.mapbox.androidauto.car.placeslistonmap.PlacesListOnMapLayerUtil());
method public com.mapbox.androidauto.car.location.CarLocationRenderer getCarLocationRenderer();
method public com.mapbox.androidauto.car.navigation.CarNavigationCamera getCarNavigationCamera();
method public com.mapbox.androidauto.car.preview.CarRouteLine getCarRouteLine();
method public com.mapbox.androidauto.car.navigation.speedlimit.CarSpeedLimitRenderer getCarSpeedLimitRenderer();
method public androidx.car.app.model.Template onGetTemplate();
property public final com.mapbox.androidauto.car.location.CarLocationRenderer carLocationRenderer;
property public final com.mapbox.androidauto.car.navigation.CarNavigationCamera carNavigationCamera;
property public final com.mapbox.androidauto.car.preview.CarRouteLine carRouteLine;
property public final com.mapbox.androidauto.car.navigation.speedlimit.CarSpeedLimitRenderer carSpeedLimitRenderer;
}

public final class CarActiveGuidanceCarContext {
Expand Down Expand Up @@ -629,17 +613,9 @@ package com.mapbox.androidauto.car.preview {

@com.mapbox.maps.MapboxExperimental public final class CarRoutePreviewScreen extends androidx.car.app.Screen {
ctor public CarRoutePreviewScreen(com.mapbox.androidauto.car.preview.RoutePreviewCarContext routePreviewCarContext, com.mapbox.androidauto.car.search.PlaceRecord placeRecord, java.util.List<com.mapbox.navigation.base.route.NavigationRoute> navigationRoutes, com.mapbox.androidauto.car.placeslistonmap.PlacesListOnMapLayerUtil placesLayerUtil = com.mapbox.androidauto.car.placeslistonmap.PlacesListOnMapLayerUtil());
method public com.mapbox.androidauto.car.location.CarLocationRenderer getCarLocationRenderer();
method public com.mapbox.androidauto.car.navigation.CarNavigationCamera getCarNavigationCamera();
method public com.mapbox.androidauto.car.preview.CarRouteLine getCarRouteLine();
method public com.mapbox.androidauto.car.navigation.speedlimit.CarSpeedLimitRenderer getCarSpeedLimitRenderer();
method public int getSelectedIndex();
method public androidx.car.app.model.Template onGetTemplate();
method public void setSelectedIndex(int);
property public final com.mapbox.androidauto.car.location.CarLocationRenderer carLocationRenderer;
property public final com.mapbox.androidauto.car.navigation.CarNavigationCamera carNavigationCamera;
property public final com.mapbox.androidauto.car.preview.CarRouteLine carRouteLine;
property public final com.mapbox.androidauto.car.navigation.speedlimit.CarSpeedLimitRenderer carSpeedLimitRenderer;
property public final int selectedIndex;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@ import androidx.car.app.Screen
import androidx.car.app.model.CarColor
import androidx.car.app.model.Template
import androidx.car.app.navigation.model.NavigationTemplate
import androidx.lifecycle.DefaultLifecycleObserver
import androidx.lifecycle.LifecycleOwner
import com.mapbox.androidauto.car.location.CarLocationRenderer
import com.mapbox.androidauto.car.navigation.CarCameraMode
import com.mapbox.androidauto.car.navigation.CarNavigationCamera
Expand All @@ -14,54 +12,37 @@ import com.mapbox.androidauto.car.navigation.speedlimit.CarSpeedLimitRenderer
import com.mapbox.androidauto.car.preview.CarRouteLine
import com.mapbox.androidauto.internal.logAndroidAuto
import com.mapbox.maps.MapboxExperimental
import com.mapbox.maps.extension.androidauto.mapboxMapInstaller

/**
* When the app is launched from Android Auto
*/
@OptIn(MapboxExperimental::class)
class MainCarScreen(
private val mainCarContext: MainCarContext
mainCarContext: MainCarContext
) : Screen(mainCarContext.carContext) {

val carRouteLine = CarRouteLine(mainCarContext)
val carLocationRenderer = CarLocationRenderer(mainCarContext)
val carSpeedLimitRenderer = CarSpeedLimitRenderer(mainCarContext)
val carNavigationCamera = CarNavigationCamera(
private val carNavigationCamera = CarNavigationCamera(
mainCarContext.mapboxNavigation,
CarCameraMode.FOLLOWING,
alternativeCarCameraMode = null,
)
private val roadLabelSurfaceLayer = RoadLabelSurfaceLayer(
mainCarContext.carContext,
mainCarContext.mapboxNavigation,
)

private val mainActionStrip = MainActionStrip(this, mainCarContext)
private val mapActionStripBuilder = MainMapActionStrip(this, carNavigationCamera)

init {
logAndroidAuto("MainCarScreen constructor")
lifecycle.addObserver(object : DefaultLifecycleObserver {
override fun onResume(owner: LifecycleOwner) {
logAndroidAuto("MainCarScreen onResume")
mainCarContext.mapboxCarMap.registerObserver(carRouteLine)
mainCarContext.mapboxCarMap.registerObserver(carLocationRenderer)
mainCarContext.mapboxCarMap.registerObserver(roadLabelSurfaceLayer)
mainCarContext.mapboxCarMap.registerObserver(carSpeedLimitRenderer)
mainCarContext.mapboxCarMap.registerObserver(carNavigationCamera)
mainCarContext.mapboxCarMap.setGestureHandler(carNavigationCamera.gestureHandler)
}

override fun onPause(owner: LifecycleOwner) {
logAndroidAuto("MainCarScreen onPause")
mainCarContext.mapboxCarMap.unregisterObserver(carRouteLine)
mainCarContext.mapboxCarMap.unregisterObserver(carLocationRenderer)
mainCarContext.mapboxCarMap.unregisterObserver(roadLabelSurfaceLayer)
mainCarContext.mapboxCarMap.unregisterObserver(carSpeedLimitRenderer)
mainCarContext.mapboxCarMap.unregisterObserver(carNavigationCamera)
mainCarContext.mapboxCarMap.setGestureHandler(null)
}
})
mapboxMapInstaller(mainCarContext.mapboxCarMap)
.onResumed(
CarRouteLine(mainCarContext),
CarLocationRenderer(mainCarContext),
RoadLabelSurfaceLayer(carContext, mainCarContext.mapboxNavigation),
CarSpeedLimitRenderer(mainCarContext),
carNavigationCamera,
)
.gestureHandler(carNavigationCamera.gestureHandler)
.install()
}

override fun onGetTemplate(): Template {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import com.mapbox.geojson.FeatureCollection
import com.mapbox.maps.MapboxExperimental
import com.mapbox.maps.extension.androidauto.MapboxCarMapObserver
import com.mapbox.maps.extension.androidauto.MapboxCarMapSurface
import com.mapbox.maps.extension.androidauto.mapboxMapInstaller
import com.mapbox.maps.plugin.delegates.listeners.OnStyleLoadedListener
import com.mapbox.navigation.base.trip.model.RouteLegProgress
import com.mapbox.navigation.base.trip.model.RouteProgress
Expand All @@ -44,20 +45,12 @@ class ActiveGuidanceScreen(
private val placesLayerUtil: PlacesListOnMapLayerUtil = PlacesListOnMapLayerUtil(),
) : Screen(carActiveGuidanceContext.carContext) {

val carRouteLine = CarRouteLine(carActiveGuidanceContext.mainCarContext)
val carLocationRenderer = CarLocationRenderer(carActiveGuidanceContext.mainCarContext)
val carSpeedLimitRenderer = CarSpeedLimitRenderer(carActiveGuidanceContext.mainCarContext)
val carNavigationCamera = CarNavigationCamera(
private val carRouteProgressObserver = CarNavigationInfoObserver(carActiveGuidanceContext)
private val carNavigationCamera = CarNavigationCamera(
carActiveGuidanceContext.mapboxNavigation,
CarCameraMode.FOLLOWING,
CarCameraMode.OVERVIEW,
)
private val roadLabelSurfaceLayer = RoadLabelSurfaceLayer(
carActiveGuidanceContext.carContext,
carActiveGuidanceContext.mapboxNavigation,
)

private val carRouteProgressObserver = CarNavigationInfoObserver(carActiveGuidanceContext)
private val mapActionStripBuilder = MainMapActionStrip(this, carNavigationCamera)

private val arrivalObserver = object : ArrivalObserver {
Expand Down Expand Up @@ -112,6 +105,21 @@ class ActiveGuidanceScreen(
}

init {
mapboxMapInstaller(carActiveGuidanceContext.mapboxCarMap)
.onResumed(
CarLocationRenderer(carActiveGuidanceContext.mainCarContext),
RoadLabelSurfaceLayer(
carContext,
carActiveGuidanceContext.mapboxNavigation,
),
CarSpeedLimitRenderer(carActiveGuidanceContext.mainCarContext),
carNavigationCamera,
CarRouteLine(carActiveGuidanceContext.mainCarContext),
surfaceListener,
)
.gestureHandler(carNavigationCamera.gestureHandler)
.install()

logAndroidAuto("ActiveGuidanceScreen constructor")
lifecycle.addObserver(object : DefaultLifecycleObserver {

Expand All @@ -122,29 +130,13 @@ class ActiveGuidanceScreen(

override fun onResume(owner: LifecycleOwner) {
logAndroidAuto("ActiveGuidanceScreen onResume")
carActiveGuidanceContext.mapboxCarMap.registerObserver(carLocationRenderer)
carActiveGuidanceContext.mapboxCarMap.registerObserver(roadLabelSurfaceLayer)
carActiveGuidanceContext.mapboxCarMap.registerObserver(carSpeedLimitRenderer)
carActiveGuidanceContext.mapboxCarMap.registerObserver(carNavigationCamera)
carActiveGuidanceContext.mapboxCarMap.setGestureHandler(
carNavigationCamera.gestureHandler
)
carActiveGuidanceContext.mapboxCarMap.registerObserver(carRouteLine)
carActiveGuidanceContext.mapboxCarMap.registerObserver(surfaceListener)
carRouteProgressObserver.start {
invalidate()
}
}

override fun onPause(owner: LifecycleOwner) {
logAndroidAuto("ActiveGuidanceScreen onPause")
carActiveGuidanceContext.mapboxCarMap.unregisterObserver(roadLabelSurfaceLayer)
carActiveGuidanceContext.mapboxCarMap.unregisterObserver(carLocationRenderer)
carActiveGuidanceContext.mapboxCarMap.unregisterObserver(carSpeedLimitRenderer)
carActiveGuidanceContext.mapboxCarMap.unregisterObserver(carNavigationCamera)
carActiveGuidanceContext.mapboxCarMap.setGestureHandler(null)
carActiveGuidanceContext.mapboxCarMap.unregisterObserver(carRouteLine)
carActiveGuidanceContext.mapboxCarMap.unregisterObserver(surfaceListener)
carRouteProgressObserver.stop()
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ import com.mapbox.geojson.Point
import com.mapbox.maps.MapboxExperimental
import com.mapbox.maps.extension.androidauto.MapboxCarMapObserver
import com.mapbox.maps.extension.androidauto.MapboxCarMapSurface
import com.mapbox.maps.extension.androidauto.mapboxMapInstaller
import com.mapbox.maps.plugin.delegates.listeners.OnStyleLoadedListener
import com.mapbox.navigation.base.route.NavigationRoute
import kotlinx.coroutines.Dispatchers
Expand All @@ -55,7 +56,6 @@ class PlacesListOnMapScreen(
private val placeRecords by lazy { CopyOnWriteArrayList<PlaceRecord>() }
private val jobControl by lazy { mainCarContext.getJobControl() }
private val carNavigationCamera = CarLocationsOverviewCamera(mainCarContext.mapboxNavigation)
private val locationRenderer = CarLocationRenderer(mainCarContext)
private var styleLoadedListener: OnStyleLoadedListener? = null

private val surfaceListener = object : MapboxCarMapObserver {
Expand Down Expand Up @@ -111,37 +111,19 @@ class PlacesListOnMapScreen(
}

init {
lifecycle.addObserver(object : DefaultLifecycleObserver {
override fun onCreate(owner: LifecycleOwner) {
logAndroidAuto("PlacesListOnMapScreen onCreate")
}

override fun onStart(owner: LifecycleOwner) {
logAndroidAuto("PlacesListOnMapScreen onStart")
}

override fun onResume(owner: LifecycleOwner) {
logAndroidAuto("PlacesListOnMapScreen onResume")
mainCarContext.mapboxCarMap.registerObserver(surfaceListener)
mainCarContext.mapboxCarMap.registerObserver(carNavigationCamera)
mainCarContext.mapboxCarMap.registerObserver(locationRenderer)
}
mapboxMapInstaller(mainCarContext.mapboxCarMap)
.onResumed(
surfaceListener,
carNavigationCamera,
CarLocationRenderer(mainCarContext)
)
.install()

lifecycle.addObserver(object : DefaultLifecycleObserver {
override fun onPause(owner: LifecycleOwner) {
logAndroidAuto("PlacesListOnMapScreen onPause")
placesProvider.cancel()
jobControl.job.cancelChildren()
mainCarContext.mapboxCarMap.unregisterObserver(locationRenderer)
mainCarContext.mapboxCarMap.unregisterObserver(carNavigationCamera)
mainCarContext.mapboxCarMap.unregisterObserver(surfaceListener)
}

override fun onStop(owner: LifecycleOwner) {
logAndroidAuto("PlacesListOnMapScreen onStop")
}

override fun onDestroy(owner: LifecycleOwner) {
logAndroidAuto("PlacesListOnMapScreen onDestroy")
}
})
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ import com.mapbox.geojson.FeatureCollection
import com.mapbox.maps.MapboxExperimental
import com.mapbox.maps.extension.androidauto.MapboxCarMapObserver
import com.mapbox.maps.extension.androidauto.MapboxCarMapSurface
import com.mapbox.maps.extension.androidauto.mapboxMapInstaller
import com.mapbox.maps.plugin.delegates.listeners.OnStyleLoadedListener
import com.mapbox.navigation.base.route.NavigationRoute

Expand All @@ -49,15 +50,6 @@ class CarRoutePreviewScreen(

private val routesProvider = PreviewRoutesProvider(navigationRoutes)
var selectedIndex = 0
val carRouteLine = CarRouteLine(routePreviewCarContext.mainCarContext, routesProvider)
val carLocationRenderer = CarLocationRenderer(routePreviewCarContext.mainCarContext)
val carSpeedLimitRenderer = CarSpeedLimitRenderer(routePreviewCarContext.mainCarContext)
val carNavigationCamera = CarNavigationCamera(
routePreviewCarContext.mapboxNavigation,
CarCameraMode.OVERVIEW,
CarCameraMode.FOLLOWING,
routesProvider,
)

private val backPressCallback = object : OnBackPressedCallback(true) {

Expand Down Expand Up @@ -101,28 +93,31 @@ class CarRoutePreviewScreen(

init {
logAndroidAuto("CarRoutePreviewScreen constructor")
mapboxMapInstaller(routePreviewCarContext.mapboxCarMap)
.onResumed(
CarLocationRenderer(routePreviewCarContext.mainCarContext),
CarSpeedLimitRenderer(routePreviewCarContext.mainCarContext),
CarNavigationCamera(
routePreviewCarContext.mapboxNavigation,
CarCameraMode.OVERVIEW,
CarCameraMode.FOLLOWING,
routesProvider,
),
CarRouteLine(routePreviewCarContext.mainCarContext, routesProvider),
surfaceListener,
)
.install()

lifecycle.muteAudioGuidance()
lifecycle.addObserver(object : DefaultLifecycleObserver {
override fun onResume(owner: LifecycleOwner) {
logAndroidAuto("CarRoutePreviewScreen onResume")
routePreviewCarContext.carContext.onBackPressedDispatcher.addCallback(
backPressCallback
)
routePreviewCarContext.mapboxCarMap.registerObserver(carLocationRenderer)
routePreviewCarContext.mapboxCarMap.registerObserver(carSpeedLimitRenderer)
routePreviewCarContext.mapboxCarMap.registerObserver(carNavigationCamera)
routePreviewCarContext.mapboxCarMap.registerObserver(carRouteLine)
routePreviewCarContext.mapboxCarMap.registerObserver(surfaceListener)
carContext.onBackPressedDispatcher.addCallback(backPressCallback)
}

override fun onPause(owner: LifecycleOwner) {
logAndroidAuto("CarRoutePreviewScreen onPause")
backPressCallback.remove()
routePreviewCarContext.mapboxCarMap.unregisterObserver(carLocationRenderer)
routePreviewCarContext.mapboxCarMap.unregisterObserver(carSpeedLimitRenderer)
routePreviewCarContext.mapboxCarMap.unregisterObserver(carNavigationCamera)
routePreviewCarContext.mapboxCarMap.unregisterObserver(carRouteLine)
routePreviewCarContext.mapboxCarMap.unregisterObserver(surfaceListener)
}
})
}
Expand Down
Loading