diff --git a/app/src/androidTest/java/testapp/NavigationViewOrientationTest.java b/app/src/androidTest/java/testapp/NavigationViewOrientationTest.java
index 5c7d608dc5e..6e21a51f690 100644
--- a/app/src/androidTest/java/testapp/NavigationViewOrientationTest.java
+++ b/app/src/androidTest/java/testapp/NavigationViewOrientationTest.java
@@ -134,8 +134,7 @@ public void onOrientationChange_waynameVisibilityIsRestored() {
onView(withId(R.id.navigationMapView)).perform(swipeUp());
changeOrientation(orientationLandscape());
- NavigationMapboxMap navigationMapboxMap = getNavigationView().retrieveNavigationMapboxMap();
- boolean isWaynameVisible = navigationMapboxMap.isWaynameVisible();
+ boolean isWaynameVisible = getNavigationView().isWayNameVisible();
assertFalse(isWaynameVisible);
}
diff --git a/codecov.yml b/codecov.yml
index 65e1aeef7f4..8e40e4410c4 100644
--- a/codecov.yml
+++ b/codecov.yml
@@ -27,4 +27,7 @@ comment:
ignore:
- "**/ManeuversStyleKit.java"
- - "**/LaneStyleKit.java"
\ No newline at end of file
+ - "**/LaneStyleKit.java"
+ - "**/NavigationViewInstanceState.java"
+ - "**/NavigationMapboxMapInstanceState.java"
+ - "**/NavigationConstants.java"
\ No newline at end of file
diff --git a/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/NavigationContract.java b/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/NavigationContract.java
index ba822ef4e5e..f7428cd3db6 100644
--- a/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/NavigationContract.java
+++ b/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/NavigationContract.java
@@ -1,6 +1,7 @@
package com.mapbox.services.android.navigation.ui.v5;
import android.location.Location;
+import android.support.annotation.NonNull;
import com.mapbox.api.directions.v5.models.DirectionsRoute;
import com.mapbox.geojson.Point;
@@ -16,7 +17,9 @@ interface View {
boolean isSummaryBottomSheetHidden();
- void updateWaynameVisibility(boolean isVisible);
+ void updateWayNameVisibility(boolean isVisible);
+
+ void updateWayNameView(@NonNull String wayName);
void updateCameraTrackingMode(@NavigationCamera.TrackingMode int trackingMode);
diff --git a/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/NavigationPresenter.java b/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/NavigationPresenter.java
index 2d7bc50050c..5345ce20a57 100644
--- a/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/NavigationPresenter.java
+++ b/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/NavigationPresenter.java
@@ -1,9 +1,11 @@
package com.mapbox.services.android.navigation.ui.v5;
import android.location.Location;
+import android.support.annotation.NonNull;
import android.support.design.widget.BottomSheetBehavior;
import com.mapbox.api.directions.v5.models.DirectionsRoute;
+import com.mapbox.core.utils.TextUtils;
import com.mapbox.geojson.Point;
import com.mapbox.services.android.navigation.ui.v5.camera.NavigationCamera;
@@ -23,7 +25,7 @@ void updateResumeState(boolean resumeState) {
void onRecenterClick() {
view.setSummaryBehaviorHideable(false);
view.setSummaryBehaviorState(BottomSheetBehavior.STATE_EXPANDED);
- view.updateWaynameVisibility(true);
+ view.updateWayNameVisibility(true);
view.resetCameraPosition();
view.hideRecenterBtn();
}
@@ -33,7 +35,7 @@ void onCameraTrackingDismissed() {
view.setSummaryBehaviorHideable(true);
view.setSummaryBehaviorState(BottomSheetBehavior.STATE_HIDDEN);
view.updateCameraTrackingMode(NavigationCamera.NAVIGATION_TRACKING_MODE_NONE);
- view.updateWaynameVisibility(false);
+ view.updateWayNameVisibility(false);
}
}
@@ -46,7 +48,6 @@ void onSummaryBottomSheetHidden() {
void onRouteUpdate(DirectionsRoute directionsRoute) {
view.drawRoute(directionsRoute);
if (!resumeState) {
- view.updateWaynameVisibility(true);
view.startCamera(directionsRoute);
}
}
@@ -67,8 +68,21 @@ void onNavigationLocationUpdate(Location location) {
view.updateNavigationMap(location);
}
+ void onWayNameChanged(@NonNull String wayName) {
+ if (TextUtils.isEmpty(wayName)) {
+ view.updateWayNameVisibility(false);
+ return;
+ }
+ view.updateWayNameView(wayName);
+ view.updateWayNameVisibility(true);
+ }
+
+ void onNavigationStopped() {
+ view.updateWayNameVisibility(false);
+ }
+
void onRouteOverviewClick() {
- view.updateWaynameVisibility(false);
+ view.updateWayNameVisibility(false);
view.updateCameraRouteOverview();
view.showRecenterBtn();
}
diff --git a/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/NavigationView.java b/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/NavigationView.java
index f7007ed451c..702a9f0c98f 100644
--- a/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/NavigationView.java
+++ b/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/NavigationView.java
@@ -1,7 +1,6 @@
package com.mapbox.services.android.navigation.ui.v5;
import android.app.Activity;
-import android.app.Fragment;
import android.arch.lifecycle.LifecycleObserver;
import android.arch.lifecycle.LifecycleOwner;
import android.arch.lifecycle.ViewModelProviders;
@@ -33,6 +32,7 @@
import com.mapbox.services.android.navigation.ui.v5.instruction.NavigationAlertView;
import com.mapbox.services.android.navigation.ui.v5.map.NavigationMapboxMap;
import com.mapbox.services.android.navigation.ui.v5.map.NavigationMapboxMapInstanceState;
+import com.mapbox.services.android.navigation.ui.v5.map.WayNameView;
import com.mapbox.services.android.navigation.ui.v5.summary.SummaryBottomSheet;
import com.mapbox.services.android.navigation.v5.location.replay.ReplayRouteLocationEngine;
import com.mapbox.services.android.navigation.v5.navigation.MapboxNavigation;
@@ -75,6 +75,7 @@ public class NavigationView extends CoordinatorLayout implements LifecycleObserv
private BottomSheetBehavior summaryBehavior;
private ImageButton cancelBtn;
private RecenterButton recenterBtn;
+ private WayNameView wayNameView;
private ImageButton routeOverviewBtn;
private NavigationPresenter navigationPresenter;
@@ -141,8 +142,10 @@ public boolean onBackPressed() {
*/
public void onSaveInstanceState(Bundle outState) {
int bottomSheetBehaviorState = summaryBehavior == null ? INVALID_STATE : summaryBehavior.getState();
- NavigationViewInstanceState navigationViewInstanceState = new NavigationViewInstanceState(bottomSheetBehaviorState,
- recenterBtn.getVisibility(), instructionView.isShowingInstructionList());
+ boolean isWayNameVisible = wayNameView.getVisibility() == VISIBLE;
+ NavigationViewInstanceState navigationViewInstanceState = new NavigationViewInstanceState(
+ bottomSheetBehaviorState, recenterBtn.getVisibility(), instructionView.isShowingInstructionList(),
+ isWayNameVisible, wayNameView.retrieveWayNameText());
String instanceKey = getContext().getString(R.string.navigation_view_instance_state);
outState.putParcelable(instanceKey, navigationViewInstanceState);
outState.putBoolean(getContext().getString(R.string.navigation_running), navigationViewModel.isRunning());
@@ -161,6 +164,8 @@ public void onRestoreInstanceState(Bundle savedInstanceState) {
String instanceKey = getContext().getString(R.string.navigation_view_instance_state);
NavigationViewInstanceState navigationViewInstanceState = savedInstanceState.getParcelable(instanceKey);
recenterBtn.setVisibility(navigationViewInstanceState.getRecenterButtonVisibility());
+ wayNameView.setVisibility(navigationViewInstanceState.isWayNameVisible() ? VISIBLE : INVISIBLE);
+ wayNameView.updateWayNameText(navigationViewInstanceState.getWayNameText());
resetBottomSheetState(navigationViewInstanceState.getBottomSheetBehaviorState());
updateInstructionListState(navigationViewInstanceState.isInstructionViewVisible());
mapInstanceState = savedInstanceState.getParcelable(MAP_INSTANCE_STATE_KEY);
@@ -172,7 +177,8 @@ public void onRestoreInstanceState(Bundle savedInstanceState) {
*
* In an {@link Activity} this should be in {@link Activity#onDestroy()}.
*
- * In a {@link android.app.Fragment}, this should be in {@link Fragment#onDestroyView()}.
+ * In a {@link android.support.v4.app.Fragment}, this should
+ * be in {@link android.support.v4.app.Fragment#onDestroyView()}.
*/
public void onDestroy() {
shutdown();
@@ -212,6 +218,7 @@ public void onStop() {
@Override
public void onMapReady(MapboxMap mapboxMap) {
initializeNavigationMap(mapView, mapboxMap);
+ initializeWayNameListener();
onNavigationReadyCallback.onNavigationReady(navigationViewModel.isRunning());
isMapInitialized = true;
}
@@ -269,17 +276,6 @@ public void drawRoute(DirectionsRoute directionsRoute) {
}
}
- private void initializeNavigationMap(MapView mapView, MapboxMap map) {
- navigationMap = new NavigationMapboxMap(mapView, map);
- if (mapInstanceState != null) {
- navigationMap.restoreFrom(mapInstanceState);
- return;
- }
- if (initialMapCameraPosition != null) {
- map.setCameraPosition(initialMapCameraPosition);
- }
- }
-
@Override
public void addMarker(Point position) {
if (navigationMap != null) {
@@ -293,23 +289,43 @@ public void clearMarkers() {
}
}
- public void updateWaynameView(String wayname) {
- if (navigationMap != null) {
- navigationMap.updateWaynameView(wayname);
- }
+ /**
+ * Provides the current visibility of the way name view.
+ *
+ * @return true if visible, false if not visible
+ */
+ public boolean isWayNameVisible() {
+ return wayNameView.getVisibility() == VISIBLE;
}
+ /**
+ * Updates the text of the way name view below the
+ * navigation icon.
+ *
+ * If you'd like to use this method without being overridden by the default way names
+ * values we provide, please disabled auto-query with
+ * {@link NavigationMapboxMap#updateWaynameQueryMap(boolean)}.
+ *
+ * @param wayName to update the view
+ */
@Override
- public void updateWaynameVisibility(boolean isVisible) {
- if (navigationMap != null) {
- navigationMap.updateWaynameVisibility(isVisible);
- }
+ public void updateWayNameView(@NonNull String wayName) {
+ wayNameView.updateWayNameText(wayName);
}
- public void updateWaynameQueryMap(boolean isEnabled) {
- if (navigationMap != null) {
- navigationMap.updateWaynameQueryMap(isEnabled);
- }
+ /**
+ * Updates the visibility of the way name view that is show below
+ * the navigation icon.
+ *
+ * If you'd like to use this method without being overridden by the default visibility values
+ * values we provide, please disabled auto-query with
+ * {@link NavigationMapboxMap#updateWaynameQueryMap(boolean)}.
+ *
+ * @param isVisible true to show, false to hide
+ */
+ @Override
+ public void updateWayNameVisibility(boolean isVisible) {
+ wayNameView.updateVisibility(isVisible);
}
@Override
@@ -377,6 +393,7 @@ public void startNavigation(NavigationViewOptions options) {
* @since 0.16.0
*/
public void stopNavigation() {
+ navigationPresenter.onNavigationStopped();
navigationViewModel.stopNavigation();
}
@@ -499,6 +516,7 @@ private void bind() {
summaryBottomSheet = findViewById(R.id.summaryBottomSheet);
cancelBtn = findViewById(R.id.cancelBtn);
recenterBtn = findViewById(R.id.recenterBtn);
+ wayNameView = findViewById(R.id.wayNameView);
routeOverviewBtn = findViewById(R.id.routeOverviewBtn);
}
@@ -527,6 +545,22 @@ private void initializeInstructionListListener() {
navigationViewEventDispatcher));
}
+ private void initializeNavigationMap(MapView mapView, MapboxMap map) {
+ navigationMap = new NavigationMapboxMap(mapView, map);
+ if (mapInstanceState != null) {
+ navigationMap.restoreFrom(mapInstanceState);
+ return;
+ }
+ if (initialMapCameraPosition != null) {
+ map.setCameraPosition(initialMapCameraPosition);
+ }
+ }
+
+ private void initializeWayNameListener() {
+ NavigationViewWayNameListener wayNameListener = new NavigationViewWayNameListener(navigationPresenter);
+ navigationMap.addOnWayNameChangedListener(wayNameListener);
+ }
+
private void updateSavedInstanceStateMapStyle(@Nullable Bundle savedInstanceState) {
if (savedInstanceState != null) {
String mapStyleUrl = ThemeSwitcher.retrieveMapStyle(getContext());
diff --git a/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/NavigationViewInstanceState.java b/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/NavigationViewInstanceState.java
index 13db1a09070..f52c5b28c0e 100644
--- a/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/NavigationViewInstanceState.java
+++ b/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/NavigationViewInstanceState.java
@@ -4,15 +4,20 @@
import android.os.Parcelable;
class NavigationViewInstanceState implements Parcelable {
+
private int bottomSheetBehaviorState;
private int recenterButtonVisibility;
private boolean instructionViewVisible;
+ private boolean isWayNameVisible;
+ private String wayNameText;
NavigationViewInstanceState(int bottomSheetBehaviorState, int recenterButtonVisibility,
- boolean instructionViewVisible) {
+ boolean instructionViewVisible, boolean isWayNameVisible, String wayNameText) {
this.bottomSheetBehaviorState = bottomSheetBehaviorState;
this.recenterButtonVisibility = recenterButtonVisibility;
this.instructionViewVisible = instructionViewVisible;
+ this.isWayNameVisible = isWayNameVisible;
+ this.wayNameText = wayNameText;
}
int getBottomSheetBehaviorState() {
@@ -27,35 +32,45 @@ boolean isInstructionViewVisible() {
return instructionViewVisible;
}
- private NavigationViewInstanceState(Parcel parcel) {
- bottomSheetBehaviorState = parcel.readInt();
- recenterButtonVisibility = parcel.readInt();
- instructionViewVisible = parcel.readByte() != 0x00;
+ boolean isWayNameVisible() {
+ return isWayNameVisible;
}
- @Override
- public int describeContents() {
- return 0;
+ String getWayNameText() {
+ return wayNameText;
+ }
+
+ private NavigationViewInstanceState(Parcel in) {
+ bottomSheetBehaviorState = in.readInt();
+ recenterButtonVisibility = in.readInt();
+ instructionViewVisible = in.readByte() != 0;
+ isWayNameVisible = in.readByte() != 0;
+ wayNameText = in.readString();
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(bottomSheetBehaviorState);
dest.writeInt(recenterButtonVisibility);
- dest.writeByte((byte) (instructionViewVisible ? 0x01 : 0x00));
+ dest.writeByte((byte) (instructionViewVisible ? 1 : 0));
+ dest.writeByte((byte) (isWayNameVisible ? 1 : 0));
+ dest.writeString(wayNameText);
}
- public static final Parcelable.Creator CREATOR =
- new Parcelable.Creator() {
+ @Override
+ public int describeContents() {
+ return 0;
+ }
- @Override
- public NavigationViewInstanceState createFromParcel(Parcel source) {
- return new NavigationViewInstanceState(source);
- }
+ public static final Creator CREATOR = new Creator() {
+ @Override
+ public NavigationViewInstanceState createFromParcel(Parcel in) {
+ return new NavigationViewInstanceState(in);
+ }
- @Override
- public NavigationViewInstanceState[] newArray(int size) {
- return new NavigationViewInstanceState[size];
- }
- };
+ @Override
+ public NavigationViewInstanceState[] newArray(int size) {
+ return new NavigationViewInstanceState[size];
+ }
+ };
}
diff --git a/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/NavigationViewWayNameListener.java b/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/NavigationViewWayNameListener.java
new file mode 100644
index 00000000000..b4a847d66bd
--- /dev/null
+++ b/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/NavigationViewWayNameListener.java
@@ -0,0 +1,19 @@
+package com.mapbox.services.android.navigation.ui.v5;
+
+import android.support.annotation.NonNull;
+
+import com.mapbox.services.android.navigation.ui.v5.map.OnWayNameChangedListener;
+
+class NavigationViewWayNameListener implements OnWayNameChangedListener {
+
+ private final NavigationPresenter presenter;
+
+ NavigationViewWayNameListener(NavigationPresenter presenter) {
+ this.presenter = presenter;
+ }
+
+ @Override
+ public void onWayNameChanged(@NonNull String wayName) {
+ presenter.onWayNameChanged(wayName);
+ }
+}
diff --git a/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/map/MapLayerInteractor.java b/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/map/MapLayerInteractor.java
index 360c4517565..cd847ded240 100644
--- a/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/map/MapLayerInteractor.java
+++ b/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/map/MapLayerInteractor.java
@@ -1,7 +1,5 @@
package com.mapbox.services.android.navigation.ui.v5.map;
-import android.graphics.Bitmap;
-
import com.mapbox.mapboxsdk.maps.MapboxMap;
import com.mapbox.mapboxsdk.style.layers.Layer;
import com.mapbox.mapboxsdk.style.layers.LineLayer;
@@ -21,18 +19,10 @@ class MapLayerInteractor {
this.mapboxMap = mapboxMap;
}
- void addLayer(Layer layer) {
- mapboxMap.addLayer(layer);
- }
-
Layer retrieveLayerFromId(String layerId) {
return mapboxMap.getLayerAs(layerId);
}
- void addLayerImage(String imageName, Bitmap image) {
- mapboxMap.addImage(imageName, image);
- }
-
void updateLayerVisibility(boolean isVisible, String layerIdentifier) {
// TODO add sourceIdentifier logic when https://github.com/mapbox/mapbox-gl-native/issues/12691 lands
List layers = mapboxMap.getLayers();
diff --git a/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/map/MapWayname.java b/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/map/MapWayName.java
similarity index 54%
rename from libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/map/MapWayname.java
rename to libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/map/MapWayName.java
index 4eca50c0793..7834f94af4b 100644
--- a/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/map/MapWayname.java
+++ b/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/map/MapWayName.java
@@ -1,6 +1,5 @@
package com.mapbox.services.android.navigation.ui.v5.map;
-import android.graphics.Bitmap;
import android.graphics.PointF;
import android.location.Location;
import android.os.AsyncTask;
@@ -8,9 +7,6 @@
import com.mapbox.geojson.Feature;
import com.mapbox.geojson.Point;
-import com.mapbox.mapboxsdk.style.layers.Layer;
-import com.mapbox.mapboxsdk.style.layers.Property;
-import com.mapbox.mapboxsdk.style.layers.SymbolLayer;
import com.mapbox.services.android.navigation.v5.navigation.MapboxNavigation;
import java.util.ArrayList;
@@ -18,53 +14,38 @@
import java.util.List;
import java.util.Set;
-import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconImage;
-import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.visibility;
import static com.mapbox.services.android.navigation.ui.v5.map.NavigationMapboxMap.STREETS_LAYER_ID;
-import static com.mapbox.services.android.navigation.v5.navigation.NavigationConstants.MAPBOX_WAYNAME_ICON;
-class MapWayname {
+class MapWayName {
private static final String NAME_PROPERTY = "name";
+ private static final String EMPTY_CURRENT_WAY_NAME = "";
private final MapWaynameProgressChangeListener progressChangeListener = new MapWaynameProgressChangeListener(this);
private final Set onWayNameChangedListeners;
- private WaynameLayoutProvider layoutProvider;
- private MapLayerInteractor layerInteractor;
private WaynameFeatureFinder featureInteractor;
private List currentStepPoints = new ArrayList<>();
private Location currentLocation = null;
private MapboxNavigation navigation;
private boolean isAutoQueryEnabled;
- private boolean isVisible;
private FeatureFilterTask filterTask;
- private String wayname = "";
+ private String wayName = EMPTY_CURRENT_WAY_NAME;
- MapWayname(WaynameLayoutProvider layoutProvider, MapLayerInteractor layerInteractor,
- WaynameFeatureFinder featureInteractor, MapPaddingAdjustor paddingAdjustor) {
- this.layoutProvider = layoutProvider;
- this.layerInteractor = layerInteractor;
+ MapWayName(WaynameFeatureFinder featureInteractor, MapPaddingAdjustor paddingAdjustor) {
this.featureInteractor = featureInteractor;
paddingAdjustor.updatePaddingWithDefault();
this.onWayNameChangedListeners = new HashSet<>();
}
- void updateWaynameWithPoint(PointF point, SymbolLayer waynameLayer) {
+ void updateWayNameWithPoint(PointF point) {
if (!isAutoQueryEnabled) {
return;
}
List roadLabelFeatures = findRoadLabelFeatures(point);
boolean invalidLabelFeatures = roadLabelFeatures.isEmpty();
if (invalidLabelFeatures) {
- updateVisibility(false, waynameLayer);
return;
}
- executeFeatureFilterTask(roadLabelFeatures, waynameLayer);
- }
-
- void updateWaynameLayer(String wayname, SymbolLayer waynameLayer) {
- if (waynameLayer != null) {
- createWaynameIcon(wayname, waynameLayer);
- }
+ executeFeatureFilterTask(roadLabelFeatures);
}
void updateProgress(Location currentLocation, List currentStepPoints) {
@@ -76,23 +57,10 @@ void updateProgress(Location currentLocation, List currentStepPoints) {
}
}
- void updateWaynameVisibility(boolean isVisible, SymbolLayer waynameLayer) {
- this.isVisible = isVisible;
- updateVisibility(isVisible, waynameLayer);
- }
-
- void updateWaynameQueryMap(boolean isEnabled) {
+ void updateWayNameQueryMap(boolean isEnabled) {
isAutoQueryEnabled = isEnabled;
}
- boolean isVisible() {
- return isVisible;
- }
-
- String retrieveWayname() {
- return wayname;
- }
-
void addProgressChangeListener(MapboxNavigation navigation) {
this.navigation = navigation;
navigation.addProgressChangeListener(progressChangeListener);
@@ -126,7 +94,7 @@ private List findRoadLabelFeatures(PointF point) {
return featureInteractor.queryRenderedFeatures(point, layerIds);
}
- private void executeFeatureFilterTask(List roadFeatures, final SymbolLayer waynameLayer) {
+ private void executeFeatureFilterTask(List roadFeatures) {
if (isTaskRunning()) {
filterTask.cancel(true);
}
@@ -136,7 +104,7 @@ private void executeFeatureFilterTask(List roadFeatures, final SymbolLa
new OnFeatureFilteredCallback() {
@Override
public void onFeatureFiltered(@NonNull Feature feature) {
- updateWaynameLayerWithNameProperty(waynameLayer, feature);
+ updateWayNameLayerWithNameProperty(feature);
}
});
filterTask.execute();
@@ -153,50 +121,17 @@ private boolean hasValidProgressData() {
return currentLocation != null && !currentStepPoints.isEmpty();
}
- private void createWaynameIcon(String wayname, Layer waynameLayer) {
- Bitmap waynameLayoutBitmap = layoutProvider.generateLayoutBitmap(wayname);
- if (waynameLayoutBitmap != null) {
- layerInteractor.addLayerImage(MAPBOX_WAYNAME_ICON, waynameLayoutBitmap);
- waynameLayer.setProperties(iconImage(MAPBOX_WAYNAME_ICON));
- }
- }
-
- private void updateVisibility(boolean isVisible, SymbolLayer waynameLayer) {
- if (checkWaynameVisibility(isVisible, waynameLayer)) {
- return;
- }
- adjustWaynameVisibility(isVisible, waynameLayer);
- }
-
- private boolean checkWaynameVisibility(boolean isVisible, Layer waynameLayer) {
- return (isVisible && isWaynameVisible(waynameLayer)) || !isVisible && !isWaynameVisible(waynameLayer);
- }
-
- private boolean isWaynameVisible(Layer waynameLayer) {
- return waynameLayer != null && waynameLayer.getVisibility().getValue().contentEquals(Property.VISIBLE);
- }
-
- private void adjustWaynameVisibility(boolean isVisible, Layer waynameLayer) {
- if (waynameLayer != null) {
- waynameLayer.setProperties(visibility(isVisible ? Property.VISIBLE : Property.NONE));
- }
- }
-
- private void updateWaynameLayerWithNameProperty(SymbolLayer waynameLayer, Feature roadFeature) {
+ private void updateWayNameLayerWithNameProperty(Feature roadFeature) {
boolean hasValidNameProperty = roadFeature.hasNonNullValueForProperty(NAME_PROPERTY);
if (hasValidNameProperty) {
- String currentWayname = roadFeature.getStringProperty(NAME_PROPERTY);
- boolean newWayname = !wayname.contentEquals(currentWayname);
- if (newWayname) {
- updateListenersWith(currentWayname);
- wayname = currentWayname;
- if (isVisible) {
- updateVisibility(true, waynameLayer);
- }
- updateWaynameLayer(wayname, waynameLayer);
+ String currentWayName = roadFeature.getStringProperty(NAME_PROPERTY);
+ boolean newWayName = !wayName.contentEquals(currentWayName);
+ if (newWayName) {
+ updateListenersWith(currentWayName);
+ wayName = currentWayName;
}
} else {
- updateVisibility(false, waynameLayer);
+ updateListenersWith(EMPTY_CURRENT_WAY_NAME);
}
}
diff --git a/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/map/MapWaynameProgressChangeListener.java b/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/map/MapWaynameProgressChangeListener.java
index 862ed43af70..73a8e836792 100644
--- a/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/map/MapWaynameProgressChangeListener.java
+++ b/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/map/MapWaynameProgressChangeListener.java
@@ -7,14 +7,14 @@
class MapWaynameProgressChangeListener implements ProgressChangeListener {
- private final MapWayname mapWayname;
+ private final MapWayName mapWayName;
- MapWaynameProgressChangeListener(MapWayname mapWayname) {
- this.mapWayname = mapWayname;
+ MapWaynameProgressChangeListener(MapWayName mapWayName) {
+ this.mapWayName = mapWayName;
}
@Override
public void onProgressChange(Location location, RouteProgress routeProgress) {
- mapWayname.updateProgress(location, routeProgress.currentStepPoints());
+ mapWayName.updateProgress(location, routeProgress.currentStepPoints());
}
}
diff --git a/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/map/NavigationMapboxMap.java b/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/map/NavigationMapboxMap.java
index 2375aec2935..93acb449b89 100644
--- a/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/map/NavigationMapboxMap.java
+++ b/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/map/NavigationMapboxMap.java
@@ -23,7 +23,6 @@
import com.mapbox.mapboxsdk.maps.MapboxMap;
import com.mapbox.mapboxsdk.maps.OnMapReadyCallback;
import com.mapbox.mapboxsdk.style.layers.LineLayer;
-import com.mapbox.mapboxsdk.style.layers.SymbolLayer;
import com.mapbox.mapboxsdk.style.sources.VectorSource;
import com.mapbox.services.android.navigation.ui.v5.NavigationSnapshotReadyCallback;
import com.mapbox.services.android.navigation.ui.v5.R;
@@ -36,24 +35,9 @@
import java.util.ArrayList;
import java.util.List;
-import static com.mapbox.mapboxsdk.style.expressions.Expression.exponential;
-import static com.mapbox.mapboxsdk.style.expressions.Expression.interpolate;
-import static com.mapbox.mapboxsdk.style.expressions.Expression.stop;
-import static com.mapbox.mapboxsdk.style.expressions.Expression.zoom;
-import static com.mapbox.mapboxsdk.style.layers.Property.ICON_ANCHOR_TOP;
-import static com.mapbox.mapboxsdk.style.layers.Property.ICON_ROTATION_ALIGNMENT_VIEWPORT;
-import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconAllowOverlap;
-import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconAnchor;
-import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconIgnorePlacement;
-import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconOffset;
-import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconRotationAlignment;
-import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconSize;
import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineColor;
import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.lineWidth;
-import static com.mapbox.services.android.navigation.v5.navigation.NavigationConstants.MAPBOX_LOCATION_SOURCE;
-import static com.mapbox.services.android.navigation.v5.navigation.NavigationConstants.MAPBOX_WAYNAME_LAYER;
import static com.mapbox.services.android.navigation.v5.navigation.NavigationConstants.NAVIGATION_MINIMUM_MAP_ZOOM;
-import static com.mapbox.services.android.navigation.v5.navigation.NavigationConstants.WAYNAME_OFFSET;
/**
* Wrapper class for {@link MapboxMap}.
@@ -80,8 +64,7 @@ public class NavigationMapboxMap {
private NavigationMapRoute mapRoute;
private LocationComponent locationComponent;
private MapPaddingAdjustor mapPaddingAdjustor;
- private MapWayname mapWayName;
- private SymbolLayer waynameLayer;
+ private MapWayName mapWayName;
private MapLayerInteractor layerInteractor;
private List mapMarkers = new ArrayList<>();
@@ -97,7 +80,7 @@ public NavigationMapboxMap(@NonNull MapView mapView, @NonNull MapboxMap mapboxMa
initializeLocationComponent(mapView, mapboxMap);
initializeMapPaddingAdjustor(mapView, mapboxMap);
initializeMapLayerInteractor(mapboxMap);
- initializeWayname(mapView, mapboxMap, layerInteractor, mapPaddingAdjustor);
+ initializeWayname(mapboxMap, mapPaddingAdjustor);
initializeRoute(mapView, mapboxMap);
initializeCamera(mapboxMap);
}
@@ -118,7 +101,7 @@ public NavigationMapboxMap(@NonNull MapView mapView, @NonNull MapboxMap mapboxMa
}
// Package private (no modifier) for testing purposes
- NavigationMapboxMap(MapWayname mapWayName) {
+ NavigationMapboxMap(MapWayName mapWayName) {
this.mapWayName = mapWayName;
}
@@ -197,14 +180,12 @@ public void addProgressChangeListener(MapboxNavigation navigation) {
* @param outState to store state variables
*/
public void saveStateWith(String key, Bundle outState) {
- boolean isVisible = mapWayName.isVisible();
- String waynameText = mapWayName.retrieveWayname();
int[] mapPadding = mapPaddingAdjustor.retrieveCurrentPadding();
boolean isUsingDefault = mapPaddingAdjustor.isUsingDefault();
@NavigationCamera.TrackingMode
int cameraTrackingMode = mapCamera.getCameraTrackingMode();
NavigationMapboxMapInstanceState instanceState = new NavigationMapboxMapInstanceState(
- isVisible, waynameText, mapPadding, isUsingDefault, cameraTrackingMode
+ mapPadding, isUsingDefault, cameraTrackingMode
);
outState.putParcelable(key, instanceState);
}
@@ -221,11 +202,6 @@ public void saveStateWith(String key, Bundle outState) {
* @param instanceState to extract state variables
*/
public void restoreFrom(NavigationMapboxMapInstanceState instanceState) {
- boolean isVisible = instanceState.isWaynameVisible();
- updateWaynameVisibility(isVisible);
- if (isVisible) {
- updateWaynameView(instanceState.retrieveWayname());
- }
updateCameraTrackingMode(instanceState.getCameraTrackingMode());
MapPaddingInstanceState mapPadding = instanceState.retrieveMapPadding();
if (mapPadding.shouldUseDefault()) {
@@ -363,42 +339,13 @@ public void showRouteOverview(int[] padding) {
mapCamera.showRouteOverview(padding);
}
- /**
- * Set the text of the way name chip underneath the location icon.
- *
- * The text will only be set if the way name is visible / enabled.
- *
- * @param wayname text to be set
- */
- public void updateWaynameView(String wayname) {
- mapWayName.updateWaynameLayer(wayname, waynameLayer);
- }
-
- /**
- * Hide or show the way name chip underneath the location icon.
- *
- * @param isVisible true to show, false to hide
- */
- public void updateWaynameVisibility(boolean isVisible) {
- mapWayName.updateWaynameVisibility(isVisible, waynameLayer);
- }
-
- /**
- * Provides current visibility of the map way name.
- *
- * @return true if visible, false if not
- */
- public boolean isWaynameVisible() {
- return mapWayName.isVisible();
- }
-
/**
* Enables or disables the way name chip underneath the location icon.
*
* @param isEnabled true to enable, false to disable
*/
public void updateWaynameQueryMap(boolean isEnabled) {
- mapWayName.updateWaynameQueryMap(isEnabled);
+ mapWayName.updateWayNameQueryMap(isEnabled);
}
/**
@@ -562,35 +509,10 @@ private void initializeCamera(MapboxMap map) {
mapCamera = new NavigationCamera(map, locationComponent);
}
- private void initializeWayname(MapView mapView, MapboxMap mapboxMap, MapLayerInteractor layerInteractor,
- MapPaddingAdjustor paddingAdjustor) {
+ private void initializeWayname(MapboxMap mapboxMap, MapPaddingAdjustor paddingAdjustor) {
initializeStreetsSource(mapboxMap);
- WaynameLayoutProvider layoutProvider = new WaynameLayoutProvider(mapView.getContext());
- WaynameFeatureFinder featureInteractor = new WaynameFeatureFinder(mapboxMap);
- initializeWaynameLayer(layerInteractor);
- mapWayName = new MapWayname(layoutProvider, layerInteractor, featureInteractor, paddingAdjustor);
- }
-
- private void initializeWaynameLayer(MapLayerInteractor layerInteractor) {
- waynameLayer = createWaynameLayer();
- layerInteractor.addLayer(waynameLayer);
- }
-
- private SymbolLayer createWaynameLayer() {
- return new SymbolLayer(MAPBOX_WAYNAME_LAYER, MAPBOX_LOCATION_SOURCE)
- .withProperties(
- iconAllowOverlap(true),
- iconIgnorePlacement(true),
- iconSize(
- interpolate(exponential(1f), zoom(),
- stop(0f, 0.6f),
- stop(18f, 1.2f)
- )
- ),
- iconAnchor(ICON_ANCHOR_TOP),
- iconOffset(WAYNAME_OFFSET),
- iconRotationAlignment(ICON_ROTATION_ALIGNMENT_VIEWPORT)
- );
+ WaynameFeatureFinder featureFinder = new WaynameFeatureFinder(mapboxMap);
+ mapWayName = new MapWayName(featureFinder, paddingAdjustor);
}
private void initializeMapLayerInteractor(MapboxMap mapboxMap) {
@@ -634,6 +556,6 @@ private void removeAllMarkers() {
private void updateMapWaynameWithLocation(Location location) {
LatLng latLng = new LatLng(location);
PointF mapPoint = mapboxMap.getProjection().toScreenLocation(latLng);
- mapWayName.updateWaynameWithPoint(mapPoint, waynameLayer);
+ mapWayName.updateWayNameWithPoint(mapPoint);
}
}
diff --git a/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/map/NavigationMapboxMapInstanceState.java b/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/map/NavigationMapboxMapInstanceState.java
index 16510f844a9..28404fc33df 100644
--- a/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/map/NavigationMapboxMapInstanceState.java
+++ b/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/map/NavigationMapboxMapInstanceState.java
@@ -7,32 +7,18 @@
public class NavigationMapboxMapInstanceState implements Parcelable {
- private final boolean isWaynameVisible;
- private final String waynameText;
private final MapPaddingInstanceState mapPaddingInstanceState;
-
@NavigationCamera.TrackingMode
private final int cameraTrackingMode;
- NavigationMapboxMapInstanceState(boolean isWaynameVisible,
- String waynameText,
- int[] currentPadding,
+ NavigationMapboxMapInstanceState(int[] currentPadding,
boolean shouldUseDefaultPadding,
@NavigationCamera.TrackingMode int cameraTrackingMode) {
- this.isWaynameVisible = isWaynameVisible;
- this.waynameText = waynameText;
+
this.mapPaddingInstanceState = new MapPaddingInstanceState(currentPadding, shouldUseDefaultPadding);
this.cameraTrackingMode = cameraTrackingMode;
}
- boolean isWaynameVisible() {
- return isWaynameVisible;
- }
-
- String retrieveWayname() {
- return waynameText;
- }
-
MapPaddingInstanceState retrieveMapPadding() {
return mapPaddingInstanceState;
}
@@ -43,16 +29,12 @@ int getCameraTrackingMode() {
}
private NavigationMapboxMapInstanceState(Parcel in) {
- isWaynameVisible = in.readByte() != 0;
- waynameText = in.readString();
mapPaddingInstanceState = in.readParcelable(MapPaddingInstanceState.class.getClassLoader());
cameraTrackingMode = in.readInt();
}
@Override
public void writeToParcel(Parcel dest, int flags) {
- dest.writeByte((byte) (isWaynameVisible ? 1 : 0));
- dest.writeString(waynameText);
dest.writeParcelable(mapPaddingInstanceState, flags);
dest.writeInt(cameraTrackingMode);
}
diff --git a/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/map/OnWayNameChangedListener.java b/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/map/OnWayNameChangedListener.java
index ad1cd56185a..3dd6709b367 100644
--- a/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/map/OnWayNameChangedListener.java
+++ b/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/map/OnWayNameChangedListener.java
@@ -1,11 +1,14 @@
package com.mapbox.services.android.navigation.ui.v5.map;
+import android.support.annotation.NonNull;
+
/**
* A listener that can be added to the {@link NavigationMapboxMap} with
* {@link NavigationMapboxMap#addOnWayNameChangedListener(OnWayNameChangedListener)}.
*
* This listener is triggered when a new way name is found along the route. It will be triggered
- * regardless of the map way name visibility ({@link NavigationMapboxMap#updateWaynameVisibility(boolean)}).
+ * regardless of the map way name visibility
+ * ({@link com.mapbox.services.android.navigation.ui.v5.NavigationView#updateWayNameVisibility(boolean)}).
* This is so you can hide our implementation of the way name UI and update your own if you'd like.
*/
public interface OnWayNameChangedListener {
@@ -16,5 +19,5 @@ public interface OnWayNameChangedListener {
*
* @param wayName found along the route
*/
- void onWayNameChanged(String wayName);
+ void onWayNameChanged(@NonNull String wayName);
}
diff --git a/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/map/WayNameView.java b/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/map/WayNameView.java
new file mode 100644
index 00000000000..6d81ac63155
--- /dev/null
+++ b/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/map/WayNameView.java
@@ -0,0 +1,64 @@
+package com.mapbox.services.android.navigation.ui.v5.map;
+
+import android.content.Context;
+import android.graphics.drawable.Drawable;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import android.support.v4.graphics.drawable.DrawableCompat;
+import android.util.AttributeSet;
+import android.widget.FrameLayout;
+import android.widget.TextView;
+
+import com.mapbox.services.android.navigation.ui.v5.R;
+import com.mapbox.services.android.navigation.ui.v5.ThemeSwitcher;
+
+public class WayNameView extends FrameLayout {
+
+ private TextView wayNameText;
+
+ public WayNameView(Context context) {
+ super(context);
+ initialize();
+ }
+
+ public WayNameView(@NonNull Context context, @Nullable AttributeSet attrs) {
+ super(context, attrs);
+ initialize();
+ }
+
+ public WayNameView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ initialize();
+ }
+
+ public void updateWayNameText(String wayNameText) {
+ this.wayNameText.setText(wayNameText);
+ }
+
+ public String retrieveWayNameText() {
+ return wayNameText.getText().toString();
+ }
+
+ public void updateVisibility(boolean isVisible) {
+ int visibility = isVisible ? VISIBLE : INVISIBLE;
+ if (getVisibility() != visibility) {
+ setVisibility(visibility);
+ }
+ }
+
+ private void initialize() {
+ inflate(getContext(), R.layout.wayname_view_layout, this);
+ wayNameText = findViewById(R.id.waynameText);
+ Drawable waynameTextBackground = wayNameText.getBackground();
+ initializeBackground(waynameTextBackground);
+ }
+
+ private void initializeBackground(Drawable waynameTextBackground) {
+ if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.LOLLIPOP) {
+ int navigationViewPrimaryColor = ThemeSwitcher.retrieveThemeColor(getContext(),
+ R.attr.navigationViewPrimary);
+ Drawable soundChipBackground = DrawableCompat.wrap(waynameTextBackground).mutate();
+ DrawableCompat.setTint(soundChipBackground, navigationViewPrimaryColor);
+ }
+ }
+}
diff --git a/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/map/WaynameLayoutProvider.java b/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/map/WaynameLayoutProvider.java
deleted file mode 100644
index 46db06bf9de..00000000000
--- a/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/map/WaynameLayoutProvider.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.mapbox.services.android.navigation.ui.v5.map;
-
-import android.content.Context;
-import android.graphics.Bitmap;
-
-import com.mapbox.services.android.navigation.ui.v5.utils.ViewUtils;
-
-class WaynameLayoutProvider {
-
- private Context context;
-
- WaynameLayoutProvider(Context context) {
- this.context = context;
- }
-
- Bitmap generateLayoutBitmap(String wayname) {
- WaynameView waynameView = new WaynameView(context);
- waynameView.setWaynameText(wayname);
- return ViewUtils.loadBitmapFromView(waynameView);
- }
-}
diff --git a/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/map/WaynameView.java b/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/map/WaynameView.java
deleted file mode 100644
index fcf79bf74f4..00000000000
--- a/libandroid-navigation-ui/src/main/java/com/mapbox/services/android/navigation/ui/v5/map/WaynameView.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package com.mapbox.services.android.navigation.ui.v5.map;
-
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-import android.support.v4.graphics.drawable.DrawableCompat;
-import android.support.v7.widget.CardView;
-import android.widget.TextView;
-
-import com.mapbox.services.android.navigation.ui.v5.R;
-import com.mapbox.services.android.navigation.ui.v5.ThemeSwitcher;
-
-class WaynameView extends CardView {
-
- private static final int BACKGROUND_ALPHA = 220;
-
- private TextView waynameText;
- private int waynameHeight;
-
- WaynameView(Context context) {
- super(context);
- init();
- waynameHeight = (int) context.getResources().getDimension(R.dimen.wayname_view_height);
- }
-
- @Override
- protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- super.onMeasure(widthMeasureSpec, waynameHeight);
- }
-
- void setWaynameText(String waynameText) {
- this.waynameText.setText(waynameText);
- }
-
- private void init() {
- inflate(getContext(), R.layout.wayname_view_layout, this);
- waynameText = findViewById(R.id.waynameText);
- Drawable waynameTextBackground = waynameText.getBackground();
- initializeBackground(waynameTextBackground);
- }
-
- private void initializeBackground(Drawable waynameTextBackground) {
- waynameTextBackground.setAlpha(BACKGROUND_ALPHA);
- if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.LOLLIPOP) {
- int navigationViewPrimaryColor = ThemeSwitcher.retrieveThemeColor(getContext(),
- R.attr.navigationViewPrimary);
- Drawable soundChipBackground = DrawableCompat.wrap(waynameTextBackground).mutate();
- DrawableCompat.setTint(soundChipBackground, navigationViewPrimaryColor);
- }
- }
-}
diff --git a/libandroid-navigation-ui/src/main/res/layout-land/navigation_view_layout.xml b/libandroid-navigation-ui/src/main/res/layout-land/navigation_view_layout.xml
index 927543dedce..169f07c1c1b 100644
--- a/libandroid-navigation-ui/src/main/res/layout-land/navigation_view_layout.xml
+++ b/libandroid-navigation-ui/src/main/res/layout-land/navigation_view_layout.xml
@@ -37,6 +37,15 @@
app:layout_anchor="@id/summaryBottomSheet"
app:layout_anchorGravity="top|left"/>
+
+
@@ -38,6 +38,14 @@
app:layout_anchor="@id/summaryBottomSheet"
app:layout_anchorGravity="top|left"/>
+
-
+ android:layout_height="wrap_content"
+ android:paddingBottom="@dimen/wayname_bottom_padding">
+
+
+
+
diff --git a/libandroid-navigation-ui/src/main/res/values/dimens.xml b/libandroid-navigation-ui/src/main/res/values/dimens.xml
index 632c2e3682d..df1ccb9465f 100644
--- a/libandroid-navigation-ui/src/main/res/values/dimens.xml
+++ b/libandroid-navigation-ui/src/main/res/values/dimens.xml
@@ -2,4 +2,8 @@
8dp
16dp
+ 8dp
+ 16dp
+ 2dp
+ 200dp
\ No newline at end of file
diff --git a/libandroid-navigation-ui/src/test/java/com/mapbox/services/android/navigation/ui/v5/NavigationPresenterTest.java b/libandroid-navigation-ui/src/test/java/com/mapbox/services/android/navigation/ui/v5/NavigationPresenterTest.java
index 0a9782b5a04..5c197dc7072 100644
--- a/libandroid-navigation-ui/src/test/java/com/mapbox/services/android/navigation/ui/v5/NavigationPresenterTest.java
+++ b/libandroid-navigation-ui/src/test/java/com/mapbox/services/android/navigation/ui/v5/NavigationPresenterTest.java
@@ -34,7 +34,7 @@ public void onRouteOverviewButtonClick_mapWaynameIsHidden() {
presenter.onRouteOverviewClick();
- verify(view).updateWaynameVisibility(false);
+ verify(view).updateWayNameVisibility(false);
}
@Test
@@ -58,12 +58,53 @@ public void onRecenterBtnClick_cameraIsResetToTracking() {
}
@Test
- public void onRecenterBtnClick_mapWaynmeIsShown() {
+ public void onRecenterBtnClick_mapWayNameIsShown() {
NavigationContract.View view = mock(NavigationContract.View.class);
NavigationPresenter presenter = new NavigationPresenter(view);
presenter.onRecenterClick();
- verify(view).updateWaynameVisibility(true);
+ verify(view).updateWayNameVisibility(true);
+ }
+
+ @Test
+ public void onWayNameChanged_mapWayNameIsShown() {
+ NavigationContract.View view = mock(NavigationContract.View.class);
+ NavigationPresenter presenter = new NavigationPresenter(view);
+
+ presenter.onWayNameChanged("Some way name");
+
+ verify(view).updateWayNameVisibility(true);
+ }
+
+ @Test
+ public void onWayNameChanged_mapWayNameIsUpdated() {
+ String someWayName = "Some way name";
+ NavigationContract.View view = mock(NavigationContract.View.class);
+ NavigationPresenter presenter = new NavigationPresenter(view);
+
+ presenter.onWayNameChanged(someWayName);
+
+ verify(view).updateWayNameView(someWayName);
+ }
+
+ @Test
+ public void onWayNameChanged_mapWayNameIsHidden() {
+ NavigationContract.View view = mock(NavigationContract.View.class);
+ NavigationPresenter presenter = new NavigationPresenter(view);
+
+ presenter.onWayNameChanged("");
+
+ verify(view).updateWayNameVisibility(false);
+ }
+
+ @Test
+ public void onNavigationStopped_mapWayNameIsHidden() {
+ NavigationContract.View view = mock(NavigationContract.View.class);
+ NavigationPresenter presenter = new NavigationPresenter(view);
+
+ presenter.onNavigationStopped();
+
+ verify(view).updateWayNameVisibility(false);
}
}
diff --git a/libandroid-navigation-ui/src/test/java/com/mapbox/services/android/navigation/ui/v5/NavigationViewWayNameListenerTest.java b/libandroid-navigation-ui/src/test/java/com/mapbox/services/android/navigation/ui/v5/NavigationViewWayNameListenerTest.java
new file mode 100644
index 00000000000..dabb618fcf7
--- /dev/null
+++ b/libandroid-navigation-ui/src/test/java/com/mapbox/services/android/navigation/ui/v5/NavigationViewWayNameListenerTest.java
@@ -0,0 +1,23 @@
+package com.mapbox.services.android.navigation.ui.v5;
+
+import com.mapbox.services.android.navigation.ui.v5.map.OnWayNameChangedListener;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+
+public class NavigationViewWayNameListenerTest {
+
+ @Test
+ public void onWayNameChanged_presenterReceivesNewWayName() {
+ NavigationPresenter presenter = mock(NavigationPresenter.class);
+ String newWayName = "New way name";
+ OnWayNameChangedListener listener = new NavigationViewWayNameListener(presenter);
+
+ listener.onWayNameChanged(newWayName);
+
+ verify(presenter).onWayNameChanged(newWayName);
+ }
+}
\ No newline at end of file
diff --git a/libandroid-navigation-ui/src/test/java/com/mapbox/services/android/navigation/ui/v5/map/MapWayNameTest.java b/libandroid-navigation-ui/src/test/java/com/mapbox/services/android/navigation/ui/v5/map/MapWayNameTest.java
new file mode 100644
index 00000000000..e897c37e614
--- /dev/null
+++ b/libandroid-navigation-ui/src/test/java/com/mapbox/services/android/navigation/ui/v5/map/MapWayNameTest.java
@@ -0,0 +1,111 @@
+package com.mapbox.services.android.navigation.ui.v5.map;
+
+import android.graphics.PointF;
+import android.location.Location;
+import android.support.annotation.NonNull;
+
+import com.mapbox.geojson.Feature;
+import com.mapbox.geojson.Point;
+import com.mapbox.mapboxsdk.style.layers.PropertyValue;
+import com.mapbox.mapboxsdk.style.layers.SymbolLayer;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import static junit.framework.Assert.assertFalse;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+@RunWith(RobolectricTestRunner.class)
+public class MapWayNameTest {
+
+ @Test
+ public void onUpdateWaynameWithPoint_queryRenderedFeaturesIsCalled() {
+ WaynameFeatureFinder featureFinder = mock(WaynameFeatureFinder.class);
+ MapPaddingAdjustor paddingAdjustor = mock(MapPaddingAdjustor.class);
+ String[] layerIds = {"streetsLayer"};
+ PointF point = mock(PointF.class);
+ MapWayName mapWayName = new MapWayName(featureFinder, paddingAdjustor);
+ mapWayName.updateWayNameQueryMap(true);
+
+ mapWayName.updateWayNameWithPoint(point);
+
+ verify(featureFinder).queryRenderedFeatures(point, layerIds);
+ }
+
+ @Test
+ public void addOnWayNameChangedListener_duplicateListenerIgnored() {
+ String roadName = "roadName";
+ PointF point = mock(PointF.class);
+ List roads = buildRoadFeatureList(roadName);
+ MapWayName mapWayName = buildMapWayname(point, roads);
+ List stepPoints = new ArrayList<>();
+ stepPoints.add(mock(Point.class));
+ mapWayName.updateProgress(mock(Location.class), stepPoints);
+ OnWayNameChangedListener listener = mock(OnWayNameChangedListener.class);
+
+ mapWayName.addOnWayNameChangedListener(listener);
+ boolean wasAdded = mapWayName.addOnWayNameChangedListener(listener);
+
+ assertFalse(wasAdded);
+ }
+
+ @Test
+ public void removeOnWayNameChangedListener_duplicateListenerIgnored() {
+ String roadName = "roadName";
+ PointF point = mock(PointF.class);
+ List roads = buildRoadFeatureList(roadName);
+ MapWayName mapWayName = buildMapWayname(point, roads);
+ List stepPoints = new ArrayList<>();
+ stepPoints.add(mock(Point.class));
+ mapWayName.updateProgress(mock(Location.class), stepPoints);
+ OnWayNameChangedListener listener = mock(OnWayNameChangedListener.class);
+
+ mapWayName.removeOnWayNameChangedListener(listener);
+ boolean wasRemoved = mapWayName.removeOnWayNameChangedListener(listener);
+
+ assertFalse(wasRemoved);
+ }
+
+ @Test
+ public void onFeatureWithoutNamePropertyReturned_updateIsIgnored() {
+ PointF point = mock(PointF.class);
+ SymbolLayer waynameLayer = mock(SymbolLayer.class);
+ List roads = new ArrayList<>();
+ Feature road = mock(Feature.class);
+ roads.add(road);
+ MapWayName mapWayName = buildMapWayname(point, roads);
+
+ mapWayName.updateWayNameWithPoint(point);
+
+ verify(waynameLayer, times(0)).setProperties(any(PropertyValue.class));
+ }
+
+ @NonNull
+ private MapWayName buildMapWayname(PointF point, List roads) {
+ String[] layerIds = {"streetsLayer"};
+ WaynameFeatureFinder featureInteractor = mock(WaynameFeatureFinder.class);
+ when(featureInteractor.queryRenderedFeatures(point, layerIds)).thenReturn(roads);
+ MapPaddingAdjustor paddingAdjustor = mock(MapPaddingAdjustor.class);
+ MapWayName mapWayName = new MapWayName(featureInteractor, paddingAdjustor);
+ mapWayName.updateWayNameQueryMap(true);
+ return mapWayName;
+ }
+
+ @NonNull
+ private List buildRoadFeatureList(String roadName) {
+ List roads = new ArrayList<>();
+ Feature road = mock(Feature.class);
+ when(road.hasNonNullValueForProperty("name")).thenReturn(true);
+ when(road.getStringProperty("name")).thenReturn(roadName);
+ roads.add(road);
+ return roads;
+ }
+}
\ No newline at end of file
diff --git a/libandroid-navigation-ui/src/test/java/com/mapbox/services/android/navigation/ui/v5/map/MapWaynameTest.java b/libandroid-navigation-ui/src/test/java/com/mapbox/services/android/navigation/ui/v5/map/MapWaynameTest.java
deleted file mode 100644
index 8adf0e86481..00000000000
--- a/libandroid-navigation-ui/src/test/java/com/mapbox/services/android/navigation/ui/v5/map/MapWaynameTest.java
+++ /dev/null
@@ -1,318 +0,0 @@
-package com.mapbox.services.android.navigation.ui.v5.map;
-
-import android.graphics.Bitmap;
-import android.graphics.PointF;
-import android.location.Location;
-import android.support.annotation.NonNull;
-
-import com.mapbox.geojson.Feature;
-import com.mapbox.geojson.Point;
-import com.mapbox.mapboxsdk.style.layers.Property;
-import com.mapbox.mapboxsdk.style.layers.PropertyValue;
-import com.mapbox.mapboxsdk.style.layers.SymbolLayer;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.visibility;
-import static com.mapbox.services.android.navigation.v5.navigation.NavigationConstants.MAPBOX_WAYNAME_ICON;
-import static com.mapbox.services.android.navigation.v5.navigation.NavigationConstants.MAPBOX_WAYNAME_LAYER;
-import static junit.framework.Assert.assertFalse;
-import static junit.framework.Assert.assertTrue;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-@RunWith(RobolectricTestRunner.class)
-public class MapWaynameTest {
-
- @Test
- public void onUpdateWaynameWithPoint_queryRenderedFeaturesIsCalled() {
- WaynameLayoutProvider layoutProvider = mock(WaynameLayoutProvider.class);
- MapLayerInteractor layerInteractor = mock(MapLayerInteractor.class);
- SymbolLayer waynameLayer = mock(SymbolLayer.class);
- when(waynameLayer.getVisibility()).thenReturn(visibility(Property.VISIBLE));
- when(layerInteractor.retrieveLayerFromId(MAPBOX_WAYNAME_LAYER)).thenReturn(waynameLayer);
- WaynameFeatureFinder featureInteractor = mock(WaynameFeatureFinder.class);
- MapPaddingAdjustor paddingAdjustor = mock(MapPaddingAdjustor.class);
- String[] layerIds = {"streetsLayer"};
- PointF point = mock(PointF.class);
- MapWayname mapWayname = new MapWayname(layoutProvider, layerInteractor, featureInteractor, paddingAdjustor);
- mapWayname.updateWaynameVisibility(true, waynameLayer);
- mapWayname.updateWaynameQueryMap(true);
-
- mapWayname.updateWaynameWithPoint(point, waynameLayer);
-
- verify(featureInteractor).queryRenderedFeatures(point, layerIds);
- }
-
- @Test
- public void onRoadsReturnedFromQuery_layoutIconAdded() {
- String roadName = "roadName";
- PointF point = mock(PointF.class);
- SymbolLayer waynameLayer = mock(SymbolLayer.class);
- List roads = buildRoadFeatureList(roadName);
- WaynameLayoutProvider layoutProvider = mock(WaynameLayoutProvider.class);
- when(layoutProvider.generateLayoutBitmap(roadName)).thenReturn(mock(Bitmap.class));
- MapWayname mapWayname = buildMapWayname(point, layoutProvider, waynameLayer, roads);
- List stepPoints = new ArrayList<>();
- stepPoints.add(mock(Point.class));
- mapWayname.updateProgress(mock(Location.class), stepPoints);
- mapWayname.updateWaynameVisibility(true, waynameLayer);
-
- mapWayname.updateWaynameWithPoint(point, waynameLayer);
-
- verify(layoutProvider, times(1)).generateLayoutBitmap(roadName);
- }
-
- @Test
- public void updateWaynameWithPointWhileVisible_listenerIsTriggered() {
- String roadName = "roadName";
- PointF point = mock(PointF.class);
- SymbolLayer waynameLayer = mock(SymbolLayer.class);
- List roads = buildRoadFeatureList(roadName);
- WaynameLayoutProvider layoutProvider = mock(WaynameLayoutProvider.class);
- MapWayname mapWayname = buildMapWayname(point, layoutProvider, waynameLayer, roads);
- List stepPoints = new ArrayList<>();
- stepPoints.add(mock(Point.class));
- mapWayname.updateProgress(mock(Location.class), stepPoints);
- OnWayNameChangedListener listener = mock(OnWayNameChangedListener.class);
- mapWayname.addOnWayNameChangedListener(listener);
-
- mapWayname.updateWaynameVisibility(true, waynameLayer);
- mapWayname.updateWaynameWithPoint(point, waynameLayer);
-
- verify(listener).onWayNameChanged(roadName);
- }
-
- @Test
- public void updateWaynameWithPointWhileInvisible_listenerIsTriggered() {
- String roadName = "roadName";
- PointF point = mock(PointF.class);
- SymbolLayer waynameLayer = mock(SymbolLayer.class);
- List roads = buildRoadFeatureList(roadName);
- WaynameLayoutProvider layoutProvider = mock(WaynameLayoutProvider.class);
- MapWayname mapWayname = buildMapWayname(point, layoutProvider, waynameLayer, roads);
- List stepPoints = new ArrayList<>();
- stepPoints.add(mock(Point.class));
- mapWayname.updateProgress(mock(Location.class), stepPoints);
- OnWayNameChangedListener listener = mock(OnWayNameChangedListener.class);
- mapWayname.addOnWayNameChangedListener(listener);
-
- mapWayname.updateWaynameVisibility(false, waynameLayer);
- mapWayname.updateWaynameWithPoint(point, waynameLayer);
-
- verify(listener).onWayNameChanged(roadName);
- }
-
- @Test
- public void addOnWayNameChangedListener_duplicateListenerIgnored() {
- String roadName = "roadName";
- PointF point = mock(PointF.class);
- SymbolLayer waynameLayer = mock(SymbolLayer.class);
- List roads = buildRoadFeatureList(roadName);
- WaynameLayoutProvider layoutProvider = mock(WaynameLayoutProvider.class);
- MapWayname mapWayname = buildMapWayname(point, layoutProvider, waynameLayer, roads);
- List stepPoints = new ArrayList<>();
- stepPoints.add(mock(Point.class));
- mapWayname.updateProgress(mock(Location.class), stepPoints);
- mapWayname.updateWaynameVisibility(true, waynameLayer);
- OnWayNameChangedListener listener = mock(OnWayNameChangedListener.class);
-
- mapWayname.addOnWayNameChangedListener(listener);
- boolean wasAdded = mapWayname.addOnWayNameChangedListener(listener);
-
- assertFalse(wasAdded);
- }
-
- @Test
- public void removeOnWayNameChangedListener_duplicateListenerIgnored() {
- String roadName = "roadName";
- PointF point = mock(PointF.class);
- SymbolLayer waynameLayer = mock(SymbolLayer.class);
- List roads = buildRoadFeatureList(roadName);
- WaynameLayoutProvider layoutProvider = mock(WaynameLayoutProvider.class);
- MapWayname mapWayname = buildMapWayname(point, layoutProvider, waynameLayer, roads);
- List stepPoints = new ArrayList<>();
- stepPoints.add(mock(Point.class));
- mapWayname.updateProgress(mock(Location.class), stepPoints);
- mapWayname.updateWaynameVisibility(true, waynameLayer);
- OnWayNameChangedListener listener = mock(OnWayNameChangedListener.class);
-
- mapWayname.removeOnWayNameChangedListener(listener);
- boolean wasRemoved = mapWayname.removeOnWayNameChangedListener(listener);
-
- assertFalse(wasRemoved);
- }
-
- @Test
- public void onFeatureWithoutNamePropertyReturned_updateIsIgnored() {
- PointF point = mock(PointF.class);
- SymbolLayer waynameLayer = mock(SymbolLayer.class);
- List roads = new ArrayList<>();
- Feature road = mock(Feature.class);
- roads.add(road);
- MapWayname mapWayname = buildMapWayname(point, waynameLayer, roads);
-
- mapWayname.updateWaynameWithPoint(point, waynameLayer);
-
- verify(waynameLayer, times(0)).setProperties(any(PropertyValue.class));
- }
-
- @Test
- public void onVisibiltySetToFalse_paddingIsAdjusted() {
- SymbolLayer waynameLayer = mock(SymbolLayer.class);
- when(waynameLayer.getVisibility()).thenReturn(visibility(Property.VISIBLE));
- MapLayerInteractor layerInteractor = mock(MapLayerInteractor.class);
- when(layerInteractor.retrieveLayerFromId(MAPBOX_WAYNAME_LAYER)).thenReturn(waynameLayer);
- MapPaddingAdjustor paddingAdjustor = mock(MapPaddingAdjustor.class);
-
- buildMapWayname(layerInteractor, paddingAdjustor);
-
- verify(paddingAdjustor).updatePaddingWithDefault();
- }
-
- @Test
- public void onVisibiltySetToTrue_paddingIsAdjusted() {
- SymbolLayer waynameLayer = mock(SymbolLayer.class);
- when(waynameLayer.getVisibility()).thenReturn(visibility(Property.NONE));
- MapLayerInteractor layerInteractor = mock(MapLayerInteractor.class);
- when(layerInteractor.retrieveLayerFromId(MAPBOX_WAYNAME_LAYER)).thenReturn(waynameLayer);
- MapPaddingAdjustor paddingAdjustor = mock(MapPaddingAdjustor.class);
- MapWayname mapWayname = buildMapWayname(layerInteractor, paddingAdjustor);
-
- mapWayname.updateWaynameVisibility(true, waynameLayer);
-
- verify(paddingAdjustor).updatePaddingWithDefault();
- }
-
- @Test
- public void onVisibiltySetToFalse_isVisibleReturnsFalse() {
- SymbolLayer waynameLayer = mock(SymbolLayer.class);
- when(waynameLayer.getVisibility()).thenReturn(visibility(Property.VISIBLE));
- MapLayerInteractor layerInteractor = mock(MapLayerInteractor.class);
- when(layerInteractor.retrieveLayerFromId(MAPBOX_WAYNAME_LAYER)).thenReturn(waynameLayer);
- MapPaddingAdjustor paddingAdjustor = mock(MapPaddingAdjustor.class);
- MapWayname mapWayname = buildMapWayname(layerInteractor, paddingAdjustor);
-
- mapWayname.updateWaynameVisibility(false, waynameLayer);
-
- assertFalse(mapWayname.isVisible());
- }
-
- @Test
- public void onVisibiltySetToTrue_isVisibleReturnsTrue() {
- SymbolLayer waynameLayer = mock(SymbolLayer.class);
- when(waynameLayer.getVisibility()).thenReturn(visibility(Property.NONE));
- MapLayerInteractor layerInteractor = mock(MapLayerInteractor.class);
- when(layerInteractor.retrieveLayerFromId(MAPBOX_WAYNAME_LAYER)).thenReturn(waynameLayer);
- MapPaddingAdjustor paddingAdjustor = mock(MapPaddingAdjustor.class);
- MapWayname mapWayname = buildMapWayname(layerInteractor, paddingAdjustor);
-
- mapWayname.updateWaynameVisibility(true, waynameLayer);
-
- assertTrue(mapWayname.isVisible());
- }
-
- @Test
- public void onRoadsReturnedFromQuery_layoutProviderGeneratesBitmap() {
- String roadName = "roadName";
- PointF point = mock(PointF.class);
- SymbolLayer waynameLayer = mock(SymbolLayer.class);
- List roads = buildRoadFeatureList(roadName);
- WaynameLayoutProvider layoutProvider = mock(WaynameLayoutProvider.class);
- when(layoutProvider.generateLayoutBitmap(roadName)).thenReturn(mock(Bitmap.class));
- MapWayname mapWayname = buildMapWayname(point, layoutProvider, waynameLayer, roads);
- mapWayname.updateWaynameVisibility(true, waynameLayer);
- List stepPoints = new ArrayList<>();
- stepPoints.add(mock(Point.class));
- mapWayname.updateProgress(mock(Location.class), stepPoints);
-
- mapWayname.updateWaynameWithPoint(point, waynameLayer);
-
- verify(layoutProvider).generateLayoutBitmap(roadName);
- }
-
- @Test
- public void onUpdateWaynameLayer_layerImageIsAdded() {
- String roadName = "roadName";
- SymbolLayer waynameLayer = mock(SymbolLayer.class);
- when(waynameLayer.getVisibility()).thenReturn(visibility(Property.VISIBLE));
- MapLayerInteractor layerInteractor = mock(MapLayerInteractor.class);
- when(layerInteractor.retrieveLayerFromId(MAPBOX_WAYNAME_LAYER)).thenReturn(waynameLayer);
- Bitmap bitmap = mock(Bitmap.class);
- WaynameLayoutProvider layoutProvider = mock(WaynameLayoutProvider.class);
- when(layoutProvider.generateLayoutBitmap(roadName)).thenReturn(bitmap);
- MapWayname mapWayname = buildMapWayname(layoutProvider, layerInteractor);
-
- mapWayname.updateWaynameLayer(roadName, waynameLayer);
-
- verify(layerInteractor).addLayerImage(MAPBOX_WAYNAME_ICON, bitmap);
- }
-
- @NonNull
- private MapWayname buildMapWayname(PointF point, WaynameLayoutProvider layoutProvider,
- SymbolLayer waynameLayer, List roads) {
- String[] layerIds = {"streetsLayer"};
- MapLayerInteractor layerInteractor = mock(MapLayerInteractor.class);
- when(waynameLayer.getVisibility()).thenReturn(visibility(Property.VISIBLE));
- when(layerInteractor.retrieveLayerFromId(MAPBOX_WAYNAME_LAYER)).thenReturn(waynameLayer);
- WaynameFeatureFinder featureInteractor = mock(WaynameFeatureFinder.class);
- when(featureInteractor.queryRenderedFeatures(point, layerIds)).thenReturn(roads);
- MapPaddingAdjustor paddingAdjustor = mock(MapPaddingAdjustor.class);
- MapWayname mapWayname = new MapWayname(layoutProvider, layerInteractor, featureInteractor, paddingAdjustor);
- mapWayname.updateWaynameQueryMap(true);
- return mapWayname;
- }
-
- @NonNull
- private MapWayname buildMapWayname(WaynameLayoutProvider layoutProvider, MapLayerInteractor layerInteractor) {
- WaynameFeatureFinder featureInteractor = mock(WaynameFeatureFinder.class);
- MapPaddingAdjustor paddingAdjustor = mock(MapPaddingAdjustor.class);
- MapWayname mapWayname = new MapWayname(layoutProvider, layerInteractor, featureInteractor, paddingAdjustor);
- mapWayname.updateWaynameQueryMap(true);
- return mapWayname;
- }
-
- @NonNull
- private MapWayname buildMapWayname(MapLayerInteractor layerInteractor, MapPaddingAdjustor paddingAdjustor) {
- WaynameLayoutProvider layoutProvider = mock(WaynameLayoutProvider.class);
- WaynameFeatureFinder featureInteractor = mock(WaynameFeatureFinder.class);
- MapWayname mapWayname = new MapWayname(layoutProvider, layerInteractor, featureInteractor, paddingAdjustor);
- mapWayname.updateWaynameQueryMap(true);
- return mapWayname;
- }
-
- @NonNull
- private MapWayname buildMapWayname(PointF point, SymbolLayer waynameLayer, List roads) {
- String roadName = "roadName";
- String[] layerIds = {"streetsLayer"};
- WaynameLayoutProvider layoutProvider = mock(WaynameLayoutProvider.class);
- when(layoutProvider.generateLayoutBitmap(roadName)).thenReturn(mock(Bitmap.class));
- MapLayerInteractor layerInteractor = mock(MapLayerInteractor.class);
- when(waynameLayer.getVisibility()).thenReturn(visibility(Property.VISIBLE));
- when(layerInteractor.retrieveLayerFromId(MAPBOX_WAYNAME_LAYER)).thenReturn(waynameLayer);
- WaynameFeatureFinder featureInteractor = mock(WaynameFeatureFinder.class);
- when(featureInteractor.queryRenderedFeatures(point, layerIds)).thenReturn(roads);
- MapPaddingAdjustor paddingAdjustor = mock(MapPaddingAdjustor.class);
- MapWayname mapWayname = new MapWayname(layoutProvider, layerInteractor, featureInteractor, paddingAdjustor);
- mapWayname.updateWaynameQueryMap(true);
- return mapWayname;
- }
-
- @NonNull
- private List buildRoadFeatureList(String roadName) {
- List roads = new ArrayList<>();
- Feature road = mock(Feature.class);
- when(road.hasNonNullValueForProperty("name")).thenReturn(true);
- when(road.getStringProperty("name")).thenReturn(roadName);
- roads.add(road);
- return roads;
- }
-}
\ No newline at end of file
diff --git a/libandroid-navigation-ui/src/test/java/com/mapbox/services/android/navigation/ui/v5/map/NavigationMapboxMapTest.java b/libandroid-navigation-ui/src/test/java/com/mapbox/services/android/navigation/ui/v5/map/NavigationMapboxMapTest.java
index 58b52d0638f..a107b37fb88 100644
--- a/libandroid-navigation-ui/src/test/java/com/mapbox/services/android/navigation/ui/v5/map/NavigationMapboxMapTest.java
+++ b/libandroid-navigation-ui/src/test/java/com/mapbox/services/android/navigation/ui/v5/map/NavigationMapboxMapTest.java
@@ -105,7 +105,7 @@ public void showAlternativeRoutes_correctVisibilityIsSet() {
@Test
public void addOnWayNameChangedListener_listenerIsAddedToMapWayname() {
- MapWayname mapWayName = mock(MapWayname.class);
+ MapWayName mapWayName = mock(MapWayName.class);
NavigationMapboxMap theNavigationMap = new NavigationMapboxMap(mapWayName);
OnWayNameChangedListener listener = mock(OnWayNameChangedListener.class);
@@ -116,7 +116,7 @@ public void addOnWayNameChangedListener_listenerIsAddedToMapWayname() {
@Test
public void removeOnWayNameChangedListener_listenerIsRemovedFromMapWayname() {
- MapWayname mapWayName = mock(MapWayname.class);
+ MapWayName mapWayName = mock(MapWayName.class);
NavigationMapboxMap theNavigationMap = new NavigationMapboxMap(mapWayName);
OnWayNameChangedListener listener = mock(OnWayNameChangedListener.class);