Add Rerouting status to Cluster am: 81c598de4a am: c2c69f0f54 am: 79fa21c0a2
am: 536d84bf8a
Change-Id: I8240cb8d89f530f781c08e9ff790c5314f4066ea
diff --git a/res/layout/include_navigation_state.xml b/res/layout/include_navigation_state.xml
index af04cf1..5cd6ff5 100644
--- a/res/layout/include_navigation_state.xml
+++ b/res/layout/include_navigation_state.xml
@@ -5,6 +5,7 @@
android:orientation="horizontal">
<LinearLayout
+ android:id="@+id/section_maneuver"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
@@ -24,6 +25,21 @@
</LinearLayout>
<LinearLayout
+ android:id="@+id/section_service_status"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
+
+ <TextView
+ android:id="@+id/service_status"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="Rerouting..."
+ android:textSize="@dimen/distance_text_size"/>
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/section_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
diff --git a/src/android/car/cluster/NavStateController.java b/src/android/car/cluster/NavStateController.java
index 7ac32ac..facab51 100644
--- a/src/android/car/cluster/NavStateController.java
+++ b/src/android/car/cluster/NavStateController.java
@@ -31,6 +31,7 @@
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
+import android.widget.LinearLayout;
import android.widget.TextView;
import java.time.Instant;
@@ -43,6 +44,10 @@
private Handler mHandler = new Handler();
+ private LinearLayout mSectionManeuver;
+ private LinearLayout mSectionNavigation;
+ private LinearLayout mSectionServiceStatus;
+
private ImageView mManeuver;
private ImageView mProvidedManeuver;
private LaneView mLane;
@@ -61,6 +66,10 @@
* @param container {@link View} containing the navigation state views
*/
public NavStateController(View container) {
+ mSectionManeuver = container.findViewById(R.id.section_maneuver);
+ mSectionNavigation = container.findViewById(R.id.section_navigation);
+ mSectionServiceStatus = container.findViewById(R.id.section_service_status);
+
mManeuver = container.findViewById(R.id.maneuver);
mProvidedManeuver = container.findViewById(R.id.provided_maneuver);
mLane = container.findViewById(R.id.lane);
@@ -84,8 +93,24 @@
if (Log.isLoggable(TAG, Log.DEBUG)) {
Log.d(TAG, "Updating nav state: " + state);
}
- Step step = state != null && state.getStepsCount() > 0 ? state.getSteps(0) : null;
- Destination destination = state != null && state.getDestinationsCount() > 0
+
+ if (state == null) {
+ return;
+ }
+
+ if (state.getServiceStatus() == NavigationStateProto.ServiceStatus.REROUTING) {
+ mSectionManeuver.setVisibility(View.INVISIBLE);
+ mSectionNavigation.setVisibility(View.INVISIBLE);
+ mSectionServiceStatus.setVisibility(View.VISIBLE);
+ return;
+ } else {
+ mSectionManeuver.setVisibility(View.VISIBLE);
+ mSectionNavigation.setVisibility(View.VISIBLE);
+ mSectionServiceStatus.setVisibility(View.GONE);
+ }
+
+ Step step = state.getStepsCount() > 0 ? state.getSteps(0) : null;
+ Destination destination = state.getDestinationsCount() > 0
? state.getDestinations(0) : null;
Traffic traffic = destination != null ? destination.getTraffic() : null;
String eta = destination != null
@@ -100,7 +125,7 @@
? step.getManeuver().hasIcon() ? step.getManeuver().getIcon() : null
: null);
mDistance.setText(formatDistance(step != null ? step.getDistance() : null));
- mSegment.setText(state != null ? getSegmentString(state.getCurrentRoad()) : null);
+ mSegment.setText(getSegmentString(state.getCurrentRoad()));
mCue.setCue(step != null ? step.getCue() : null, mImageResolver);
if (step != null && step.getLanesCount() > 0) {