Skip to content

Commit 3dda4f9

Browse files
Moved MapboxExtendableButton re-create logic from UIComponents to UIBinders. (#6498)
Removed MapboxExtendableButtonParams. Removed all ViewStyleCustomization.***ButtonParams fields Added ViewStyleCustomization.***ButtonStyle fields for each button Added ViewOptionsCustomization.showCompassActionButton Updated all ***ButtonBinder's to apply margins when installing button views. Re-gen Metalava file. Updated qa-test-app to showcase introduced changes. Fixed CompassButtonComponent unit test Fixed mapbox_ic_compass drawable to point north. Moved qa-test-app styles used by MapboxNavigationViewCustomizedActivity to a separate file. Added compass style override example to qa-test-app. CHANGELOG entry Updated how end marigins are applied to Route Preview and Start Nav Buttons
1 parent 0d03840 commit 3dda4f9

42 files changed

Lines changed: 752 additions & 826 deletions

File tree

Some content is hidden

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

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,15 @@ Mapbox welcomes participation and contributions from everyone.
55
## Unreleased
66
#### Features
77
#### Bug fixes and improvements
8+
- :warning: Updated `NavigationView` buttons customization to allow styling via XML styles: [#6498](https://github.com/mapbox/mapbox-navigation-android/pull/6498)
9+
- `ViewStyleCustomization.compassButtonParams` option has been replaced by `ViewStyleCustomization.compassButtonStyle`. The default style can be accessed via `ViewStyleCustomization.defaultCompassButtonStyle()` [#6498](https://github.com/mapbox/mapbox-navigation-android/pull/6498)
10+
- `ViewStyleCustomization.cameraModeButtonParams` option has been replaced by `ViewStyleCustomization.cameraModeButtonStyle`. The default style can be accessed via `ViewStyleCustomization.defaultCameraModeButtonStyle()` [#6498](https://github.com/mapbox/mapbox-navigation-android/pull/6498)
11+
- `ViewStyleCustomization.audioGuidanceButtonParams` option has been replaced by `ViewStyleCustomization.audioGuidanceButtonStyle`. The default style can be accessed via `ViewStyleCustomization.defaultAudioGuidanceButtonStyle()` [#6498](https://github.com/mapbox/mapbox-navigation-android/pull/6498)
12+
- `ViewStyleCustomization.recenterButtonParams` option has been replaced by `ViewStyleCustomization.recenterButtonStyle`. The default style can be accessed via `ViewStyleCustomization.defaultRecenterButtonStyle()` [#6498](https://github.com/mapbox/mapbox-navigation-android/pull/6498)
13+
- `ViewStyleCustomization.routePreviewButtonParams` option has been replaced by `ViewStyleCustomization.routePreviewButtonStyle`. The default style can be accessed via `ViewStyleCustomization.defaultRoutePreviewButtonStyle()` [#6498](https://github.com/mapbox/mapbox-navigation-android/pull/6498)
14+
- `ViewStyleCustomization.startNavigationButtonParams` option has been replaced by `ViewStyleCustomization.startNavigationButtonStyle`. The default style can be accessed via `ViewStyleCustomization.defaultStartNavigationButtonStyle()` [#6498](https://github.com/mapbox/mapbox-navigation-android/pull/6498)
15+
- `ViewStyleCustomization.endNavigationButtonParams` option has been replaced by `ViewStyleCustomization.endNavigationButtonStyle`. The default style can be accessed via `ViewStyleCustomization.defaultEndNavigationButtonStyle()` [#6498](https://github.com/mapbox/mapbox-navigation-android/pull/6498)
16+
- The `MapboxExtendableButtonParams` class has been removed. Any action button placement adjustments must be done via custom `ActionButtonsBinder` implementation. [#6498](https://github.com/mapbox/mapbox-navigation-android/pull/6498)
817

918
## Mapbox Navigation SDK 2.10.0-alpha.1 - 28 October, 2022
1019
### Changelog

libnavui-dropin/api/current.txt

Lines changed: 31 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,6 @@ package com.mapbox.navigation.dropin {
66
method public com.mapbox.navigation.core.lifecycle.MapboxNavigationObserver bind(android.view.ViewGroup viewGroup);
77
}
88

9-
public final class MapboxExtendableButtonParams {
10-
ctor public MapboxExtendableButtonParams(@StyleRes int style, android.widget.LinearLayout.LayoutParams layoutParams, boolean enabled = true);
11-
ctor public MapboxExtendableButtonParams(@StyleRes int style, android.widget.LinearLayout.LayoutParams layoutParams);
12-
method public boolean getEnabled();
13-
method public android.widget.LinearLayout.LayoutParams getLayoutParams();
14-
method public int getStyle();
15-
property public final boolean enabled;
16-
property public final android.widget.LinearLayout.LayoutParams layoutParams;
17-
property public final int style;
18-
}
19-
209
@UiThread @com.mapbox.navigation.base.ExperimentalPreviewMapboxNavigationAPI public final class NavigationView extends android.widget.FrameLayout implements androidx.lifecycle.LifecycleOwner {
2110
ctor public NavigationView(android.content.Context context, android.util.AttributeSet? attrs = null, String accessToken = attrs.navigationViewAccessToken(context), androidx.lifecycle.ViewModelStoreOwner viewModelStoreOwner = context.toViewModelStoreOwner());
2211
ctor public NavigationView(android.content.Context context, android.util.AttributeSet? attrs = null, String accessToken = attrs.navigationViewAccessToken(context));
@@ -157,6 +146,7 @@ package com.mapbox.navigation.dropin {
157146
method public com.mapbox.navigation.ui.maps.route.arrow.model.RouteArrowOptions? getRouteArrowOptions();
158147
method public com.mapbox.navigation.ui.maps.route.line.model.MapboxRouteLineOptions? getRouteLineOptions();
159148
method public Boolean? getShowCameraDebugInfo();
149+
method public Boolean? getShowCompassActionButton();
160150
method public Boolean? getShowInfoPanelInFreeDrive();
161151
method public Boolean? isInfoPanelHideable();
162152
method public void setDistanceFormatterOptions(com.mapbox.navigation.base.formatter.DistanceFormatterOptions?);
@@ -168,6 +158,7 @@ package com.mapbox.navigation.dropin {
168158
method public void setRouteArrowOptions(com.mapbox.navigation.ui.maps.route.arrow.model.RouteArrowOptions?);
169159
method public void setRouteLineOptions(com.mapbox.navigation.ui.maps.route.line.model.MapboxRouteLineOptions?);
170160
method public void setShowCameraDebugInfo(Boolean?);
161+
method public void setShowCompassActionButton(Boolean?);
171162
method public void setShowInfoPanelInFreeDrive(Boolean?);
172163
property public final com.mapbox.navigation.base.formatter.DistanceFormatterOptions? distanceFormatterOptions;
173164
property public final Boolean? enableMapLongClickIntercept;
@@ -178,6 +169,7 @@ package com.mapbox.navigation.dropin {
178169
property public final com.mapbox.navigation.ui.maps.route.arrow.model.RouteArrowOptions? routeArrowOptions;
179170
property public final com.mapbox.navigation.ui.maps.route.line.model.MapboxRouteLineOptions? routeLineOptions;
180171
property public final Boolean? showCameraDebugInfo;
172+
property public final Boolean? showCompassActionButton;
181173
property public final Boolean? showInfoPanelInFreeDrive;
182174
field public static final com.mapbox.navigation.dropin.ViewOptionsCustomization.Companion Companion;
183175
}
@@ -190,11 +182,11 @@ package com.mapbox.navigation.dropin {
190182
@com.mapbox.navigation.base.ExperimentalPreviewMapboxNavigationAPI public final class ViewStyleCustomization {
191183
ctor public ViewStyleCustomization();
192184
method public Integer? getArrivalTextAppearance();
193-
method public com.mapbox.navigation.dropin.MapboxExtendableButtonParams? getAudioGuidanceButtonParams();
194-
method public com.mapbox.navigation.dropin.MapboxExtendableButtonParams? getCameraModeButtonParams();
195-
method public com.mapbox.navigation.dropin.MapboxExtendableButtonParams? getCompassButtonParams();
185+
method public Integer? getAudioGuidanceButtonStyle();
186+
method public Integer? getCameraModeButtonStyle();
187+
method public Integer? getCompassButtonStyle();
196188
method public com.mapbox.maps.plugin.annotation.generated.PointAnnotationOptions? getDestinationMarkerAnnotationOptions();
197-
method public com.mapbox.navigation.dropin.MapboxExtendableButtonParams? getEndNavigationButtonParams();
189+
method public Integer? getEndNavigationButtonStyle();
198190
method public Integer? getInfoPanelBackground();
199191
method public Integer? getInfoPanelMarginEnd();
200192
method public Integer? getInfoPanelMarginStart();
@@ -203,20 +195,20 @@ package com.mapbox.navigation.dropin {
203195
method public com.mapbox.navigation.ui.maneuver.model.ManeuverViewOptions? getManeuverViewOptions();
204196
method public com.mapbox.navigation.dropin.map.scalebar.MapboxMapScalebarParams? getMapScalebarParams();
205197
method public Integer? getPoiNameTextAppearance();
206-
method public com.mapbox.navigation.dropin.MapboxExtendableButtonParams? getRecenterButtonParams();
198+
method public Integer? getRecenterButtonStyle();
207199
method public Integer? getRoadNameBackground();
208200
method public Integer? getRoadNameTextAppearance();
209-
method public com.mapbox.navigation.dropin.MapboxExtendableButtonParams? getRoutePreviewButtonParams();
201+
method public Integer? getRoutePreviewButtonStyle();
210202
method public Integer? getSpeedLimitStyle();
211203
method public Integer? getSpeedLimitTextAppearance();
212-
method public com.mapbox.navigation.dropin.MapboxExtendableButtonParams? getStartNavigationButtonParams();
204+
method public Integer? getStartNavigationButtonStyle();
213205
method public Integer? getTripProgressStyle();
214206
method public void setArrivalTextAppearance(Integer?);
215-
method public void setAudioGuidanceButtonParams(com.mapbox.navigation.dropin.MapboxExtendableButtonParams?);
216-
method public void setCameraModeButtonParams(com.mapbox.navigation.dropin.MapboxExtendableButtonParams?);
217-
method public void setCompassButtonParams(com.mapbox.navigation.dropin.MapboxExtendableButtonParams?);
207+
method public void setAudioGuidanceButtonStyle(Integer?);
208+
method public void setCameraModeButtonStyle(Integer?);
209+
method public void setCompassButtonStyle(Integer?);
218210
method public void setDestinationMarkerAnnotationOptions(com.mapbox.maps.plugin.annotation.generated.PointAnnotationOptions?);
219-
method public void setEndNavigationButtonParams(com.mapbox.navigation.dropin.MapboxExtendableButtonParams?);
211+
method public void setEndNavigationButtonStyle(Integer?);
220212
method public void setInfoPanelBackground(Integer?);
221213
method public void setInfoPanelMarginEnd(Integer?);
222214
method public void setInfoPanelMarginStart(Integer?);
@@ -225,20 +217,20 @@ package com.mapbox.navigation.dropin {
225217
method public void setManeuverViewOptions(com.mapbox.navigation.ui.maneuver.model.ManeuverViewOptions?);
226218
method public void setMapScalebarParams(com.mapbox.navigation.dropin.map.scalebar.MapboxMapScalebarParams?);
227219
method public void setPoiNameTextAppearance(Integer?);
228-
method public void setRecenterButtonParams(com.mapbox.navigation.dropin.MapboxExtendableButtonParams?);
220+
method public void setRecenterButtonStyle(Integer?);
229221
method public void setRoadNameBackground(Integer?);
230222
method public void setRoadNameTextAppearance(Integer?);
231-
method public void setRoutePreviewButtonParams(com.mapbox.navigation.dropin.MapboxExtendableButtonParams?);
223+
method public void setRoutePreviewButtonStyle(Integer?);
232224
method public void setSpeedLimitStyle(Integer?);
233225
method public void setSpeedLimitTextAppearance(Integer?);
234-
method public void setStartNavigationButtonParams(com.mapbox.navigation.dropin.MapboxExtendableButtonParams?);
226+
method public void setStartNavigationButtonStyle(Integer?);
235227
method public void setTripProgressStyle(Integer?);
236228
property public final Integer? arrivalTextAppearance;
237-
property public final com.mapbox.navigation.dropin.MapboxExtendableButtonParams? audioGuidanceButtonParams;
238-
property public final com.mapbox.navigation.dropin.MapboxExtendableButtonParams? cameraModeButtonParams;
239-
property public final com.mapbox.navigation.dropin.MapboxExtendableButtonParams? compassButtonParams;
229+
property public final Integer? audioGuidanceButtonStyle;
230+
property public final Integer? cameraModeButtonStyle;
231+
property public final Integer? compassButtonStyle;
240232
property public final com.mapbox.maps.plugin.annotation.generated.PointAnnotationOptions? destinationMarkerAnnotationOptions;
241-
property public final com.mapbox.navigation.dropin.MapboxExtendableButtonParams? endNavigationButtonParams;
233+
property public final Integer? endNavigationButtonStyle;
242234
property public final Integer? infoPanelBackground;
243235
property public final Integer? infoPanelMarginEnd;
244236
property public final Integer? infoPanelMarginStart;
@@ -247,24 +239,24 @@ package com.mapbox.navigation.dropin {
247239
property public final com.mapbox.navigation.ui.maneuver.model.ManeuverViewOptions? maneuverViewOptions;
248240
property public final com.mapbox.navigation.dropin.map.scalebar.MapboxMapScalebarParams? mapScalebarParams;
249241
property public final Integer? poiNameTextAppearance;
250-
property public final com.mapbox.navigation.dropin.MapboxExtendableButtonParams? recenterButtonParams;
242+
property public final Integer? recenterButtonStyle;
251243
property public final Integer? roadNameBackground;
252244
property public final Integer? roadNameTextAppearance;
253-
property public final com.mapbox.navigation.dropin.MapboxExtendableButtonParams? routePreviewButtonParams;
245+
property public final Integer? routePreviewButtonStyle;
254246
property public final Integer? speedLimitStyle;
255247
property public final Integer? speedLimitTextAppearance;
256-
property public final com.mapbox.navigation.dropin.MapboxExtendableButtonParams? startNavigationButtonParams;
248+
property public final Integer? startNavigationButtonStyle;
257249
property public final Integer? tripProgressStyle;
258250
field public static final com.mapbox.navigation.dropin.ViewStyleCustomization.Companion Companion;
259251
}
260252

261253
public static final class ViewStyleCustomization.Companion {
262254
method @StyleRes public int defaultArrivalTextAppearance();
263-
method public com.mapbox.navigation.dropin.MapboxExtendableButtonParams defaultAudioGuidanceButtonParams(android.content.Context context);
264-
method public com.mapbox.navigation.dropin.MapboxExtendableButtonParams defaultCameraModeButtonParams(android.content.Context context);
265-
method public com.mapbox.navigation.dropin.MapboxExtendableButtonParams defaultCompassButtonParams(android.content.Context context);
255+
method @StyleRes public int defaultAudioGuidanceButtonStyle();
256+
method @StyleRes public int defaultCameraModeButtonStyle();
257+
method @StyleRes public int defaultCompassButtonStyle();
266258
method public com.mapbox.maps.plugin.annotation.generated.PointAnnotationOptions defaultDestinationMarkerAnnotationOptions(android.content.Context context);
267-
method public com.mapbox.navigation.dropin.MapboxExtendableButtonParams defaultEndNavigationButtonParams(android.content.Context context);
259+
method @StyleRes public int defaultEndNavigationButtonStyle();
268260
method @DrawableRes public int defaultInfoPanelBackground();
269261
method @Px public int defaultInfoPanelMarginEnd();
270262
method @Px public int defaultInfoPanelMarginStart();
@@ -273,13 +265,13 @@ package com.mapbox.navigation.dropin {
273265
method public com.mapbox.navigation.ui.maneuver.model.ManeuverViewOptions defaultManeuverViewOptions();
274266
method public com.mapbox.navigation.dropin.map.scalebar.MapboxMapScalebarParams defaultMapScalebarParams(android.content.Context context);
275267
method @StyleRes public int defaultPoiNameTextAppearance();
276-
method public com.mapbox.navigation.dropin.MapboxExtendableButtonParams defaultRecenterButtonParams(android.content.Context context);
268+
method @StyleRes public int defaultRecenterButtonStyle();
277269
method @DrawableRes public int defaultRoadNameBackground();
278270
method @StyleRes public int defaultRoadNameTextAppearance();
279-
method public com.mapbox.navigation.dropin.MapboxExtendableButtonParams defaultRoutePreviewButtonParams(android.content.Context context);
271+
method @StyleRes public int defaultRoutePreviewButtonStyle();
280272
method @StyleRes public int defaultSpeedLimitStyle();
281273
method @StyleRes public int defaultSpeedLimitTextAppearance();
282-
method public com.mapbox.navigation.dropin.MapboxExtendableButtonParams defaultStartNavigationButtonParams(android.content.Context context);
274+
method @StyleRes public int defaultStartNavigationButtonStyle();
283275
method @StyleRes public int defaultTripProgressStyle();
284276
}
285277

libnavui-dropin/src/main/java/com/mapbox/navigation/dropin/MapboxExtendableButtonParams.kt

Lines changed: 0 additions & 56 deletions
This file was deleted.

libnavui-dropin/src/main/java/com/mapbox/navigation/dropin/ViewOptionsCustomization.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,12 @@ class ViewOptionsCustomization {
8383
*/
8484
var showCameraDebugInfo: Boolean? = null
8585

86+
/**
87+
* Sets whether the compass action button should be visible.
88+
* Set to `false` for the default behavior.
89+
*/
90+
var showCompassActionButton: Boolean? = null
91+
8692
companion object {
8793
/**
8894
* Default route line options.

0 commit comments

Comments
 (0)