From 79ca715d3c11a06535ee6dd63112685fca6cb8e2 Mon Sep 17 00:00:00 2001 From: Kyle Madsen Date: Fri, 11 Nov 2022 09:30:00 -0800 Subject: [PATCH] Bump maps version and remove experimental annotation --- .../androidauto/car/MainCarSession.kt | 12 +-- gradle/dependencies.gradle | 2 +- libnavui-androidauto/CHANGELOG.md | 9 ++ libnavui-androidauto/api/current.txt | 93 +++++-------------- ...Test.kt => RoadLabelBitmapRendererTest.kt} | 18 ++-- .../mapbox/androidauto/MapboxCarContext.kt | 2 - .../deeplink/GeoDeeplinkNavigateAction.kt | 2 + .../freedrive/FreeDriveCarScreen.kt | 20 ++-- .../MapboxCarMapSurfaceExtensions.kt | 2 - .../search/CarSearchLocationProvider.kt | 2 - .../location/CarLocationRenderer.kt | 2 - .../androidauto/map/MapboxCarMapLoader.kt | 2 - ...rfaceRenderer.kt => CarCompassRenderer.kt} | 2 +- ...oSurfaceRenderer.kt => CarLogoRenderer.kt} | 2 +- .../navigation/ActiveGuidanceScreen.kt | 18 ++-- .../navigation/CarActiveGuidanceMarkers.kt | 2 - .../navigation/CarLocationsOverviewCamera.kt | 2 - .../navigation/CarNavigationCamera.kt | 2 - .../navigation/CarNavigationInfoProvider.kt | 2 - .../navigation/MapUserStyleObserver.kt | 2 - ...derer.kt => CarRoadLabelBitmapRenderer.kt} | 6 +- ...LabelOptions.kt => CarRoadLabelOptions.kt} | 10 +- ...urfaceLayer.kt => CarRoadLabelRenderer.kt} | 19 ++-- ...NameObserver.kt => CarRoadNameObserver.kt} | 2 +- .../speedlimit/CarSpeedLimitServices.kt | 2 + .../navigation/speedlimit/SpeedLimitWidget.kt | 2 +- .../NeedsLocationPermissionsScreen.kt | 2 +- .../placeslistonmap/PlacesListOnMapManager.kt | 2 - .../placeslistonmap/PlacesListOnMapScreen.kt | 2 - ...arRouteLine.kt => CarRouteLineRenderer.kt} | 4 +- .../preview/CarRoutePreviewScreen.kt | 8 +- .../preview/PreviewCarRoutesProvider.kt | 2 +- .../androidauto/routes/CarRoutesProvider.kt | 4 +- .../androidauto/search/PlaceRecordMapper.kt | 8 +- .../androidauto/search/PlaceSearchScreen.kt | 18 +++- .../androidauto/settings/CarSettingsScreen.kt | 2 +- .../androidauto/MapboxCarContextTest.kt | 2 - .../androidauto/map/MapboxCarMapLoaderTest.kt | 2 - .../CarLocationsOverviewCameraTest.kt | 2 - .../CarNavigationInfoProviderTest.kt | 2 - 40 files changed, 121 insertions(+), 178 deletions(-) rename libnavui-androidauto/src/androidTest/java/com/mapbox/androidauto/car/navigation/roadlabel/{RoadLabelRendererTest.kt => RoadLabelBitmapRendererTest.kt} (90%) rename libnavui-androidauto/src/main/java/com/mapbox/androidauto/map/compass/{CarCompassSurfaceRenderer.kt => CarCompassRenderer.kt} (96%) rename libnavui-androidauto/src/main/java/com/mapbox/androidauto/map/logo/{CarLogoSurfaceRenderer.kt => CarLogoRenderer.kt} (95%) rename libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/roadlabel/{RoadLabelRenderer.kt => CarRoadLabelBitmapRenderer.kt} (96%) rename libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/roadlabel/{RoadLabelOptions.kt => CarRoadLabelOptions.kt} (91%) rename libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/roadlabel/{RoadLabelSurfaceLayer.kt => CarRoadLabelRenderer.kt} (86%) rename libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/roadlabel/{RoadNameObserver.kt => CarRoadNameObserver.kt} (98%) rename libnavui-androidauto/src/main/java/com/mapbox/androidauto/preview/{CarRouteLine.kt => CarRouteLineRenderer.kt} (98%) diff --git a/android-auto-app/src/main/java/com/mapbox/navigation/examples/androidauto/car/MainCarSession.kt b/android-auto-app/src/main/java/com/mapbox/navigation/examples/androidauto/car/MainCarSession.kt index 7db744449d7..a6cc7cbf038 100644 --- a/android-auto-app/src/main/java/com/mapbox/navigation/examples/androidauto/car/MainCarSession.kt +++ b/android-auto-app/src/main/java/com/mapbox/navigation/examples/androidauto/car/MainCarSession.kt @@ -14,13 +14,12 @@ import com.mapbox.android.core.permissions.PermissionsManager import com.mapbox.androidauto.MapboxCarContext import com.mapbox.androidauto.deeplink.GeoDeeplinkNavigateAction import com.mapbox.androidauto.map.MapboxCarMapLoader -import com.mapbox.androidauto.map.compass.CarCompassSurfaceRenderer -import com.mapbox.androidauto.map.logo.CarLogoSurfaceRenderer +import com.mapbox.androidauto.map.compass.CarCompassRenderer +import com.mapbox.androidauto.map.logo.CarLogoRenderer import com.mapbox.androidauto.screenmanager.MapboxScreen import com.mapbox.androidauto.screenmanager.MapboxScreenManager import com.mapbox.androidauto.screenmanager.prepareScreens import com.mapbox.maps.MapInitOptions -import com.mapbox.maps.MapboxExperimental import com.mapbox.maps.extension.androidauto.MapboxCarMap import com.mapbox.navigation.base.ExperimentalPreviewMapboxNavigationAPI import com.mapbox.navigation.core.lifecycle.MapboxNavigationApp @@ -31,13 +30,11 @@ import com.mapbox.navigation.examples.androidauto.ReplayRouteTripSession import kotlinx.coroutines.flow.collect import kotlinx.coroutines.launch -@OptIn(MapboxExperimental::class) class MainCarSession : Session() { private val mapboxCarMapLoader = MapboxCarMapLoader() private val mapboxCarMap = MapboxCarMap().registerObserver(mapboxCarMapLoader) private val mapboxCarContext = MapboxCarContext(lifecycle, mapboxCarMap).prepareScreens() - private val mapboxNavigation by requireMapboxNavigation() init { @@ -46,8 +43,8 @@ class MainCarSession : Session() { CarAppSyncComponent.getInstance().setCarSession(this) // Add BitmapWidgets to the map that will be shown whenever the map is visible. - val logoSurfaceRenderer = CarLogoSurfaceRenderer() - val compassSurfaceRenderer = CarCompassSurfaceRenderer() + val logoSurfaceRenderer = CarLogoRenderer() + val compassSurfaceRenderer = CarCompassRenderer() lifecycle.addObserver(object : DefaultLifecycleObserver { override fun onCreate(owner: LifecycleOwner) { // You must give the MapboxCarMap an instance of the carContext. @@ -83,6 +80,7 @@ class MainCarSession : Session() { // Handle the geo deeplink for voice activated navigation. This will handle the case when // you ask the head unit to "Navigate to coffee shop". + @OptIn(ExperimentalPreviewMapboxNavigationAPI::class) override fun onNewIntent(intent: Intent) { super.onNewIntent(intent) if (PermissionsManager.areLocationPermissionsGranted(carContext)) { diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle index c2de0bc4518..da4c4836162 100644 --- a/gradle/dependencies.gradle +++ b/gradle/dependencies.gradle @@ -27,7 +27,7 @@ ext { mapboxCrashMonitor : '2.0.0', mapboxAnnotationPlugin : '0.8.0', mapboxBaseAndroid : '0.8.0', - mapboxMapsAndroidAuto : '0.3.0', + mapboxMapsAndroidAuto : '0.4.0', androidXLifecycle : '2.4.0', androidXCoreVersion : '1.6.0', androidXArchCoreVersion : '2.1.0', diff --git a/libnavui-androidauto/CHANGELOG.md b/libnavui-androidauto/CHANGELOG.md index 91e1fe1b6fc..fd5d134656d 100644 --- a/libnavui-androidauto/CHANGELOG.md +++ b/libnavui-androidauto/CHANGELOG.md @@ -5,6 +5,15 @@ Mapbox welcomes participation and contributions from everyone. ## Unreleased #### Features #### Bug fixes and improvements +- Removed `@MapboxExperimental` from `MapboxCarMapObserver` implementations. [#6588](https://github.com/mapbox/mapbox-navigation-android/pull/6588) +- Renamed `CarCompassSurfaceRenderer` to `CarCompassRenderer`. [#6588](https://github.com/mapbox/mapbox-navigation-android/pull/6588) +- Renamed `CarLogoSurfaceRenderer` to `CarLogoRenderer`. [#6588](https://github.com/mapbox/mapbox-navigation-android/pull/6588) +- Renamed `RoadLabelSurfaceLayer` to `CarRoadLabelRenderer`. [#6588](https://github.com/mapbox/mapbox-navigation-android/pull/6588) +- Renamed `CarRouteLine` to `CarRouteLineRenderer`. [#6588](https://github.com/mapbox/mapbox-navigation-android/pull/6588) +- Renamed `RoadLabelOptions` to `CarRoadLabelOptions`. [#6588](https://github.com/mapbox/mapbox-navigation-android/pull/6588) +- Renamed `RoadLabelRenderer` to `CarRoadLabelRenderer`. [#6588](https://github.com/mapbox/mapbox-navigation-android/pull/6588) +- Made `ActiveGuidanceScreen` internal in favor of `MapboxScreen.ACTIVE_GUIDANCE`. [#6588](https://github.com/mapbox/mapbox-navigation-android/pull/6588) +- Made `NeedsLocationPermissionsScreen` internal in favor of `MapboxScreen.NEEDS_LOCATION_PERMISSION`. [#6588](https://github.com/mapbox/mapbox-navigation-android/pull/6588) ## androidauto-v0.16.0 - 04 November, 2022 ### Changelog diff --git a/libnavui-androidauto/api/current.txt b/libnavui-androidauto/api/current.txt index 83c9a0109da..cfd109e463e 100644 --- a/libnavui-androidauto/api/current.txt +++ b/libnavui-androidauto/api/current.txt @@ -87,7 +87,7 @@ package com.mapbox.androidauto.deeplink { property public final com.mapbox.api.geocoding.v5.MapboxGeocoding? currentMapboxGeocoding; } - public final class GeoDeeplinkNavigateAction { + @com.mapbox.navigation.base.ExperimentalPreviewMapboxNavigationAPI public final class GeoDeeplinkNavigateAction { ctor public GeoDeeplinkNavigateAction(com.mapbox.androidauto.MapboxCarContext mapboxCarContext); method public com.mapbox.androidauto.MapboxCarContext getMapboxCarContext(); method public boolean onNewIntent(android.content.Intent intent); @@ -206,19 +206,6 @@ package com.mapbox.androidauto.freedrive { method public androidx.car.app.model.ActionStrip.Builder builder(); } - public final class FreeDriveCarScreen extends androidx.car.app.Screen { - ctor @UiThread public FreeDriveCarScreen(com.mapbox.androidauto.MapboxCarContext mapboxCarContext); - method public com.mapbox.androidauto.location.CarLocationRenderer getCarLocationRenderer(); - method public com.mapbox.androidauto.navigation.CarNavigationCamera getCarNavigationCamera(); - method public com.mapbox.androidauto.preview.CarRouteLine getCarRouteLine(); - method public com.mapbox.androidauto.navigation.speedlimit.CarSpeedLimitRenderer getCarSpeedLimitRenderer(); - method public androidx.car.app.model.Template onGetTemplate(); - property public final com.mapbox.androidauto.location.CarLocationRenderer carLocationRenderer; - property public final com.mapbox.androidauto.navigation.CarNavigationCamera carNavigationCamera; - property public final com.mapbox.androidauto.preview.CarRouteLine carRouteLine; - property public final com.mapbox.androidauto.navigation.speedlimit.CarSpeedLimitRenderer carSpeedLimitRenderer; - } - } package com.mapbox.androidauto.location { @@ -262,16 +249,16 @@ package com.mapbox.androidauto.map { package com.mapbox.androidauto.map.compass { - public final class CarCompassSurfaceRenderer implements com.mapbox.maps.extension.androidauto.MapboxCarMapObserver { - ctor public CarCompassSurfaceRenderer(); + public final class CarCompassRenderer implements com.mapbox.maps.extension.androidauto.MapboxCarMapObserver { + ctor public CarCompassRenderer(); } } package com.mapbox.androidauto.map.logo { - public final class CarLogoSurfaceRenderer implements com.mapbox.maps.extension.androidauto.MapboxCarMapObserver { - ctor public CarLogoSurfaceRenderer(); + public final class CarLogoRenderer implements com.mapbox.maps.extension.androidauto.MapboxCarMapObserver { + ctor public CarLogoRenderer(); } } @@ -340,7 +327,7 @@ package com.mapbox.androidauto.navigation { method public androidx.car.app.navigation.model.NavigationTemplate.NavigationInfo? mapNavigationInfo(com.mapbox.bindgen.Expected> expectedManeuvers, java.util.List routeShields, com.mapbox.navigation.base.trip.model.RouteProgress routeProgress); } - @com.mapbox.maps.MapboxExperimental public final class CarNavigationInfoProvider implements com.mapbox.maps.extension.androidauto.MapboxCarMapObserver { + public final class CarNavigationInfoProvider implements com.mapbox.maps.extension.androidauto.MapboxCarMapObserver { ctor public CarNavigationInfoProvider(); method public kotlinx.coroutines.flow.StateFlow getCarNavigationInfo(); method public com.mapbox.androidauto.navigation.CarNavigationInfoProvider invalidateOnChange(androidx.car.app.Screen screen); @@ -471,53 +458,35 @@ package com.mapbox.androidauto.navigation.maneuver { package com.mapbox.androidauto.navigation.roadlabel { - public final class RoadLabelOptions { + public final class CarRoadLabelOptions { method public int getBackgroundColor(); method public int getRoundedLabelColor(); method public Integer? getShadowColor(); method public int getTextColor(); - method public com.mapbox.androidauto.navigation.roadlabel.RoadLabelOptions.Builder toBuilder(); + method public com.mapbox.androidauto.navigation.roadlabel.CarRoadLabelOptions.Builder toBuilder(); property public final int backgroundColor; property public final int roundedLabelColor; property public final Integer? shadowColor; property public final int textColor; - field public static final com.mapbox.androidauto.navigation.roadlabel.RoadLabelOptions.Companion Companion; - } - - public static final class RoadLabelOptions.Builder { - ctor public RoadLabelOptions.Builder(); - method public com.mapbox.androidauto.navigation.roadlabel.RoadLabelOptions.Builder backgroundColor(@ColorInt int backgroundColor); - method public com.mapbox.androidauto.navigation.roadlabel.RoadLabelOptions build(); - method public com.mapbox.androidauto.navigation.roadlabel.RoadLabelOptions.Builder roundedLabelColor(@ColorInt int roundedLabelColor); - method public com.mapbox.androidauto.navigation.roadlabel.RoadLabelOptions.Builder shadowColor(@ColorInt Integer? shadowColor); - method public com.mapbox.androidauto.navigation.roadlabel.RoadLabelOptions.Builder textColor(@ColorInt int textColor); + field public static final com.mapbox.androidauto.navigation.roadlabel.CarRoadLabelOptions.Companion Companion; } - public static final class RoadLabelOptions.Companion { - method public com.mapbox.androidauto.navigation.roadlabel.RoadLabelOptions getDefault(); - property public final com.mapbox.androidauto.navigation.roadlabel.RoadLabelOptions default; + public static final class CarRoadLabelOptions.Builder { + ctor public CarRoadLabelOptions.Builder(); + method public com.mapbox.androidauto.navigation.roadlabel.CarRoadLabelOptions.Builder backgroundColor(@ColorInt int backgroundColor); + method public com.mapbox.androidauto.navigation.roadlabel.CarRoadLabelOptions build(); + method public com.mapbox.androidauto.navigation.roadlabel.CarRoadLabelOptions.Builder roundedLabelColor(@ColorInt int roundedLabelColor); + method public com.mapbox.androidauto.navigation.roadlabel.CarRoadLabelOptions.Builder shadowColor(@ColorInt Integer? shadowColor); + method public com.mapbox.androidauto.navigation.roadlabel.CarRoadLabelOptions.Builder textColor(@ColorInt int textColor); } - public final class RoadLabelRenderer { - ctor public RoadLabelRenderer(); - method public android.graphics.Bitmap? render(android.content.res.Resources resources, java.util.List road, java.util.List shields, com.mapbox.androidauto.navigation.roadlabel.RoadLabelOptions options = RoadLabelOptions.default); + public static final class CarRoadLabelOptions.Companion { + method public com.mapbox.androidauto.navigation.roadlabel.CarRoadLabelOptions getDefault(); + property public final com.mapbox.androidauto.navigation.roadlabel.CarRoadLabelOptions default; } - public final class RoadLabelSurfaceLayer implements com.mapbox.maps.extension.androidauto.MapboxCarMapObserver { - ctor public RoadLabelSurfaceLayer(); - } - - public abstract class RoadNameObserver implements com.mapbox.navigation.core.lifecycle.MapboxNavigationObserver { - ctor public RoadNameObserver(com.mapbox.navigation.ui.shield.api.MapboxRouteShieldApi routeShieldApi, com.mapbox.androidauto.navigation.MapUserStyleObserver mapUserStyleObserver); - method public final java.util.List getCurrentRoad(); - method public final java.util.List getCurrentShields(); - method public final void onAttached(com.mapbox.navigation.core.MapboxNavigation mapboxNavigation); - method public final void onDetached(com.mapbox.navigation.core.MapboxNavigation mapboxNavigation); - method public abstract void onRoadUpdate(java.util.List road, java.util.List shields); - method public final void setCurrentRoad(java.util.List); - method public final void setCurrentShields(java.util.List); - property public final java.util.List currentRoad; - property public final java.util.List currentShields; + public final class CarRoadLabelRenderer implements com.mapbox.maps.extension.androidauto.MapboxCarMapObserver { + ctor public CarRoadLabelRenderer(); } } @@ -543,7 +512,7 @@ package com.mapbox.androidauto.navigation.speedlimit { method public com.mapbox.androidauto.navigation.speedlimit.SpeedLimitOptions.Builder warningThreshold(int warningThreshold); } - public final class SpeedLimitWidget extends com.mapbox.maps.renderer.widget.BitmapWidget { + @com.mapbox.maps.MapboxExperimental public final class SpeedLimitWidget extends com.mapbox.maps.renderer.widget.BitmapWidget { ctor public SpeedLimitWidget(com.mapbox.navigation.base.speed.model.SpeedLimitSign initialSignFormat = com.mapbox.navigation.base.speed.model.SpeedLimitSign.MUTCD); method public void update(Integer? speedLimit, int speed, com.mapbox.navigation.base.speed.model.SpeedLimitSign? signFormat, int threshold); method public void update(com.mapbox.navigation.base.speed.model.SpeedLimitSign? signFormat, int threshold); @@ -572,15 +541,6 @@ package com.mapbox.androidauto.notification { } -package com.mapbox.androidauto.permissions { - - public final class NeedsLocationPermissionsScreen extends androidx.car.app.Screen { - ctor public NeedsLocationPermissionsScreen(androidx.car.app.CarContext carContext); - method public androidx.car.app.model.Template onGetTemplate(); - } - -} - package com.mapbox.androidauto.placeslistonmap { public final class PlaceMarkerRenderer { @@ -629,8 +589,8 @@ package com.mapbox.androidauto.placeslistonmap { package com.mapbox.androidauto.preview { - public final class CarRouteLine implements com.mapbox.maps.extension.androidauto.MapboxCarMapObserver { - ctor public CarRouteLine(com.mapbox.androidauto.routes.CarRoutesProvider carRoutesProvider = com.mapbox.androidauto.routes.NavigationCarRoutesProvider()); + public final class CarRouteLineRenderer implements com.mapbox.maps.extension.androidauto.MapboxCarMapObserver { + ctor public CarRouteLineRenderer(com.mapbox.androidauto.routes.CarRoutesProvider carRoutesProvider = com.mapbox.androidauto.routes.NavigationCarRoutesProvider()); } public fun interface CarRouteOptionsInterceptor { @@ -878,11 +838,6 @@ package com.mapbox.androidauto.search { package com.mapbox.androidauto.settings { - public final class CarSettingsScreen extends androidx.car.app.Screen { - ctor public CarSettingsScreen(com.mapbox.androidauto.MapboxCarContext mapboxCarContext); - method public androidx.car.app.model.Template onGetTemplate(); - } - public final class MapboxCarStorage { method public androidx.car.app.CarContext getCarContext(); method public boolean readSharedPref(String key, boolean defaultValue); diff --git a/libnavui-androidauto/src/androidTest/java/com/mapbox/androidauto/car/navigation/roadlabel/RoadLabelRendererTest.kt b/libnavui-androidauto/src/androidTest/java/com/mapbox/androidauto/car/navigation/roadlabel/RoadLabelBitmapRendererTest.kt similarity index 90% rename from libnavui-androidauto/src/androidTest/java/com/mapbox/androidauto/car/navigation/roadlabel/RoadLabelRendererTest.kt rename to libnavui-androidauto/src/androidTest/java/com/mapbox/androidauto/car/navigation/roadlabel/RoadLabelBitmapRendererTest.kt index caf5bccb8a8..8a789afb82b 100644 --- a/libnavui-androidauto/src/androidTest/java/com/mapbox/androidauto/car/navigation/roadlabel/RoadLabelRendererTest.kt +++ b/libnavui-androidauto/src/androidTest/java/com/mapbox/androidauto/car/navigation/roadlabel/RoadLabelBitmapRendererTest.kt @@ -6,8 +6,8 @@ import androidx.test.filters.SmallTest import androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner import androidx.test.platform.app.InstrumentationRegistry import androidx.test.rule.GrantPermissionRule -import com.mapbox.androidauto.navigation.roadlabel.RoadLabelOptions -import com.mapbox.androidauto.navigation.roadlabel.RoadLabelRenderer +import com.mapbox.androidauto.navigation.roadlabel.CarRoadLabelBitmapRenderer +import com.mapbox.androidauto.navigation.roadlabel.CarRoadLabelOptions import com.mapbox.androidauto.testing.BitmapTestUtil import com.mapbox.api.directions.v5.models.MapboxShield import com.mapbox.navigation.base.ExperimentalMapboxNavigationAPI @@ -23,7 +23,7 @@ import org.junit.runner.RunWith @ExperimentalMapboxNavigationAPI @RunWith(AndroidJUnit4ClassRunner::class) @SmallTest -class RoadLabelRendererTest { +class RoadLabelBitmapRendererTest { @Rule @JvmField @@ -40,7 +40,7 @@ class RoadLabelRendererTest { "test_road_label_images" ) - private val roadLabelBitmapRenderer = RoadLabelRenderer() + private val roadLabelBitmapRenderer = CarRoadLabelBitmapRenderer() private val resources = InstrumentationRegistry.getInstrumentation().context.resources @Test @@ -49,7 +49,7 @@ class RoadLabelRendererTest { resources, createRoad("Pennsylvania Avenue"), emptyList(), - RoadLabelOptions.Builder() + CarRoadLabelOptions.Builder() .backgroundColor(0x784D4DD3) .build() ) @@ -63,7 +63,7 @@ class RoadLabelRendererTest { resources, createRoad("11th Street"), emptyList(), - RoadLabelOptions.Builder() + CarRoadLabelOptions.Builder() .backgroundColor(0x784D4DD3) .build() ) @@ -80,7 +80,7 @@ class RoadLabelRendererTest { "uakitanatahu" ), emptyList(), - RoadLabelOptions.Builder() + CarRoadLabelOptions.Builder() .backgroundColor(0x784D4DD3) .build() ) @@ -94,7 +94,7 @@ class RoadLabelRendererTest { resources, createRoad("Eu Tong Sen Street"), emptyList(), - RoadLabelOptions.Builder() + CarRoadLabelOptions.Builder() .shadowColor(null) .roundedLabelColor(0xFF1A65CA.toInt()) .textColor(Color.WHITE) @@ -124,7 +124,7 @@ class RoadLabelRendererTest { mockk() ) ), - RoadLabelOptions.Builder() + CarRoadLabelOptions.Builder() .backgroundColor(0x784D4DD3) .build(), ) diff --git a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/MapboxCarContext.kt b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/MapboxCarContext.kt index d4f4bea152e..dec497da454 100644 --- a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/MapboxCarContext.kt +++ b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/MapboxCarContext.kt @@ -18,7 +18,6 @@ import com.mapbox.androidauto.notification.MapboxCarNotificationOptions import com.mapbox.androidauto.preview.CarRoutePreviewRequest import com.mapbox.androidauto.screenmanager.MapboxScreenManager import com.mapbox.androidauto.settings.MapboxCarStorage -import com.mapbox.maps.MapboxExperimental import com.mapbox.maps.extension.androidauto.MapboxCarMap /** @@ -30,7 +29,6 @@ import com.mapbox.maps.extension.androidauto.MapboxCarMap * @param lifecycle used to access the [CarContext]. * @param mapboxCarMap controls the Mapbox car map surface. */ -@OptIn(MapboxExperimental::class) class MapboxCarContext( /** * Gives access to the [Lifecycle] that owns the [CarContext]. diff --git a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/deeplink/GeoDeeplinkNavigateAction.kt b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/deeplink/GeoDeeplinkNavigateAction.kt index 155e79686ad..ed5c6321985 100644 --- a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/deeplink/GeoDeeplinkNavigateAction.kt +++ b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/deeplink/GeoDeeplinkNavigateAction.kt @@ -5,11 +5,13 @@ import com.mapbox.androidauto.MapboxCarContext import com.mapbox.androidauto.internal.logAndroidAuto import com.mapbox.androidauto.screenmanager.MapboxScreen import com.mapbox.androidauto.screenmanager.MapboxScreenManager +import com.mapbox.navigation.base.ExperimentalPreviewMapboxNavigationAPI import com.mapbox.navigation.core.MapboxNavigation import com.mapbox.navigation.core.geodeeplink.GeoDeeplink import com.mapbox.navigation.core.geodeeplink.GeoDeeplinkParser import com.mapbox.navigation.core.lifecycle.MapboxNavigationApp +@ExperimentalPreviewMapboxNavigationAPI class GeoDeeplinkNavigateAction(val mapboxCarContext: MapboxCarContext) { fun onNewIntent(intent: Intent): Boolean { val mapboxNavigation = MapboxNavigationApp.current() diff --git a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/freedrive/FreeDriveCarScreen.kt b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/freedrive/FreeDriveCarScreen.kt index 1cc0a9c7309..4261efb4d75 100644 --- a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/freedrive/FreeDriveCarScreen.kt +++ b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/freedrive/FreeDriveCarScreen.kt @@ -13,27 +13,25 @@ import com.mapbox.androidauto.internal.logAndroidAuto import com.mapbox.androidauto.location.CarLocationRenderer import com.mapbox.androidauto.navigation.CarCameraMode import com.mapbox.androidauto.navigation.CarNavigationCamera -import com.mapbox.androidauto.navigation.roadlabel.RoadLabelSurfaceLayer +import com.mapbox.androidauto.navigation.roadlabel.CarRoadLabelRenderer import com.mapbox.androidauto.navigation.speedlimit.CarSpeedLimitRenderer -import com.mapbox.androidauto.preview.CarRouteLine -import com.mapbox.maps.MapboxExperimental +import com.mapbox.androidauto.preview.CarRouteLineRenderer /** * When the app is launched from Android Auto */ -@OptIn(MapboxExperimental::class) -class FreeDriveCarScreen @UiThread constructor( +internal class FreeDriveCarScreen @UiThread constructor( private val mapboxCarContext: MapboxCarContext ) : Screen(mapboxCarContext.carContext) { - val carRouteLine = CarRouteLine() + val carRouteLineRenderer = CarRouteLineRenderer() val carLocationRenderer = CarLocationRenderer() val carSpeedLimitRenderer = CarSpeedLimitRenderer(mapboxCarContext) val carNavigationCamera = CarNavigationCamera( initialCarCameraMode = CarCameraMode.FOLLOWING, alternativeCarCameraMode = null, ) - private val roadLabelSurfaceLayer = RoadLabelSurfaceLayer() + private val carRoadLabelRenderer = CarRoadLabelRenderer() private val mapActionStripBuilder = MapboxMapActionStrip(this, carNavigationCamera) init { @@ -41,9 +39,9 @@ class FreeDriveCarScreen @UiThread constructor( lifecycle.addObserver(object : DefaultLifecycleObserver { override fun onResume(owner: LifecycleOwner) { logAndroidAuto("FreeDriveCarScreen onResume") - mapboxCarContext.mapboxCarMap.registerObserver(carRouteLine) + mapboxCarContext.mapboxCarMap.registerObserver(carRouteLineRenderer) mapboxCarContext.mapboxCarMap.registerObserver(carLocationRenderer) - mapboxCarContext.mapboxCarMap.registerObserver(roadLabelSurfaceLayer) + mapboxCarContext.mapboxCarMap.registerObserver(carRoadLabelRenderer) mapboxCarContext.mapboxCarMap.registerObserver(carSpeedLimitRenderer) mapboxCarContext.mapboxCarMap.registerObserver(carNavigationCamera) mapboxCarContext.mapboxCarMap.setGestureHandler(carNavigationCamera.gestureHandler) @@ -51,9 +49,9 @@ class FreeDriveCarScreen @UiThread constructor( override fun onPause(owner: LifecycleOwner) { logAndroidAuto("FreeDriveCarScreen onPause") - mapboxCarContext.mapboxCarMap.unregisterObserver(carRouteLine) + mapboxCarContext.mapboxCarMap.unregisterObserver(carRouteLineRenderer) mapboxCarContext.mapboxCarMap.unregisterObserver(carLocationRenderer) - mapboxCarContext.mapboxCarMap.unregisterObserver(roadLabelSurfaceLayer) + mapboxCarContext.mapboxCarMap.unregisterObserver(carRoadLabelRenderer) mapboxCarContext.mapboxCarMap.unregisterObserver(carSpeedLimitRenderer) mapboxCarContext.mapboxCarMap.unregisterObserver(carNavigationCamera) mapboxCarContext.mapboxCarMap.setGestureHandler(null) diff --git a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/internal/extensions/MapboxCarMapSurfaceExtensions.kt b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/internal/extensions/MapboxCarMapSurfaceExtensions.kt index b9a72ff2d09..6bb2d85ba4c 100644 --- a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/internal/extensions/MapboxCarMapSurfaceExtensions.kt +++ b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/internal/extensions/MapboxCarMapSurfaceExtensions.kt @@ -1,9 +1,7 @@ @file:JvmName("MapboxCarMapSurfaceEx") -@file:OptIn(MapboxExperimental::class) package com.mapbox.androidauto.internal.extensions -import com.mapbox.maps.MapboxExperimental import com.mapbox.maps.Style import com.mapbox.maps.extension.androidauto.MapboxCarMapSurface import com.mapbox.maps.plugin.delegates.listeners.OnStyleLoadedListener diff --git a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/internal/search/CarSearchLocationProvider.kt b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/internal/search/CarSearchLocationProvider.kt index 174083733f4..01d4d9e8319 100644 --- a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/internal/search/CarSearchLocationProvider.kt +++ b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/internal/search/CarSearchLocationProvider.kt @@ -9,14 +9,12 @@ import com.mapbox.android.core.location.LocationEngineCallback import com.mapbox.android.core.location.LocationEngineRequest import com.mapbox.android.core.location.LocationEngineResult import com.mapbox.geojson.Point -import com.mapbox.navigation.base.ExperimentalPreviewMapboxNavigationAPI import com.mapbox.navigation.core.MapboxNavigation import com.mapbox.navigation.core.lifecycle.MapboxNavigationObserver import com.mapbox.navigation.core.trip.session.LocationMatcherResult import com.mapbox.navigation.core.trip.session.LocationObserver import java.util.concurrent.ConcurrentHashMap -@OptIn(ExperimentalPreviewMapboxNavigationAPI::class) class CarSearchLocationProvider : LocationEngine, MapboxNavigationObserver { var location: Location? = null diff --git a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/location/CarLocationRenderer.kt b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/location/CarLocationRenderer.kt index bf4171ecb47..da8b0f2f183 100644 --- a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/location/CarLocationRenderer.kt +++ b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/location/CarLocationRenderer.kt @@ -1,7 +1,6 @@ package com.mapbox.androidauto.location import com.mapbox.androidauto.internal.logAndroidAuto -import com.mapbox.maps.MapboxExperimental import com.mapbox.maps.extension.androidauto.MapboxCarMapObserver import com.mapbox.maps.extension.androidauto.MapboxCarMapSurface import com.mapbox.maps.plugin.locationcomponent.location @@ -10,7 +9,6 @@ import com.mapbox.maps.plugin.locationcomponent.location * Create a simple 3d location puck. This class is demonstrating how to * create a renderer. To Create a new location experience, try creating a new class. */ -@OptIn(MapboxExperimental::class) class CarLocationRenderer : MapboxCarMapObserver { override fun onAttached(mapboxCarMapSurface: MapboxCarMapSurface) { diff --git a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/map/MapboxCarMapLoader.kt b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/map/MapboxCarMapLoader.kt index 97339dd5552..91de9521d32 100644 --- a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/map/MapboxCarMapLoader.kt +++ b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/map/MapboxCarMapLoader.kt @@ -6,7 +6,6 @@ import com.mapbox.androidauto.internal.extensions.getStyle import com.mapbox.androidauto.internal.logAndroidAuto import com.mapbox.androidauto.internal.logAndroidAutoFailure import com.mapbox.androidauto.internal.surfacelayer.EmptyLayerHost -import com.mapbox.maps.MapboxExperimental import com.mapbox.maps.MapboxMap import com.mapbox.maps.extension.androidauto.MapboxCarMap import com.mapbox.maps.extension.androidauto.MapboxCarMapObserver @@ -26,7 +25,6 @@ import com.mapbox.navigation.ui.maps.NavigationStyles * [MapboxCarMap.unregisterObserver]. Override the [Session.onCarConfigurationChanged] and call the * [onCarConfigurationChanged]. */ -@OptIn(MapboxExperimental::class) class MapboxCarMapLoader : MapboxCarMapObserver { private var mapboxMap: MapboxMap? = null diff --git a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/map/compass/CarCompassSurfaceRenderer.kt b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/map/compass/CarCompassRenderer.kt similarity index 96% rename from libnavui-androidauto/src/main/java/com/mapbox/androidauto/map/compass/CarCompassSurfaceRenderer.kt rename to libnavui-androidauto/src/main/java/com/mapbox/androidauto/map/compass/CarCompassRenderer.kt index e70d33f8808..657bb037eb9 100644 --- a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/map/compass/CarCompassSurfaceRenderer.kt +++ b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/map/compass/CarCompassRenderer.kt @@ -8,7 +8,7 @@ import com.mapbox.maps.extension.androidauto.widgets.CompassWidget import com.mapbox.maps.plugin.delegates.listeners.OnCameraChangeListener @OptIn(MapboxExperimental::class) -class CarCompassSurfaceRenderer : MapboxCarMapObserver { +class CarCompassRenderer : MapboxCarMapObserver { private var mapboxMap: MapboxMap? = null private var compassWidget: CompassWidget? = null diff --git a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/map/logo/CarLogoSurfaceRenderer.kt b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/map/logo/CarLogoRenderer.kt similarity index 95% rename from libnavui-androidauto/src/main/java/com/mapbox/androidauto/map/logo/CarLogoSurfaceRenderer.kt rename to libnavui-androidauto/src/main/java/com/mapbox/androidauto/map/logo/CarLogoRenderer.kt index abbc013f7e8..01b83878ea7 100644 --- a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/map/logo/CarLogoSurfaceRenderer.kt +++ b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/map/logo/CarLogoRenderer.kt @@ -9,7 +9,7 @@ import com.mapbox.maps.extension.androidauto.widgets.LogoWidget import com.mapbox.maps.renderer.widget.WidgetPosition @OptIn(MapboxExperimental::class) -class CarLogoSurfaceRenderer : MapboxCarMapObserver { +class CarLogoRenderer : MapboxCarMapObserver { private var logoWidget: LogoWidget? = null diff --git a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/ActiveGuidanceScreen.kt b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/ActiveGuidanceScreen.kt index 9b601df9522..3490e6a7d82 100644 --- a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/ActiveGuidanceScreen.kt +++ b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/ActiveGuidanceScreen.kt @@ -14,30 +14,28 @@ import com.mapbox.androidauto.action.MapboxActionProvider import com.mapbox.androidauto.action.MapboxMapActionStrip import com.mapbox.androidauto.internal.logAndroidAuto import com.mapbox.androidauto.location.CarLocationRenderer -import com.mapbox.androidauto.navigation.roadlabel.RoadLabelSurfaceLayer +import com.mapbox.androidauto.navigation.roadlabel.CarRoadLabelRenderer import com.mapbox.androidauto.navigation.speedlimit.CarSpeedLimitRenderer -import com.mapbox.androidauto.preview.CarRouteLine -import com.mapbox.maps.MapboxExperimental +import com.mapbox.androidauto.preview.CarRouteLineRenderer import com.mapbox.navigation.core.lifecycle.MapboxNavigationApp /** * After a route has been selected. This view gives turn-by-turn instructions * for completing the route. */ -@OptIn(MapboxExperimental::class) internal class ActiveGuidanceScreen constructor( private val mapboxCarContext: MapboxCarContext, private val actionProviders: List, ) : Screen(mapboxCarContext.carContext) { - val carRouteLine = CarRouteLine() + val carRouteLineRenderer = CarRouteLineRenderer() val carLocationRenderer = CarLocationRenderer() val carSpeedLimitRenderer = CarSpeedLimitRenderer(mapboxCarContext) val carNavigationCamera = CarNavigationCamera( initialCarCameraMode = CarCameraMode.FOLLOWING, alternativeCarCameraMode = CarCameraMode.OVERVIEW, ) - private val roadLabelSurfaceLayer = RoadLabelSurfaceLayer() + private val carRoadLabelRenderer = CarRoadLabelRenderer() private val navigationInfoProvider = CarNavigationInfoProvider() .invalidateOnChange(this) private val carActiveGuidanceMarkers = CarActiveGuidanceMarkers() @@ -50,11 +48,11 @@ internal class ActiveGuidanceScreen constructor( override fun onResume(owner: LifecycleOwner) { logAndroidAuto("ActiveGuidanceScreen onResume") mapboxCarContext.mapboxCarMap.registerObserver(carLocationRenderer) - mapboxCarContext.mapboxCarMap.registerObserver(roadLabelSurfaceLayer) + mapboxCarContext.mapboxCarMap.registerObserver(carRoadLabelRenderer) mapboxCarContext.mapboxCarMap.registerObserver(carSpeedLimitRenderer) mapboxCarContext.mapboxCarMap.registerObserver(carNavigationCamera) mapboxCarContext.mapboxCarMap.setGestureHandler(carNavigationCamera.gestureHandler) - mapboxCarContext.mapboxCarMap.registerObserver(carRouteLine) + mapboxCarContext.mapboxCarMap.registerObserver(carRouteLineRenderer) mapboxCarContext.mapboxCarMap.registerObserver(carActiveGuidanceMarkers) mapboxCarContext.mapboxCarMap.registerObserver(navigationInfoProvider) MapboxNavigationApp.registerObserver(carArrivalTrigger) @@ -62,12 +60,12 @@ internal class ActiveGuidanceScreen constructor( override fun onPause(owner: LifecycleOwner) { logAndroidAuto("ActiveGuidanceScreen onPause") - mapboxCarContext.mapboxCarMap.unregisterObserver(roadLabelSurfaceLayer) + mapboxCarContext.mapboxCarMap.unregisterObserver(carRoadLabelRenderer) mapboxCarContext.mapboxCarMap.unregisterObserver(carLocationRenderer) mapboxCarContext.mapboxCarMap.unregisterObserver(carSpeedLimitRenderer) mapboxCarContext.mapboxCarMap.unregisterObserver(carNavigationCamera) mapboxCarContext.mapboxCarMap.setGestureHandler(null) - mapboxCarContext.mapboxCarMap.unregisterObserver(carRouteLine) + mapboxCarContext.mapboxCarMap.unregisterObserver(carRouteLineRenderer) mapboxCarContext.mapboxCarMap.unregisterObserver(carActiveGuidanceMarkers) mapboxCarContext.mapboxCarMap.unregisterObserver(navigationInfoProvider) MapboxNavigationApp.unregisterObserver(carArrivalTrigger) diff --git a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/CarActiveGuidanceMarkers.kt b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/CarActiveGuidanceMarkers.kt index bd9c6bd9bf0..03689d4b2a7 100644 --- a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/CarActiveGuidanceMarkers.kt +++ b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/CarActiveGuidanceMarkers.kt @@ -8,7 +8,6 @@ import com.mapbox.androidauto.internal.logAndroidAuto import com.mapbox.androidauto.placeslistonmap.PlacesListOnMapLayerUtil import com.mapbox.geojson.Feature 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.plugin.delegates.listeners.OnStyleLoadedListener @@ -16,7 +15,6 @@ import com.mapbox.navigation.core.MapboxNavigation import com.mapbox.navigation.core.directions.session.RoutesObserver import com.mapbox.navigation.core.lifecycle.MapboxNavigationApp -@OptIn(MapboxExperimental::class) class CarActiveGuidanceMarkers : MapboxCarMapObserver { private var styleLoadedListener: OnStyleLoadedListener? = null private var mapboxCarMapSurface: MapboxCarMapSurface? = null diff --git a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/CarLocationsOverviewCamera.kt b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/CarLocationsOverviewCamera.kt index 2c25d7035dd..9d9abf7becf 100644 --- a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/CarLocationsOverviewCamera.kt +++ b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/CarLocationsOverviewCamera.kt @@ -7,7 +7,6 @@ import com.mapbox.androidauto.internal.logAndroidAuto import com.mapbox.geojson.Point import com.mapbox.maps.CameraOptions import com.mapbox.maps.EdgeInsets -import com.mapbox.maps.MapboxExperimental import com.mapbox.maps.extension.androidauto.MapboxCarMapObserver import com.mapbox.maps.extension.androidauto.MapboxCarMapSurface import com.mapbox.maps.plugin.animation.camera @@ -20,7 +19,6 @@ import com.mapbox.navigation.ui.maps.camera.NavigationCamera import com.mapbox.navigation.ui.maps.camera.data.MapboxNavigationViewportDataSource import com.mapbox.navigation.ui.maps.camera.transition.NavigationCameraTransitionOptions -@OptIn(MapboxExperimental::class) class CarLocationsOverviewCamera( private val initialCameraOptions: CameraOptions = CameraOptions.Builder() .zoom(DEFAULT_INITIAL_ZOOM) diff --git a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/CarNavigationCamera.kt b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/CarNavigationCamera.kt index 08bd36c773d..57bc6d2b908 100644 --- a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/CarNavigationCamera.kt +++ b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/CarNavigationCamera.kt @@ -9,7 +9,6 @@ import com.mapbox.androidauto.routes.CarRoutesProvider import com.mapbox.androidauto.routes.NavigationCarRoutesProvider import com.mapbox.maps.CameraOptions import com.mapbox.maps.EdgeInsets -import com.mapbox.maps.MapboxExperimental import com.mapbox.maps.ScreenCoordinate import com.mapbox.maps.dsl.cameraOptions import com.mapbox.maps.extension.androidauto.DefaultMapboxCarMapGestureHandler @@ -45,7 +44,6 @@ private const val DEFAULT_INITIAL_ZOOM = 15.0 * @param carRoutesProvider provides routes that can adjust the camera view port * @param initialCameraOptions set camera options when the camera is attached */ -@OptIn(MapboxExperimental::class) @UiThread class CarNavigationCamera( private val initialCarCameraMode: CarCameraMode, diff --git a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/CarNavigationInfoProvider.kt b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/CarNavigationInfoProvider.kt index 5a01f0eaad6..fac26df6747 100644 --- a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/CarNavigationInfoProvider.kt +++ b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/CarNavigationInfoProvider.kt @@ -9,7 +9,6 @@ import androidx.lifecycle.lifecycleScope import com.mapbox.androidauto.internal.extensions.mapboxNavigationForward import com.mapbox.androidauto.internal.logAndroidAuto import com.mapbox.bindgen.Expected -import com.mapbox.maps.MapboxExperimental import com.mapbox.maps.extension.androidauto.MapboxCarMapObserver import com.mapbox.maps.extension.androidauto.MapboxCarMapSurface import com.mapbox.navigation.base.trip.model.RouteProgress @@ -33,7 +32,6 @@ import kotlinx.coroutines.flow.onEach * * @see [ActiveGuidanceScreen] for an example. */ -@MapboxExperimental class CarNavigationInfoProvider @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) internal constructor( diff --git a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/MapUserStyleObserver.kt b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/MapUserStyleObserver.kt index 98ed57d4742..438cfe246fb 100644 --- a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/MapUserStyleObserver.kt +++ b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/MapUserStyleObserver.kt @@ -1,11 +1,9 @@ package com.mapbox.androidauto.navigation -import com.mapbox.maps.MapboxExperimental import com.mapbox.maps.extension.androidauto.MapboxCarMapObserver import com.mapbox.maps.extension.androidauto.MapboxCarMapSurface import com.mapbox.maps.plugin.delegates.listeners.OnStyleLoadedListener -@OptIn(MapboxExperimental::class) class MapUserStyleObserver : MapboxCarMapObserver { var userId: String = "" var styleId: String = "" diff --git a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/roadlabel/RoadLabelRenderer.kt b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/roadlabel/CarRoadLabelBitmapRenderer.kt similarity index 96% rename from libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/roadlabel/RoadLabelRenderer.kt rename to libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/roadlabel/CarRoadLabelBitmapRenderer.kt index ca8fc9c319b..4a4785337a7 100644 --- a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/roadlabel/RoadLabelRenderer.kt +++ b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/roadlabel/CarRoadLabelBitmapRenderer.kt @@ -12,7 +12,7 @@ import kotlin.math.roundToInt /** * This class will a road name and create a bitmap that fits the text. */ -class RoadLabelRenderer { +internal class CarRoadLabelBitmapRenderer { /** * Render [road] and [shields] to a [Bitmap] @@ -21,7 +21,7 @@ class RoadLabelRenderer { resources: Resources, road: List, shields: List, - options: RoadLabelOptions = RoadLabelOptions.default + options: CarRoadLabelOptions = CarRoadLabelOptions.default ): Bitmap? { if (road.isEmpty()) return null textPaint.color = options.textColor @@ -83,7 +83,7 @@ class RoadLabelRenderer { return Rect().also { textPaint.getTextBounds(text, 0, text.length, it) } } - private fun Canvas.drawLabelBackground(options: RoadLabelOptions) = apply { + private fun Canvas.drawLabelBackground(options: CarRoadLabelOptions) = apply { val cardWidth = width - LABEL_PADDING val cardHeight = height - LABEL_PADDING diff --git a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/roadlabel/RoadLabelOptions.kt b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/roadlabel/CarRoadLabelOptions.kt similarity index 91% rename from libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/roadlabel/RoadLabelOptions.kt rename to libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/roadlabel/CarRoadLabelOptions.kt index 1a4d5081b43..e8c9d135a28 100644 --- a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/roadlabel/RoadLabelOptions.kt +++ b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/roadlabel/CarRoadLabelOptions.kt @@ -6,7 +6,7 @@ import androidx.annotation.ColorInt /** * Modify the look and feel of the road label. */ -class RoadLabelOptions private constructor( +class CarRoadLabelOptions private constructor( @ColorInt val backgroundColor: Int, @ColorInt @@ -28,7 +28,7 @@ class RoadLabelOptions private constructor( } /** - * Build a new [RoadLabelOptions] + * Build a new [CarRoadLabelOptions] */ class Builder { private var backgroundColor: Int = DEFAULT_BACKGROUND_COLOR @@ -66,10 +66,10 @@ class RoadLabelOptions private constructor( } /** - * Build the [RoadLabelOptions] + * Build the [CarRoadLabelOptions] */ - fun build(): RoadLabelOptions { - return RoadLabelOptions( + fun build(): CarRoadLabelOptions { + return CarRoadLabelOptions( backgroundColor = backgroundColor, roundedLabelColor = roundedLabelColor, shadowColor = shadowColor, diff --git a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/roadlabel/RoadLabelSurfaceLayer.kt b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/roadlabel/CarRoadLabelRenderer.kt similarity index 86% rename from libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/roadlabel/RoadLabelSurfaceLayer.kt rename to libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/roadlabel/CarRoadLabelRenderer.kt index 99d5315f0d9..69d981b31db 100644 --- a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/roadlabel/RoadLabelSurfaceLayer.kt +++ b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/roadlabel/CarRoadLabelRenderer.kt @@ -30,13 +30,13 @@ import com.mapbox.navigation.ui.shield.model.RouteShield * removing the listener with [MapboxCarMap.unregisterObserver]. */ @OptIn(MapboxExperimental::class) -class RoadLabelSurfaceLayer : MapboxCarMapObserver { +class CarRoadLabelRenderer : MapboxCarMapObserver { - private val roadLabelRenderer = RoadLabelRenderer() + private val roadLabelBitmapRenderer = CarRoadLabelBitmapRenderer() private val routeShieldApi = MapboxRouteShieldApi() private val mapUserStyleObserver = MapUserStyleObserver() private var styleLoadedListener: OnStyleLoadedListener? = null - private var roadNameObserver: RoadNameObserver? = null + private var roadNameObserver: CarRoadNameObserver? = null private var roadLabelWidget: BitmapWidget? = null override fun onAttached(mapboxCarMapSurface: MapboxCarMapSurface) { @@ -49,15 +49,16 @@ class RoadLabelSurfaceLayer : MapboxCarMapObserver { ).also { roadLabelWidget = it } mapboxCarMapSurface.mapSurface.addWidget(roadLabelWidget) val carContext = mapboxCarMapSurface.carContext - val roadNameObserver = object : RoadNameObserver(routeShieldApi, mapUserStyleObserver) { + val roadNameObserver = object : CarRoadNameObserver(routeShieldApi, mapUserStyleObserver) { override fun onRoadUpdate(road: List, shields: List) { val options = roadLabelOptions(carContext) - val bitmap = roadLabelRenderer.render(carContext.resources, road, shields, options) + val bitmap = roadLabelBitmapRenderer + .render(carContext.resources, road, shields, options) roadLabelWidget.updateBitmap(bitmap ?: EMPTY_BITMAP) } }.also { roadNameObserver = it } styleLoadedListener = mapboxCarMapSurface.handleStyleOnAttached { - val bitmap = roadLabelRenderer.render( + val bitmap = roadLabelBitmapRenderer.render( carContext.resources, roadNameObserver.currentRoad, roadNameObserver.currentShields, @@ -87,7 +88,7 @@ class RoadLabelSurfaceLayer : MapboxCarMapObserver { roadLabelWidget?.setTranslation(translationX.toFloat(), -edgeInsets.bottom.toFloat()) } - private fun roadLabelOptions(carContext: CarContext): RoadLabelOptions = + private fun roadLabelOptions(carContext: CarContext): CarRoadLabelOptions = if (carContext.isDarkMode) { DARK_OPTIONS } else { @@ -96,13 +97,13 @@ class RoadLabelSurfaceLayer : MapboxCarMapObserver { private companion object { - private val DARK_OPTIONS = RoadLabelOptions.Builder() + private val DARK_OPTIONS = CarRoadLabelOptions.Builder() .shadowColor(null) .roundedLabelColor(Color.BLACK) .textColor(Color.WHITE) .build() - private val LIGHT_OPTIONS = RoadLabelOptions.Builder() + private val LIGHT_OPTIONS = CarRoadLabelOptions.Builder() .roundedLabelColor(Color.WHITE) .textColor(Color.BLACK) .build() diff --git a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/roadlabel/RoadNameObserver.kt b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/roadlabel/CarRoadNameObserver.kt similarity index 98% rename from libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/roadlabel/RoadNameObserver.kt rename to libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/roadlabel/CarRoadNameObserver.kt index 2a1d8eac745..b933eca5153 100644 --- a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/roadlabel/RoadNameObserver.kt +++ b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/roadlabel/CarRoadNameObserver.kt @@ -11,7 +11,7 @@ import com.mapbox.navigation.ui.shield.api.MapboxRouteShieldApi import com.mapbox.navigation.ui.shield.model.RouteShield import com.mapbox.navigation.ui.shield.model.RouteShieldCallback -abstract class RoadNameObserver( +internal abstract class CarRoadNameObserver( private val routeShieldApi: MapboxRouteShieldApi, private val mapUserStyleObserver: MapUserStyleObserver ) : MapboxNavigationObserver { diff --git a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/speedlimit/CarSpeedLimitServices.kt b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/speedlimit/CarSpeedLimitServices.kt index b5d5c2deccd..450218dc816 100644 --- a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/speedlimit/CarSpeedLimitServices.kt +++ b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/speedlimit/CarSpeedLimitServices.kt @@ -1,11 +1,13 @@ package com.mapbox.androidauto.navigation.speedlimit +import com.mapbox.maps.MapboxExperimental import com.mapbox.navigation.base.speed.model.SpeedLimitSign /** * This class helps with unit testing. */ internal class CarSpeedLimitServices { + @OptIn(MapboxExperimental::class) fun speedLimitWidget(signFormat: SpeedLimitSign): SpeedLimitWidget = SpeedLimitWidget(signFormat) } diff --git a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/speedlimit/SpeedLimitWidget.kt b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/speedlimit/SpeedLimitWidget.kt index f23577cae2c..8c33fca5d1c 100644 --- a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/speedlimit/SpeedLimitWidget.kt +++ b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/navigation/speedlimit/SpeedLimitWidget.kt @@ -16,7 +16,7 @@ import com.mapbox.navigation.base.speed.model.SpeedLimitSign /** * Widget to display a speed limit sign on the map. */ -@OptIn(MapboxExperimental::class) +@MapboxExperimental class SpeedLimitWidget(initialSignFormat: SpeedLimitSign = SpeedLimitSign.MUTCD) : BitmapWidget( drawSpeedLimitSign(speedLimit = null, speed = 0, initialSignFormat, warn = false), WidgetPosition(WidgetPosition.Horizontal.RIGHT, WidgetPosition.Vertical.BOTTOM), diff --git a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/permissions/NeedsLocationPermissionsScreen.kt b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/permissions/NeedsLocationPermissionsScreen.kt index 0c6d71b011a..bc51593c2bc 100644 --- a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/permissions/NeedsLocationPermissionsScreen.kt +++ b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/permissions/NeedsLocationPermissionsScreen.kt @@ -10,7 +10,7 @@ import com.mapbox.androidauto.R /** * Provides instructions for accepting location permissions. */ -class NeedsLocationPermissionsScreen( +internal class NeedsLocationPermissionsScreen( carContext: CarContext ) : Screen(carContext) { override fun onGetTemplate(): Template { diff --git a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/placeslistonmap/PlacesListOnMapManager.kt b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/placeslistonmap/PlacesListOnMapManager.kt index 06babe587e7..4e574330583 100644 --- a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/placeslistonmap/PlacesListOnMapManager.kt +++ b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/placeslistonmap/PlacesListOnMapManager.kt @@ -10,7 +10,6 @@ import com.mapbox.androidauto.search.PlaceRecord import com.mapbox.geojson.Feature import com.mapbox.geojson.FeatureCollection 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.plugin.delegates.listeners.OnStyleLoadedListener @@ -26,7 +25,6 @@ import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.launch import kotlinx.coroutines.withContext -@OptIn(MapboxExperimental::class) class PlacesListOnMapManager( private val placesListOnMapProvider: PlacesListOnMapProvider, ) : MapboxCarMapObserver { diff --git a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/placeslistonmap/PlacesListOnMapScreen.kt b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/placeslistonmap/PlacesListOnMapScreen.kt index 0f4e8be07f7..65e953fae44 100644 --- a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/placeslistonmap/PlacesListOnMapScreen.kt +++ b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/placeslistonmap/PlacesListOnMapScreen.kt @@ -22,14 +22,12 @@ import com.mapbox.androidauto.screenmanager.MapboxScreen import com.mapbox.androidauto.screenmanager.MapboxScreenManager import com.mapbox.androidauto.search.PlaceRecord import com.mapbox.androidauto.search.SearchCarContext -import com.mapbox.maps.MapboxExperimental import com.mapbox.navigation.base.route.NavigationRoute import com.mapbox.navigation.core.lifecycle.MapboxNavigationApp import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.filterNotNull import kotlinx.coroutines.launch -@OptIn(MapboxExperimental::class) internal class PlacesListOnMapScreen @UiThread constructor( private val searchCarContext: SearchCarContext, placesProvider: PlacesListOnMapProvider, diff --git a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/preview/CarRouteLine.kt b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/preview/CarRouteLineRenderer.kt similarity index 98% rename from libnavui-androidauto/src/main/java/com/mapbox/androidauto/preview/CarRouteLine.kt rename to libnavui-androidauto/src/main/java/com/mapbox/androidauto/preview/CarRouteLineRenderer.kt index 7c22da7c9f5..5999b4e7ec7 100644 --- a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/preview/CarRouteLine.kt +++ b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/preview/CarRouteLineRenderer.kt @@ -7,7 +7,6 @@ import com.mapbox.androidauto.internal.extensions.mapboxNavigationForward import com.mapbox.androidauto.internal.logAndroidAuto import com.mapbox.androidauto.routes.CarRoutesProvider import com.mapbox.androidauto.routes.NavigationCarRoutesProvider -import com.mapbox.maps.MapboxExperimental import com.mapbox.maps.Style import com.mapbox.maps.extension.androidauto.MapboxCarMapObserver import com.mapbox.maps.extension.androidauto.MapboxCarMapSurface @@ -41,8 +40,7 @@ import kotlinx.coroutines.launch * * Anything for rendering the car's route line, is handled here at this point. */ -@OptIn(MapboxExperimental::class) -class CarRouteLine( +class CarRouteLineRenderer( private val carRoutesProvider: CarRoutesProvider = NavigationCarRoutesProvider() ) : MapboxCarMapObserver { diff --git a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/preview/CarRoutePreviewScreen.kt b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/preview/CarRoutePreviewScreen.kt index 236a8630fd7..cdf6251cc66 100644 --- a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/preview/CarRoutePreviewScreen.kt +++ b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/preview/CarRoutePreviewScreen.kt @@ -31,7 +31,6 @@ import com.mapbox.androidauto.screenmanager.MapboxScreenManager import com.mapbox.androidauto.search.PlaceRecord import com.mapbox.geojson.Feature 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.plugin.delegates.listeners.OnStyleLoadedListener @@ -42,7 +41,6 @@ import com.mapbox.navigation.core.lifecycle.MapboxNavigationApp * After a destination has been selected. This view previews the route and lets * you select alternatives. From here, you can start turn-by-turn navigation. */ -@OptIn(MapboxExperimental::class) internal class CarRoutePreviewScreen @UiThread constructor( private val mapboxCarContext: MapboxCarContext, private val placeRecord: PlaceRecord, @@ -52,7 +50,7 @@ internal class CarRoutePreviewScreen @UiThread constructor( private val carRoutesProvider = PreviewCarRoutesProvider(navigationRoutes) private var selectedIndex = 0 - private val carRouteLine = CarRouteLine(carRoutesProvider) + private val carRouteLineRenderer = CarRouteLineRenderer(carRoutesProvider) private val carLocationRenderer = CarLocationRenderer() private val carSpeedLimitRenderer = CarSpeedLimitRenderer(mapboxCarContext) private val carNavigationCamera = CarNavigationCamera( @@ -106,7 +104,7 @@ internal class CarRoutePreviewScreen @UiThread constructor( mapboxCarContext.mapboxCarMap.registerObserver(carLocationRenderer) mapboxCarContext.mapboxCarMap.registerObserver(carSpeedLimitRenderer) mapboxCarContext.mapboxCarMap.registerObserver(carNavigationCamera) - mapboxCarContext.mapboxCarMap.registerObserver(carRouteLine) + mapboxCarContext.mapboxCarMap.registerObserver(carRouteLineRenderer) mapboxCarContext.mapboxCarMap.registerObserver(surfaceListener) } @@ -115,7 +113,7 @@ internal class CarRoutePreviewScreen @UiThread constructor( mapboxCarContext.mapboxCarMap.unregisterObserver(carLocationRenderer) mapboxCarContext.mapboxCarMap.unregisterObserver(carSpeedLimitRenderer) mapboxCarContext.mapboxCarMap.unregisterObserver(carNavigationCamera) - mapboxCarContext.mapboxCarMap.unregisterObserver(carRouteLine) + mapboxCarContext.mapboxCarMap.unregisterObserver(carRouteLineRenderer) mapboxCarContext.mapboxCarMap.unregisterObserver(surfaceListener) } }) diff --git a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/preview/PreviewCarRoutesProvider.kt b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/preview/PreviewCarRoutesProvider.kt index 0099d00d029..de876d9c1a5 100644 --- a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/preview/PreviewCarRoutesProvider.kt +++ b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/preview/PreviewCarRoutesProvider.kt @@ -8,7 +8,7 @@ import kotlinx.coroutines.flow.StateFlow /** * Gives the [CarRoutePreviewScreen] the ability to control the selected route rendered - * by the [CarRouteLine] and [CarNavigationCamera]. + * by the [CarRouteLineRenderer] and [CarNavigationCamera]. */ class PreviewCarRoutesProvider(routes: List) : CarRoutesProvider { diff --git a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/routes/CarRoutesProvider.kt b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/routes/CarRoutesProvider.kt index 3f3e77334aa..edf706e5f6e 100644 --- a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/routes/CarRoutesProvider.kt +++ b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/routes/CarRoutesProvider.kt @@ -1,14 +1,14 @@ package com.mapbox.androidauto.routes import com.mapbox.androidauto.navigation.CarNavigationCamera -import com.mapbox.androidauto.preview.CarRouteLine +import com.mapbox.androidauto.preview.CarRouteLineRenderer import com.mapbox.navigation.base.route.NavigationRoute import kotlinx.coroutines.flow.Flow /** * Gives you the ability to provide routes to different car route map components. * - * @see [CarRouteLine] + * @see [CarRouteLineRenderer] * @see [CarNavigationCamera] */ interface CarRoutesProvider { diff --git a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/search/PlaceRecordMapper.kt b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/search/PlaceRecordMapper.kt index 9e2c88ef6da..df7222698d8 100644 --- a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/search/PlaceRecordMapper.kt +++ b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/search/PlaceRecordMapper.kt @@ -1,7 +1,6 @@ package com.mapbox.androidauto.search import com.mapbox.api.geocoding.v5.models.CarmenFeature -import com.mapbox.navigation.utils.internal.ifNonNull import com.mapbox.search.record.FavoriteRecord import com.mapbox.search.result.SearchAddress import com.mapbox.search.result.SearchResult @@ -43,4 +42,11 @@ internal object PlaceRecordMapper { categories = carmenFeature.placeType() ?: emptyList() ) } + + private inline fun ifNonNull(r1: R1?, r2: R2?, func: (R1, R2) -> T): T? = + if (r1 != null && r2 != null) { + func(r1, r2) + } else { + null + } } diff --git a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/search/PlaceSearchScreen.kt b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/search/PlaceSearchScreen.kt index 6db977071b9..0a3fa380c00 100644 --- a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/search/PlaceSearchScreen.kt +++ b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/search/PlaceSearchScreen.kt @@ -10,6 +10,8 @@ import androidx.car.app.model.ItemList import androidx.car.app.model.Row import androidx.car.app.model.SearchTemplate import androidx.car.app.model.Template +import androidx.lifecycle.DefaultLifecycleObserver +import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.lifecycleScope import com.mapbox.androidauto.R import com.mapbox.androidauto.feedback.ui.CarFeedbackAction @@ -20,16 +22,14 @@ import com.mapbox.androidauto.navigation.CarDistanceFormatter import com.mapbox.androidauto.preview.CarRoutePreviewRequestCallback import com.mapbox.androidauto.screenmanager.MapboxScreen import com.mapbox.androidauto.screenmanager.MapboxScreenManager -import com.mapbox.navigation.base.ExperimentalPreviewMapboxNavigationAPI import com.mapbox.navigation.base.route.NavigationRoute -import com.mapbox.navigation.core.internal.extensions.attachCreated +import com.mapbox.navigation.core.lifecycle.MapboxNavigationApp import com.mapbox.search.result.SearchSuggestion import kotlinx.coroutines.launch /** * This screen allows the user to search for a destination. */ -@OptIn(ExperimentalPreviewMapboxNavigationAPI::class) internal class PlaceSearchScreen @UiThread constructor( private val searchCarContext: SearchCarContext, ) : Screen(searchCarContext.carContext) { @@ -64,7 +64,17 @@ internal class PlaceSearchScreen @UiThread constructor( addBackPressedHandler { searchCarContext.mapboxScreenManager.goBack() } - attachCreated(searchCarContext.routePreviewRequest, searchCarContext.carPlaceSearch) + lifecycle.addObserver(object : DefaultLifecycleObserver { + override fun onCreate(owner: LifecycleOwner) { + MapboxNavigationApp.registerObserver(searchCarContext.routePreviewRequest) + MapboxNavigationApp.registerObserver(searchCarContext.carPlaceSearch) + } + + override fun onDestroy(owner: LifecycleOwner) { + MapboxNavigationApp.unregisterObserver(searchCarContext.routePreviewRequest) + MapboxNavigationApp.unregisterObserver(searchCarContext.carPlaceSearch) + } + }) } override fun onGetTemplate(): Template { diff --git a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/settings/CarSettingsScreen.kt b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/settings/CarSettingsScreen.kt index 7d43a0091da..8969978f135 100644 --- a/libnavui-androidauto/src/main/java/com/mapbox/androidauto/settings/CarSettingsScreen.kt +++ b/libnavui-androidauto/src/main/java/com/mapbox/androidauto/settings/CarSettingsScreen.kt @@ -14,7 +14,7 @@ import com.mapbox.androidauto.internal.extensions.addBackPressedHandler /** * Handle the android auto car app settings. */ -class CarSettingsScreen( +internal class CarSettingsScreen( private val mapboxCarContext: MapboxCarContext ) : Screen(mapboxCarContext.carContext) { diff --git a/libnavui-androidauto/src/test/java/com/mapbox/androidauto/MapboxCarContextTest.kt b/libnavui-androidauto/src/test/java/com/mapbox/androidauto/MapboxCarContextTest.kt index 3f78f765073..da539d1d7c6 100644 --- a/libnavui-androidauto/src/test/java/com/mapbox/androidauto/MapboxCarContextTest.kt +++ b/libnavui-androidauto/src/test/java/com/mapbox/androidauto/MapboxCarContextTest.kt @@ -5,14 +5,12 @@ import androidx.car.app.ScreenManager import androidx.car.app.Session import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleRegistry -import com.mapbox.maps.MapboxExperimental import com.mapbox.maps.extension.androidauto.MapboxCarMap import io.mockk.every import io.mockk.mockk import org.junit.Before import org.junit.Test -@OptIn(MapboxExperimental::class) class MapboxCarContextTest { private val session: Session = mockk() diff --git a/libnavui-androidauto/src/test/java/com/mapbox/androidauto/map/MapboxCarMapLoaderTest.kt b/libnavui-androidauto/src/test/java/com/mapbox/androidauto/map/MapboxCarMapLoaderTest.kt index 7a3455566e2..ce2f3f4a3c7 100644 --- a/libnavui-androidauto/src/test/java/com/mapbox/androidauto/map/MapboxCarMapLoaderTest.kt +++ b/libnavui-androidauto/src/test/java/com/mapbox/androidauto/map/MapboxCarMapLoaderTest.kt @@ -1,6 +1,5 @@ package com.mapbox.androidauto.map -import com.mapbox.maps.MapboxExperimental import com.mapbox.maps.Style import com.mapbox.maps.extension.androidauto.MapboxCarMapSurface import com.mapbox.maps.extension.style.StyleContract @@ -14,7 +13,6 @@ import org.junit.Assert.assertEquals import org.junit.Rule import org.junit.Test -@OptIn(MapboxExperimental::class) class MapboxCarMapLoaderTest { @get:Rule diff --git a/libnavui-androidauto/src/test/java/com/mapbox/androidauto/navigation/CarLocationsOverviewCameraTest.kt b/libnavui-androidauto/src/test/java/com/mapbox/androidauto/navigation/CarLocationsOverviewCameraTest.kt index d917b2184e2..fcd761be4a8 100644 --- a/libnavui-androidauto/src/test/java/com/mapbox/androidauto/navigation/CarLocationsOverviewCameraTest.kt +++ b/libnavui-androidauto/src/test/java/com/mapbox/androidauto/navigation/CarLocationsOverviewCameraTest.kt @@ -4,7 +4,6 @@ import com.mapbox.androidauto.testing.CarAppTestRule import com.mapbox.androidauto.testing.MapboxRobolectricTestRunner import com.mapbox.maps.CameraOptions import com.mapbox.maps.MapSurface -import com.mapbox.maps.MapboxExperimental import com.mapbox.maps.MapboxMap import com.mapbox.maps.extension.androidauto.MapboxCarMapSurface import com.mapbox.maps.plugin.animation.CameraAnimationsPlugin @@ -19,7 +18,6 @@ import org.junit.Assert.assertNull import org.junit.Rule import org.junit.Test -@OptIn(MapboxExperimental::class) class CarLocationsOverviewCameraTest : MapboxRobolectricTestRunner() { @get:Rule diff --git a/libnavui-androidauto/src/test/java/com/mapbox/androidauto/navigation/CarNavigationInfoProviderTest.kt b/libnavui-androidauto/src/test/java/com/mapbox/androidauto/navigation/CarNavigationInfoProviderTest.kt index 68a9a6503bc..c9bfe9a2d84 100644 --- a/libnavui-androidauto/src/test/java/com/mapbox/androidauto/navigation/CarNavigationInfoProviderTest.kt +++ b/libnavui-androidauto/src/test/java/com/mapbox/androidauto/navigation/CarNavigationInfoProviderTest.kt @@ -4,7 +4,6 @@ import androidx.car.app.Screen import androidx.car.app.navigation.model.NavigationTemplate import androidx.lifecycle.testing.TestLifecycleOwner import com.mapbox.androidauto.testing.CarAppTestRule -import com.mapbox.maps.MapboxExperimental import com.mapbox.maps.extension.androidauto.MapboxCarMapSurface import com.mapbox.navigation.core.MapboxNavigation import com.mapbox.navigation.core.trip.session.RouteProgressObserver @@ -26,7 +25,6 @@ import org.junit.Test * Observe [MapboxCarMapSurface] and [MapboxNavigation] properties that create the * [NavigationTemplate.NavigationInfo]. */ -@OptIn(MapboxExperimental::class) class CarNavigationInfoProviderTest { @get:Rule