Skip to content

Commit 18e79f5

Browse files
authored
Make the MapboxCarContext forwards compatible (#6478)
1 parent e78deb7 commit 18e79f5

File tree

42 files changed

+816
-267
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+816
-267
lines changed

libnavui-androidauto/CHANGELOG.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,13 @@ Mapbox welcomes participation and contributions from everyone.
44

55
## Unreleased
66
#### Features
7+
- Added a new `MapboxCarOptions` that contains mutable options for `MapboxCarContext`. [#6478](https://github.com/mapbox/mapbox-navigation-android/pull/6478)
8+
- Added a new `MapboxCarOptionsCustomization` that allows you to change the `MapboxCarOptions`. [#6478](https://github.com/mapbox/mapbox-navigation-android/pull/6478)
9+
710
#### Bug fixes and improvements
11+
- Removed options from the `MapboxCarContext` constructor so that it can be compatible with future changes. [#6478](https://github.com/mapbox/mapbox-navigation-android/pull/6478)
12+
- Deleted `RoutePreviewCarContext` in favor of `MapboxCarContext`. [#6478](https://github.com/mapbox/mapbox-navigation-android/pull/6478)
13+
- Renamed `CarSettingsStorage` to `MapboxCarStorage`. [#6478](https://github.com/mapbox/mapbox-navigation-android/pull/6478)
814

915
## androidauto-v0.14.0 - October 13, 2022
1016
### Changelog
@@ -15,7 +21,7 @@ Mapbox welcomes participation and contributions from everyone.
1521
- Added a default `MapboxScreenGraph` that prepares an end to end navigation experience. [#6429](https://github.com/mapbox/mapbox-navigation-android/pull/6429)
1622

1723
#### Bug fixes and improvements
18-
- Delete `CarAppState` in favor of a `MapboxScreenEvent` which can be accessed through `MapboxScreenManager.screenEvent`. [#6429](https://github.com/mapbox/mapbox-navigation-android/pull/6429)
24+
- Deleted `CarAppState` in favor of a `MapboxScreenEvent` which can be accessed through `MapboxScreenManager.screenEvent`. [#6429](https://github.com/mapbox/mapbox-navigation-android/pull/6429)
1925
- Replaced all public implementations of `Screen` with backwards compatible implementations of `MapboxScreenFactory` and `MapboxScreen`. [#6429](https://github.com/mapbox/mapbox-navigation-android/pull/6429)
2026
- Renamed `MainCarContext` to `MapboxCarContext`. [#6429](https://github.com/mapbox/mapbox-navigation-android/pull/6429)
2127
- Renamed `MainCarScreen` to `FreeDriveCarScreen`. [#6429](https://github.com/mapbox/mapbox-navigation-android/pull/6429)

libnavui-androidauto/api/current.txt

Lines changed: 66 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ package com.mapbox.androidauto {
88
}
99

1010
public final class MapboxCarNavigationManager implements com.mapbox.navigation.core.lifecycle.MapboxNavigationObserver {
11-
ctor public MapboxCarNavigationManager(androidx.car.app.CarContext carContext);
1211
method public kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> getAutoDriveEnabledFlow();
1312
method public void onAttached(com.mapbox.navigation.core.MapboxNavigation mapboxNavigation);
1413
method public void onDetached(com.mapbox.navigation.core.MapboxNavigation mapboxNavigation);
@@ -43,30 +42,63 @@ package com.mapbox.androidauto.car {
4342
}
4443

4544
public final class MapboxCarContext {
46-
ctor public MapboxCarContext(androidx.car.app.CarContext carContext, androidx.lifecycle.LifecycleOwner lifecycleOwner, com.mapbox.maps.extension.androidauto.MapboxCarMap mapboxCarMap, com.mapbox.androidauto.car.feedback.core.CarFeedbackPollProvider feedbackPollProvider = com.mapbox.androidauto.car.feedback.core.CarFeedbackPollProvider(), com.mapbox.androidauto.car.feedback.core.CarFeedbackOptions carFeedbackOptions = CarFeedbackOptions.<init>().build(), com.mapbox.androidauto.car.preview.CarRouteOptionsInterceptor routeOptionsInterceptor = CarRouteOptionsInterceptor({ var it: com.mapbox.api.directions.v5.models.RouteOptions.Builder ->
47-
48-
return it
49-
}), com.mapbox.androidauto.car.search.CarPlaceSearchOptions carPlaceSearchOptions = CarPlaceSearchOptions.<init>().build());
45+
ctor public MapboxCarContext(androidx.lifecycle.Lifecycle lifecycle, com.mapbox.maps.extension.androidauto.MapboxCarMap mapboxCarMap);
46+
method public com.mapbox.androidauto.car.MapboxCarContext customize(kotlin.jvm.functions.Function1<? super com.mapbox.androidauto.car.MapboxCarOptionsCustomization,kotlin.Unit> action);
5047
method public androidx.car.app.CarContext getCarContext();
51-
method public com.mapbox.androidauto.car.feedback.core.CarFeedbackOptions getCarFeedbackOptions();
52-
method public com.mapbox.androidauto.car.search.CarPlaceSearchOptions getCarPlaceSearchOptions();
53-
method public com.mapbox.androidauto.car.preview.CarRoutePreviewRequest getCarRoutePreviewRequest();
54-
method public com.mapbox.androidauto.car.settings.CarSettingsStorage getCarSettingsStorage();
55-
method public com.mapbox.androidauto.car.feedback.core.CarFeedbackPollProvider getFeedbackPollProvider();
56-
method public androidx.lifecycle.LifecycleOwner getLifecycleOwner();
48+
method public androidx.lifecycle.Lifecycle getLifecycle();
5749
method public com.mapbox.maps.extension.androidauto.MapboxCarMap getMapboxCarMap();
50+
method public com.mapbox.androidauto.car.settings.MapboxCarStorage getMapboxCarStorage();
51+
method public com.mapbox.androidauto.MapboxCarNavigationManager getMapboxNavigationManager();
5852
method public com.mapbox.androidauto.screenmanager.MapboxScreenManager getMapboxScreenManager();
59-
method public kotlinx.coroutines.flow.MutableStateFlow<com.mapbox.androidauto.car.navigation.speedlimit.SpeedLimitOptions> getSpeedLimitOptions();
53+
method public com.mapbox.androidauto.car.MapboxCarOptions getOptions();
54+
method public com.mapbox.androidauto.car.preview.CarRoutePreviewRequest getRoutePreviewRequest();
6055
property public final androidx.car.app.CarContext carContext;
56+
property public final androidx.lifecycle.Lifecycle lifecycle;
57+
property public final com.mapbox.maps.extension.androidauto.MapboxCarMap mapboxCarMap;
58+
property public final com.mapbox.androidauto.car.settings.MapboxCarStorage mapboxCarStorage;
59+
property public final com.mapbox.androidauto.MapboxCarNavigationManager mapboxNavigationManager;
60+
property public final com.mapbox.androidauto.screenmanager.MapboxScreenManager mapboxScreenManager;
61+
property public final com.mapbox.androidauto.car.MapboxCarOptions options;
62+
property public final com.mapbox.androidauto.car.preview.CarRoutePreviewRequest routePreviewRequest;
63+
}
64+
65+
public final class MapboxCarOptions {
66+
ctor public MapboxCarOptions();
67+
method public void applyCustomization(com.mapbox.androidauto.car.MapboxCarOptionsCustomization customization);
68+
method public com.mapbox.androidauto.car.feedback.core.CarFeedbackOptions getCarFeedbackOptions();
69+
method public com.mapbox.androidauto.car.search.CarPlaceSearchOptions getCarPlaceSearchOptions();
70+
method public com.mapbox.androidauto.car.feedback.core.CarFeedbackPollProvider getFeedbackPollProvider();
71+
method public com.mapbox.androidauto.notification.MapboxCarNotificationOptions getNotificationOptions();
72+
method public com.mapbox.androidauto.car.preview.CarRouteOptionsInterceptor getRouteOptionsInterceptor();
73+
method public kotlinx.coroutines.flow.StateFlow<com.mapbox.androidauto.car.navigation.speedlimit.SpeedLimitOptions> getSpeedLimitOptions();
6174
property public final com.mapbox.androidauto.car.feedback.core.CarFeedbackOptions carFeedbackOptions;
6275
property public final com.mapbox.androidauto.car.search.CarPlaceSearchOptions carPlaceSearchOptions;
63-
property public final com.mapbox.androidauto.car.preview.CarRoutePreviewRequest carRoutePreviewRequest;
64-
property public final com.mapbox.androidauto.car.settings.CarSettingsStorage carSettingsStorage;
6576
property public final com.mapbox.androidauto.car.feedback.core.CarFeedbackPollProvider feedbackPollProvider;
66-
property public final androidx.lifecycle.LifecycleOwner lifecycleOwner;
67-
property public final com.mapbox.maps.extension.androidauto.MapboxCarMap mapboxCarMap;
68-
property public final com.mapbox.androidauto.screenmanager.MapboxScreenManager mapboxScreenManager;
69-
property public final kotlinx.coroutines.flow.MutableStateFlow<com.mapbox.androidauto.car.navigation.speedlimit.SpeedLimitOptions> speedLimitOptions;
77+
property public final com.mapbox.androidauto.notification.MapboxCarNotificationOptions notificationOptions;
78+
property public final com.mapbox.androidauto.car.preview.CarRouteOptionsInterceptor routeOptionsInterceptor;
79+
property public final kotlinx.coroutines.flow.StateFlow<com.mapbox.androidauto.car.navigation.speedlimit.SpeedLimitOptions> speedLimitOptions;
80+
}
81+
82+
public final class MapboxCarOptionsCustomization {
83+
ctor public MapboxCarOptionsCustomization();
84+
method public com.mapbox.androidauto.car.feedback.core.CarFeedbackOptions? getCarFeedbackOptions();
85+
method public com.mapbox.androidauto.car.feedback.core.CarFeedbackPollProvider? getFeedbackPollProvider();
86+
method public com.mapbox.androidauto.notification.MapboxCarNotificationOptions? getNotificationOptions();
87+
method public com.mapbox.androidauto.car.search.CarPlaceSearchOptions? getPlaceSearchOptions();
88+
method public com.mapbox.androidauto.car.preview.CarRouteOptionsInterceptor? getRouteOptionsInterceptor();
89+
method public com.mapbox.androidauto.car.navigation.speedlimit.SpeedLimitOptions? getSpeedLimitOptions();
90+
method public void setCarFeedbackOptions(com.mapbox.androidauto.car.feedback.core.CarFeedbackOptions?);
91+
method public void setFeedbackPollProvider(com.mapbox.androidauto.car.feedback.core.CarFeedbackPollProvider?);
92+
method public void setNotificationOptions(com.mapbox.androidauto.notification.MapboxCarNotificationOptions?);
93+
method public void setPlaceSearchOptions(com.mapbox.androidauto.car.search.CarPlaceSearchOptions?);
94+
method public void setRouteOptionsInterceptor(com.mapbox.androidauto.car.preview.CarRouteOptionsInterceptor?);
95+
method public void setSpeedLimitOptions(com.mapbox.androidauto.car.navigation.speedlimit.SpeedLimitOptions?);
96+
property public final com.mapbox.androidauto.car.feedback.core.CarFeedbackOptions? carFeedbackOptions;
97+
property public final com.mapbox.androidauto.car.feedback.core.CarFeedbackPollProvider? feedbackPollProvider;
98+
property public final com.mapbox.androidauto.notification.MapboxCarNotificationOptions? notificationOptions;
99+
property public final com.mapbox.androidauto.car.search.CarPlaceSearchOptions? placeSearchOptions;
100+
property public final com.mapbox.androidauto.car.preview.CarRouteOptionsInterceptor? routeOptionsInterceptor;
101+
property public final com.mapbox.androidauto.car.navigation.speedlimit.SpeedLimitOptions? speedLimitOptions;
70102
}
71103

72104
}
@@ -566,19 +598,6 @@ package com.mapbox.androidauto.car.preview {
566598
property public kotlinx.coroutines.flow.StateFlow<java.util.List<com.mapbox.navigation.base.route.NavigationRoute>> navigationRoutes;
567599
}
568600

569-
public final class RoutePreviewCarContext {
570-
method public com.mapbox.androidauto.car.MapboxCarContext component1();
571-
method public com.mapbox.androidauto.car.preview.RoutePreviewCarContext copy(com.mapbox.androidauto.car.MapboxCarContext mapboxCarContext);
572-
method public androidx.car.app.CarContext getCarContext();
573-
method public com.mapbox.androidauto.car.MapboxCarContext getMapboxCarContext();
574-
method public com.mapbox.maps.extension.androidauto.MapboxCarMap getMapboxCarMap();
575-
method public com.mapbox.androidauto.screenmanager.MapboxScreenManager getMapboxScreenManager();
576-
property public final androidx.car.app.CarContext carContext;
577-
property public final com.mapbox.androidauto.car.MapboxCarContext mapboxCarContext;
578-
property public final com.mapbox.maps.extension.androidauto.MapboxCarMap mapboxCarMap;
579-
property public final com.mapbox.androidauto.screenmanager.MapboxScreenManager mapboxScreenManager;
580-
}
581-
582601
}
583602

584603
package com.mapbox.androidauto.car.routes {
@@ -640,15 +659,14 @@ package com.mapbox.androidauto.car.settings {
640659
method public androidx.car.app.model.Template onGetTemplate();
641660
}
642661

643-
public final class CarSettingsStorage {
644-
ctor public CarSettingsStorage(androidx.car.app.CarContext carContext);
662+
public final class MapboxCarStorage {
645663
method public androidx.car.app.CarContext getCarContext();
646664
method public boolean readSharedPref(String key, boolean defaultValue);
647665
method public void writeSharedPref(String key, boolean value);
648666
property public final androidx.car.app.CarContext carContext;
649667
}
650668

651-
public final class CarSettingsStorageKt {
669+
public final class MapboxCarStorageKt {
652670
}
653671

654672
}
@@ -706,12 +724,23 @@ package com.mapbox.androidauto.navigation.location {
706724

707725
package com.mapbox.androidauto.notification {
708726

709-
@com.mapbox.navigation.base.ExperimentalPreviewMapboxNavigationAPI public final class CarNotificationInterceptor implements com.mapbox.navigation.core.lifecycle.MapboxNavigationObserver {
710-
ctor public CarNotificationInterceptor(android.content.Context context, Class<? extends androidx.car.app.CarAppService> carAppServiceClass);
727+
public final class MapboxCarNotification implements com.mapbox.navigation.core.lifecycle.MapboxNavigationObserver {
711728
method public void onAttached(com.mapbox.navigation.core.MapboxNavigation mapboxNavigation);
712729
method public void onDetached(com.mapbox.navigation.core.MapboxNavigation mapboxNavigation);
713730
}
714731

732+
public final class MapboxCarNotificationOptions {
733+
method public Class<? extends androidx.car.app.CarAppService>? getStartAppService();
734+
method public com.mapbox.androidauto.notification.MapboxCarNotificationOptions.Builder toBuilder();
735+
property public final Class<? extends androidx.car.app.CarAppService>? startAppService;
736+
}
737+
738+
public static final class MapboxCarNotificationOptions.Builder {
739+
ctor public MapboxCarNotificationOptions.Builder();
740+
method public com.mapbox.androidauto.notification.MapboxCarNotificationOptions build();
741+
method public com.mapbox.androidauto.notification.MapboxCarNotificationOptions.Builder startAppService(Class<? extends androidx.car.app.CarAppService>? startAppService);
742+
}
743+
715744
}
716745

717746
package com.mapbox.androidauto.screenmanager {
@@ -749,17 +778,15 @@ package com.mapbox.androidauto.screenmanager {
749778
}
750779

751780
public final class MapboxScreenGraph {
752-
method public static com.mapbox.androidauto.screenmanager.MapboxScreenManager prepareScreens(com.mapbox.androidauto.screenmanager.MapboxScreenManager, com.mapbox.androidauto.car.MapboxCarContext mapboxCarContext);
781+
method public static com.mapbox.androidauto.car.MapboxCarContext prepareScreens(com.mapbox.androidauto.car.MapboxCarContext);
753782
}
754783

755784
public final class MapboxScreenManager {
756-
ctor public MapboxScreenManager(androidx.car.app.CarContext carContext, androidx.lifecycle.LifecycleOwner lifecycleOwner);
757785
method public operator boolean contains(String key);
758786
method @UiThread public androidx.car.app.Screen createScreen(String screenKey);
759787
method public static com.mapbox.androidauto.screenmanager.MapboxScreenEvent? current();
760788
method public static kotlinx.coroutines.flow.SharedFlow<com.mapbox.androidauto.screenmanager.MapboxScreenEvent> getScreenEvent();
761789
method @UiThread @kotlin.jvm.Throws(exceptionClasses=IllegalStateException::class) public boolean goBack() throws java.lang.IllegalStateException;
762-
method @UiThread public void onDestroy();
763790
method public static void push(String key);
764791
method public com.mapbox.androidauto.screenmanager.MapboxScreenManager putAll(kotlin.Pair<java.lang.String,? extends com.mapbox.androidauto.screenmanager.MapboxScreenFactory>... pairs);
765792
method public static void replaceTop(String key);

libnavui-androidauto/src/main/java/com/mapbox/androidauto/MapboxCarNavigationManager.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import kotlinx.coroutines.flow.StateFlow
2222
* registered, the trip status of [MapboxNavigation] will be sent to the [NavigationManager].
2323
* This is needed to keep the vehicle cluster display updated.
2424
*/
25-
class MapboxCarNavigationManager(
25+
class MapboxCarNavigationManager internal constructor(
2626
carContext: CarContext
2727
) : MapboxNavigationObserver {
2828

0 commit comments

Comments
 (0)