Un-hide some of the APIs in relation to nav state API.

Also removed some now-redundant methods. Since these methods were
previously @hide, there should be no harm in removing them as we
un-@hide onEvent.

Test: make update-car-api
Change-Id: I28d4621b3bcae01489dceea487d15878bbbeaa6b
diff --git a/car-cluster-logging-renderer/src/android/car/cluster/loggingrenderer/LoggingClusterRenderingService.java b/car-cluster-logging-renderer/src/android/car/cluster/loggingrenderer/LoggingClusterRenderingService.java
index b6ed388..381b7ee 100644
--- a/car-cluster-logging-renderer/src/android/car/cluster/loggingrenderer/LoggingClusterRenderingService.java
+++ b/car-cluster-logging-renderer/src/android/car/cluster/loggingrenderer/LoggingClusterRenderingService.java
@@ -43,34 +43,6 @@
                 return config;
             }
 
-
-            @Override
-            public void onStartNavigation() {
-                Log.i(TAG, "onStartNavigation");
-            }
-
-            @Override
-            public void onStopNavigation() {
-                Log.i(TAG, "onStopNavigation");
-            }
-
-            @Override
-            public void onNextTurnChanged(int event, CharSequence eventName, int turnAngle,
-                    int turnNumber, Bitmap image, int turnSide) {
-                Log.i(TAG, "event: " + event + ", eventName: " + eventName +
-                        ", turnAngle: " + turnAngle + ", turnNumber: " + turnNumber +
-                        ", image: " + image + ", turnSide: " + turnSide);
-            }
-
-            @Override
-            public void onNextTurnDistanceChanged(int distanceMeters, int timeSeconds,
-                    int displayDistanceMillis, int displayDistanceUnit) {
-                Log.i(TAG, "onNextTurnDistanceChanged, distanceMeters: " + distanceMeters
-                        + ", timeSeconds: " + timeSeconds
-                        + ", displayDistanceMillis: " + displayDistanceMillis
-                        + ", displayDistanceUnit: " + displayDistanceUnit);
-            }
-
             @Override
             public void onEvent(int eventType, Bundle bundle) {
                 Log.i(TAG, "onEvent, eventType: " + eventType + ", bundle: " + bundle);
diff --git a/car-lib/api/current.txt b/car-lib/api/current.txt
index 281d5b5..32952f9 100644
--- a/car-lib/api/current.txt
+++ b/car-lib/api/current.txt
@@ -343,6 +343,15 @@
 
 }
 
+package android.car.navigation {
+
+  public final class CarNavigationStatusManager {
+    method public android.car.navigation.CarNavigationInstrumentCluster getInstrumentClusterInfo() throws android.car.CarNotConnectedException;
+    method public void sendEvent(int, android.os.Bundle) throws android.car.CarNotConnectedException;
+  }
+
+}
+
 package android.car.settings {
 
   public class CarSettings {
diff --git a/car-lib/api/system-current.txt b/car-lib/api/system-current.txt
index 390e1fc..a4856cd 100644
--- a/car-lib/api/system-current.txt
+++ b/car-lib/api/system-current.txt
@@ -137,10 +137,7 @@
   public abstract class NavigationRenderer {
     ctor public NavigationRenderer();
     method public abstract android.car.navigation.CarNavigationInstrumentCluster getNavigationProperties();
-    method public abstract void onNextTurnChanged(int, java.lang.CharSequence, int, int, android.graphics.Bitmap, int);
-    method public abstract void onNextTurnDistanceChanged(int, int, int, int);
-    method public abstract void onStartNavigation();
-    method public abstract void onStopNavigation();
+    method public abstract void onEvent(int, android.os.Bundle);
   }
 
 }
diff --git a/car-lib/src/android/car/cluster/renderer/IInstrumentClusterNavigation.aidl b/car-lib/src/android/car/cluster/renderer/IInstrumentClusterNavigation.aidl
index b1fb7b1..6f33a9d 100644
--- a/car-lib/src/android/car/cluster/renderer/IInstrumentClusterNavigation.aidl
+++ b/car-lib/src/android/car/cluster/renderer/IInstrumentClusterNavigation.aidl
@@ -25,13 +25,6 @@
  * @hide
  */
 interface IInstrumentClusterNavigation {
-    void onStartNavigation();
-    void onStopNavigation();
-    void onNextManeuverChanged(
-        int event, CharSequence eventName, int turnAngle, int turnNumber, in Bitmap image,
-        int turnSide);
-    void onNextManeuverDistanceChanged(int distanceMeters, int timeSeconds,
-        int displayDistanceMillis, int displayDistanceUnit);
     void onEvent(int eventType, in Bundle bundle);
     CarNavigationInstrumentCluster getInstrumentClusterInfo();
 }
diff --git a/car-lib/src/android/car/cluster/renderer/InstrumentClusterRenderingService.java b/car-lib/src/android/car/cluster/renderer/InstrumentClusterRenderingService.java
index e34f2fa..304f732 100644
--- a/car-lib/src/android/car/cluster/renderer/InstrumentClusterRenderingService.java
+++ b/car-lib/src/android/car/cluster/renderer/InstrumentClusterRenderingService.java
@@ -239,34 +239,6 @@
         }
 
         @Override
-        public void onStartNavigation() throws RemoteException {
-            assertContextOwnership();
-            mNavigationRenderer.onStartNavigation();
-        }
-
-        @Override
-        public void onStopNavigation() throws RemoteException {
-            assertContextOwnership();
-            mNavigationRenderer.onStopNavigation();
-        }
-
-        @Override
-        public void onNextManeuverChanged(int event, CharSequence eventName, int turnAngle,
-                int turnNumber, Bitmap image, int turnSide) throws RemoteException {
-            assertContextOwnership();
-            mNavigationRenderer.onNextTurnChanged(event, eventName, turnAngle, turnNumber,
-                    image, turnSide);
-        }
-
-        @Override
-        public void onNextManeuverDistanceChanged(int distanceMeters, int timeSeconds,
-                int displayDistanceMillis, int displayDistanceUnit) throws RemoteException {
-            assertContextOwnership();
-            mNavigationRenderer.onNextTurnDistanceChanged(distanceMeters, timeSeconds,
-                    displayDistanceMillis, displayDistanceUnit);
-        }
-
-        @Override
         public void onEvent(int eventType, Bundle bundle) throws RemoteException {
             assertContextOwnership();
             mNavigationRenderer.onEvent(eventType, bundle);
diff --git a/car-lib/src/android/car/cluster/renderer/NavigationRenderer.java b/car-lib/src/android/car/cluster/renderer/NavigationRenderer.java
index 0958548..4681a8b 100644
--- a/car-lib/src/android/car/cluster/renderer/NavigationRenderer.java
+++ b/car-lib/src/android/car/cluster/renderer/NavigationRenderer.java
@@ -24,7 +24,6 @@
 /**
  * Contains methods specified for Navigation App renderer in instrument cluster.
  *
- * TODO: Consider to add methods to report time / distance to final destination. bug:32060070
  * @hide
  */
 @SystemApi
@@ -35,13 +34,8 @@
      */
     abstract public CarNavigationInstrumentCluster getNavigationProperties();
 
-    abstract public void onStartNavigation();
-    abstract public void onStopNavigation();
-    abstract public void onNextTurnChanged(int event, CharSequence eventName, int turnAngle,
-            int turnNumber, Bitmap image, int turnSide);
-    abstract public void onNextTurnDistanceChanged(int distanceMeters, int timeSeconds,
-            int displayDistanceMillis, int displayDistanceUnit);
-
-    /** @hide */
-    public void onEvent(int eventType, Bundle bundle) {}
+    /**
+     * Called when an event is fired to change the navigation state.
+     */
+    abstract public void onEvent(int eventType, Bundle bundle);
 }
diff --git a/car-lib/src/android/car/cluster/renderer/ThreadSafeNavigationRenderer.java b/car-lib/src/android/car/cluster/renderer/ThreadSafeNavigationRenderer.java
index 047ed90..251b670 100644
--- a/car-lib/src/android/car/cluster/renderer/ThreadSafeNavigationRenderer.java
+++ b/car-lib/src/android/car/cluster/renderer/ThreadSafeNavigationRenderer.java
@@ -30,16 +30,13 @@
  * A wrapper over {@link NavigationRenderer} that runs all its methods in the context of provided
  * looper. It is guaranteed that all calls will be invoked in order they were called.
  */
+// TODO(deanh): Does this class even need to exist?
 /* package */ class ThreadSafeNavigationRenderer extends NavigationRenderer {
 
     private final Handler mHandler;
     private final NavigationRenderer mRenderer;
 
-    private final static int MSG_NAV_START = 1;
-    private final static int MSG_NAV_STOP = 2;
-    private final static int MSG_NAV_NEXT_TURN = 3;
-    private final static int MSG_NAV_NEXT_TURN_DISTANCE = 4;
-    private final static int MSG_EVENT = 5;
+    private final static int MSG_EVENT = 1;
 
     /** Creates thread-safe {@link NavigationRenderer}. Returns null if renderer == null */
     @Nullable
@@ -68,31 +65,6 @@
     }
 
     @Override
-    public void onStartNavigation() {
-        mHandler.sendMessage(mHandler.obtainMessage(MSG_NAV_START));
-    }
-
-    @Override
-    public void onStopNavigation() {
-        mHandler.sendMessage(mHandler.obtainMessage(MSG_NAV_STOP));
-    }
-
-    @Override
-    public void onNextTurnChanged(int event, CharSequence eventName, int turnAngle, int turnNumber,
-            Bitmap image, int turnSide) {
-        mHandler.sendMessage(mHandler.obtainMessage(MSG_NAV_NEXT_TURN,
-                new NextTurn(event, eventName, turnAngle, turnNumber, image, turnSide)));
-    }
-
-    @Override
-    public void onNextTurnDistanceChanged(int distanceMeters, int timeSeconds,
-            int displayDistanceMillis, int displayDistanceUnit) {
-        ManeuverDistance distance = new ManeuverDistance(distanceMeters, timeSeconds,
-                displayDistanceMillis, displayDistanceUnit);
-        mHandler.sendMessage(mHandler.obtainMessage(MSG_NAV_NEXT_TURN_DISTANCE, distance));
-    }
-
-    @Override
     public void onEvent(int eventType, Bundle bundle) {
         mHandler.sendMessage(mHandler.obtainMessage(MSG_EVENT, eventType, 0, bundle));
     }
@@ -106,22 +78,6 @@
         @Override
         public void handleMessage(Message msg, NavigationRenderer renderer) {
             switch (msg.what) {
-                case MSG_NAV_START:
-                    renderer.onStartNavigation();
-                    break;
-                case MSG_NAV_STOP:
-                    renderer.onStopNavigation();
-                    break;
-                case MSG_NAV_NEXT_TURN:
-                    NextTurn nt = (NextTurn) msg.obj;
-                    renderer.onNextTurnChanged(nt.event, nt.eventName, nt.turnAngle, nt.turnNumber,
-                            nt.bitmap, nt.turnSide);
-                    break;
-                case MSG_NAV_NEXT_TURN_DISTANCE:
-                    ManeuverDistance d = (ManeuverDistance) msg.obj;
-                    renderer.onNextTurnDistanceChanged(
-                            d.meters, d.seconds, d.displayDistanceMillis, d.displayDistanceUnit);
-                    break;
                 case MSG_EVENT:
                     Bundle bundle = (Bundle) msg.obj;
                     renderer.onEvent(msg.arg1, bundle);
@@ -153,25 +109,6 @@
         return runnable.getResult();
     }
 
-    private static class NextTurn {
-        private final int event;
-        private final CharSequence eventName;
-        private final int turnAngle;
-        private final int turnNumber;
-        private final Bitmap bitmap;
-        private final int turnSide;
-
-        NextTurn(int event, CharSequence eventName, int turnAngle, int turnNumber, Bitmap bitmap,
-                int turnSide) {
-            this.event = event;
-            this.eventName = eventName;
-            this.turnAngle = turnAngle;
-            this.turnNumber = turnNumber;
-            this.bitmap = bitmap;
-            this.turnSide = turnSide;
-        }
-    }
-
     private static abstract class RunnableWithResult<T> implements Runnable {
         private volatile T result;
 
@@ -206,19 +143,4 @@
 
         public abstract void handleMessage(Message msg, T renderer);
     }
-
-    private static class ManeuverDistance {
-        final int meters;
-        final int seconds;
-        final int displayDistanceMillis;
-        final int displayDistanceUnit;
-
-        ManeuverDistance(int meters, int seconds, int displayDistanceMillis,
-                int displayDistanceUnit) {
-            this.meters = meters;
-            this.seconds = seconds;
-            this.displayDistanceMillis = displayDistanceMillis;
-            this.displayDistanceUnit = displayDistanceUnit;
-        }
-    }
 }
diff --git a/car-lib/src/android/car/navigation/CarNavigationStatusManager.java b/car-lib/src/android/car/navigation/CarNavigationStatusManager.java
index e15a17d..c21afb1 100644
--- a/car-lib/src/android/car/navigation/CarNavigationStatusManager.java
+++ b/car-lib/src/android/car/navigation/CarNavigationStatusManager.java
@@ -31,153 +31,12 @@
 
 /**
  * API for providing navigation status for instrument cluster.
- * @hide
  */
 public final class CarNavigationStatusManager implements CarManagerBase {
-
-    /** Navigation status */
-    public static final int STATUS_UNAVAILABLE = 0;
-    public static final int STATUS_ACTIVE = 1;
-    public static final int STATUS_INACTIVE = 2;
-
-    /** @hide */
-    @IntDef({
-        STATUS_UNAVAILABLE,
-        STATUS_ACTIVE,
-        STATUS_INACTIVE
-    })
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface Status {}
-
-    /* Turn Types */
-    /** Turn is of an unknown type.*/
-    public static final int TURN_UNKNOWN = 0;
-    /** Starting point of the navigation. */
-    public static final int TURN_DEPART = 1;
-    /** No turn, but the street name changes. */
-    public static final int TURN_NAME_CHANGE = 2;
-    /** Slight turn. */
-    public static final int TURN_SLIGHT_TURN = 3;
-    /** Regular turn. */
-    public static final int TURN_TURN = 4;
-    /** Sharp turn. */
-    public static final int TURN_SHARP_TURN = 5;
-    /** U-turn. */
-    public static final int TURN_U_TURN = 6;
-    /** On ramp. */
-    public static final int TURN_ON_RAMP = 7;
-    /** Off ramp. */
-    public static final int TURN_OFF_RAMP = 8;
-    /** Road forks (diverges). */
-    public static final int TURN_FORK = 9;
-    /** Road merges. */
-    public static final int TURN_MERGE = 10;
-    /** Roundabout entrance on which the route ends. Instruction says "Enter roundabout". */
-    public static final int TURN_ROUNDABOUT_ENTER = 11;
-    /** Roundabout exit. */
-    public static final int TURN_ROUNDABOUT_EXIT = 12;
-    /**
-     * Roundabout entrance and exit. For example, "At the roundabout, take Nth exit." Be sure to
-     * specify the "turnNumber" parameter when using this type.
-     */
-    public static final int TURN_ROUNDABOUT_ENTER_AND_EXIT = 13;
-    /** Potentially confusing intersection where the user should steer straight. */
-    public static final int TURN_STRAIGHT = 14;
-    /** You're on a boat! */
-    public static final int TURN_FERRY_BOAT = 16;
-    /** Train ferries for vehicles. */
-    public static final int TURN_FERRY_TRAIN = 17;
-    /** You have arrived. */
-    public static final int TURN_DESTINATION = 19;
-
-    /** @hide */
-    @IntDef({
-        TURN_UNKNOWN,
-        TURN_DEPART,
-        TURN_NAME_CHANGE,
-        TURN_SLIGHT_TURN,
-        TURN_TURN,
-        TURN_SHARP_TURN,
-        TURN_U_TURN,
-        TURN_ON_RAMP,
-        TURN_OFF_RAMP,
-        TURN_FORK,
-        TURN_MERGE,
-        TURN_ROUNDABOUT_ENTER,
-        TURN_ROUNDABOUT_EXIT,
-        TURN_ROUNDABOUT_ENTER_AND_EXIT,
-        TURN_STRAIGHT,
-        TURN_FERRY_BOAT,
-        TURN_FERRY_TRAIN,
-        TURN_DESTINATION
-    })
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface TurnEvent {}
-
-    /**
-     * Event type that holds information about next maneuver.
-     * @hide
-     */
-    public static final int EVENT_TYPE_NEXT_MANEUVER_INFO = 1;
-    /**
-     * Event type that holds information regarding distance/time to the next maneuver.
-     * @hide
-     */
-    public static final int EVENT_TYPE_NEXT_MANEUVER_COUNTDOWN = 2;
-    /**
-     * All custom (vendor-specific) event types should be equal or greater than this constant.
-     * @hide
-     */
-    public static final int EVENT_TYPE_VENDOR_FIRST = 1024;
-
-    /* Turn Side */
-    /** Turn is on the left side of the vehicle. */
-    public static final int TURN_SIDE_LEFT = 1;
-    /** Turn is on the right side of the vehicle. */
-    public static final int TURN_SIDE_RIGHT = 2;
-    /** Turn side is unspecified. */
-    public static final int TURN_SIDE_UNSPECIFIED = 3;
-
-    /** @hide */
-    @IntDef({
-        TURN_SIDE_LEFT,
-        TURN_SIDE_RIGHT,
-        TURN_SIDE_UNSPECIFIED
-    })
-    public @interface TurnSide {}
-
-    private static final int START = 1;
-    private static final int STOP = 2;
-
-    /**
-     * Distance units for use in {@link #sendNavigationTurnDistanceEvent(int, int, int, int)}.
-     */
-    /** Distance is specified in meters. */
-    public static final int DISTANCE_METERS = 1;
-    /** Distance is specified in kilometers. */
-    public static final int DISTANCE_KILOMETERS = 2;
-    /** Distance is specified in miles. */
-    public static final int DISTANCE_MILES = 3;
-    /** Distance is specified in feet. */
-    public static final int DISTANCE_FEET = 4;
-    /** Distance is specified in yards. */
-    public static final int DISTANCE_YARDS = 5;
-
-    /** @hide */
-    @IntDef({
-        DISTANCE_METERS,
-        DISTANCE_KILOMETERS,
-        DISTANCE_MILES,
-        DISTANCE_FEET,
-        DISTANCE_YARDS
-    })
-    public @interface DistanceUnit {}
-
     private static final String TAG = CarLibLog.TAG_NAV;
 
     private final IInstrumentClusterNavigation mService;
 
-
     /**
      * Only for CarServiceLoader
      * @hide
@@ -187,101 +46,14 @@
     }
 
     /**
-     * @param status new instrument cluster navigation status.
-     * @throws CarNotConnectedException if the connection to the car service has been lost.
-     */
-    public void sendNavigationStatus(@Status int status) throws CarNotConnectedException {
-        try {
-            if (status == STATUS_ACTIVE) {
-                mService.onStartNavigation();
-            } else {
-                mService.onStopNavigation();
-            }
-        } catch (IllegalStateException e) {
-            CarApiUtil.checkCarNotConnectedExceptionFromCarService(e);
-        } catch (RemoteException e) {
-            handleCarServiceRemoteExceptionAndThrow(e);
-        }
-    }
-
-    /**
-     * Sends a Navigation Next Step event to the car.
-     * <p>
-     * Note: For an example of a roundabout: if a roundabout has 4 exits, spaced evenly, then the
-     * first exit will have turnNumber=1, turnAngle=90; the second will have turnNumber=2,
-     * turnAngle=180; the third will have turnNumber=3, turnAngle=270.  turnNumber and turnAngle are
-     * counted in the direction of travel around the roundabout (clockwise for roads where the car
-     * drives on the left-hand side of the road, such as Australia; anti-clockwise for roads where
-     * the car drives on the right, such as the USA).
-     *
-     * @param turnEvent turn event like ({@link #TURN_TURN}, {@link #TURN_U_TURN},
-     *        {@link #TURN_ROUNDABOUT_ENTER_AND_EXIT}, etc).
-     * @param eventName Name of the turn event like road name to turn. For example "Charleston road"
-     *        in "Turn right to Charleston road"
-     * @param turnAngle turn angle in degrees between the roundabout entry and exit (0..359).  Only
-     *        used for event type {@link #TURN_ROUNDABOUT_ENTER_AND_EXIT}.  -1 if unused.
-     * @param turnNumber turn number, counting around from the roundabout entry to the exit.  Only
-     *        used for event type {@link #TURN_ROUNDABOUT_ENTER_AND_EXIT}.  -1 if unused.
-     * @param image image to be shown in the instrument cluster.  Null if instrument
-     *        cluster type doesn't support images.
-     * @param turnSide turn side ({@link #TURN_SIDE_LEFT}, {@link #TURN_SIDE_RIGHT} or
-     *        {@link #TURN_SIDE_UNSPECIFIED}).
-     * @throws CarNotConnectedException if the connection to the car service has been lost.
-     *
-     * @deprecated Use {@link #sendEvent(int, Bundle)} instead.
-     */
-    public void sendNavigationTurnEvent(@TurnEvent int turnEvent, CharSequence eventName,
-            int turnAngle, int turnNumber, Bitmap image, @TurnSide int turnSide)
-                    throws CarNotConnectedException {
-        try {
-            mService.onNextManeuverChanged(turnEvent, eventName, turnAngle, turnNumber, image,
-                    turnSide);
-        } catch (IllegalStateException e) {
-            CarApiUtil.checkCarNotConnectedExceptionFromCarService(e);
-        } catch (RemoteException e) {
-            handleCarServiceRemoteExceptionAndThrow(e);
-        }
-    }
-
-    /**
-     * Sends a Navigation Next Step Distance event to the car.
-     *
-     * @param distanceMeters Distance to next event in meters.
-     * @param timeSeconds Time to next event in seconds.
-     * @param displayDistanceMillis Distance to the next event. This is exactly the same distance
-     * that navigation app is displaying. Use it when you want to display distance, it has
-     * appropriate rounding function and units are in sync with navigation app. This parameter is
-     * in {@code displayDistanceUnit * 1000}.
-     * @param displayDistanceUnit units for {@param displayDistanceMillis} param.
-     * See {@link DistanceUnit} for acceptable values.
-     * @throws CarNotConnectedException if the connection to the car service has been lost.
-     *
-     * @deprecated Use {@link #sendEvent(int, Bundle)} instead.
-     */
-    public void sendNavigationTurnDistanceEvent(int distanceMeters, int timeSeconds,
-            int displayDistanceMillis, @DistanceUnit int displayDistanceUnit)
-            throws CarNotConnectedException {
-        try {
-            mService.onNextManeuverDistanceChanged(distanceMeters, timeSeconds,
-                    displayDistanceMillis, displayDistanceUnit);
-        } catch (IllegalStateException e) {
-            CarApiUtil.checkCarNotConnectedExceptionFromCarService(e);
-        } catch (RemoteException e) {
-            handleCarServiceRemoteExceptionAndThrow(e);
-        }
-    }
-
-    /**
      * Sends events from navigation app to instrument cluster.
      *
+     * <p>The event type and bundle can be populated by
+     * {@link android.support.car.navigation.CarNavigationStatusEvent}.
+     *
      * @param eventType event type
      * @param bundle object that holds data about the event
      * @throws CarNotConnectedException if the connection to the car service has been lost.
-     *
-     * @see #EVENT_TYPE_NEXT_MANEUVER_INFO
-     * @see #EVENT_TYPE_NEXT_MANEUVER_COUNTDOWN
-     *
-     * @hide
      */
     public void sendEvent(int eventType, Bundle bundle) throws CarNotConnectedException {
         try {
@@ -293,10 +65,9 @@
         }
     }
 
+    /** @hide */
     @Override
-    public void onCarDisconnected() {
-        Log.d(TAG, "onCarDisconnected");
-    }
+    public void onCarDisconnected() {}
 
     /** Returns navigation features of instrument cluster */
     public CarNavigationInstrumentCluster getInstrumentClusterInfo()
diff --git a/car-support-lib/api/current.txt b/car-support-lib/api/current.txt
index 58af4f0..68a0cdd 100644
--- a/car-support-lib/api/current.txt
+++ b/car-support-lib/api/current.txt
@@ -217,38 +217,7 @@
     ctor public CarNavigationStatusManager();
     method public abstract void addListener(android.support.car.navigation.CarNavigationStatusManager.CarNavigationCallback) throws android.support.car.CarNotConnectedException;
     method public abstract void removeListener();
-    method public abstract deprecated void sendNavigationStatus(int) throws android.support.car.CarNotConnectedException;
-    method public abstract deprecated void sendNavigationTurnDistanceEvent(int, int, int, int) throws android.support.car.CarNotConnectedException;
-    method public abstract deprecated void sendNavigationTurnEvent(int, java.lang.CharSequence, int, int, int) throws android.support.car.CarNotConnectedException;
-    field public static final int DISTANCE_FEET = 4; // 0x4
-    field public static final int DISTANCE_KILOMETERS = 2; // 0x2
-    field public static final int DISTANCE_METERS = 1; // 0x1
-    field public static final int DISTANCE_MILES = 3; // 0x3
-    field public static final int DISTANCE_YARDS = 5; // 0x5
-    field public static final int STATUS_ACTIVE = 1; // 0x1
-    field public static final int STATUS_INACTIVE = 2; // 0x2
-    field public static final int STATUS_UNAVAILABLE = 0; // 0x0
-    field public static final int TURN_DEPART = 1; // 0x1
-    field public static final int TURN_DESTINATION = 19; // 0x13
-    field public static final int TURN_FERRY_BOAT = 16; // 0x10
-    field public static final int TURN_FERRY_TRAIN = 17; // 0x11
-    field public static final int TURN_FORK = 9; // 0x9
-    field public static final int TURN_MERGE = 10; // 0xa
-    field public static final int TURN_NAME_CHANGE = 2; // 0x2
-    field public static final int TURN_OFF_RAMP = 8; // 0x8
-    field public static final int TURN_ON_RAMP = 7; // 0x7
-    field public static final int TURN_ROUNDABOUT_ENTER = 11; // 0xb
-    field public static final int TURN_ROUNDABOUT_ENTER_AND_EXIT = 13; // 0xd
-    field public static final int TURN_ROUNDABOUT_EXIT = 12; // 0xc
-    field public static final int TURN_SHARP_TURN = 5; // 0x5
-    field public static final int TURN_SIDE_LEFT = 1; // 0x1
-    field public static final int TURN_SIDE_RIGHT = 2; // 0x2
-    field public static final int TURN_SIDE_UNSPECIFIED = 3; // 0x3
-    field public static final int TURN_SLIGHT_TURN = 3; // 0x3
-    field public static final int TURN_STRAIGHT = 14; // 0xe
-    field public static final int TURN_TURN = 4; // 0x4
-    field public static final int TURN_UNKNOWN = 0; // 0x0
-    field public static final int TURN_U_TURN = 6; // 0x6
+    method public abstract void sendEvent(int, android.os.Bundle) throws android.support.car.CarNotConnectedException;
   }
 
   public static abstract interface CarNavigationStatusManager.CarNavigationCallback {
diff --git a/car-support-lib/src/android/support/car/navigation/CarNavigationStatusManager.java b/car-support-lib/src/android/support/car/navigation/CarNavigationStatusManager.java
index adf9208..0d5d562 100644
--- a/car-support-lib/src/android/support/car/navigation/CarNavigationStatusManager.java
+++ b/car-support-lib/src/android/support/car/navigation/CarNavigationStatusManager.java
@@ -69,212 +69,6 @@
         void onInstrumentClusterStopped(CarNavigationStatusManager manager);
     }
 
-    /* Navigation statuses */
-    public static final int STATUS_UNAVAILABLE = 0;
-    public static final int STATUS_ACTIVE = 1;
-    public static final int STATUS_INACTIVE = 2;
-
-    /** @hide */
-    @IntDef({
-        STATUS_UNAVAILABLE,
-        STATUS_ACTIVE,
-        STATUS_INACTIVE
-    })
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface Status {}
-
-    /* Turn Types */
-    /** Turn is of an unknown type.*/
-    public static final int TURN_UNKNOWN = 0;
-    /** Starting point of the navigation. */
-    public static final int TURN_DEPART = 1;
-    /** No turn, but the street name changes. */
-    public static final int TURN_NAME_CHANGE = 2;
-    /** Slight turn. */
-    public static final int TURN_SLIGHT_TURN = 3;
-    /** Regular turn. */
-    public static final int TURN_TURN = 4;
-    /** Sharp turn. */
-    public static final int TURN_SHARP_TURN = 5;
-    /** U-turn. */
-    public static final int TURN_U_TURN = 6;
-    /** On ramp. */
-    public static final int TURN_ON_RAMP = 7;
-    /** Off ramp. */
-    public static final int TURN_OFF_RAMP = 8;
-    /** Road forks (diverges). */
-    public static final int TURN_FORK = 9;
-    /** Road merges. */
-    public static final int TURN_MERGE = 10;
-    /** Roundabout entrance on which the route ends. Instruction says "Enter roundabout". */
-    public static final int TURN_ROUNDABOUT_ENTER = 11;
-    /** Roundabout exit. */
-    public static final int TURN_ROUNDABOUT_EXIT = 12;
-    /**
-     * Roundabout entrance and exit. For example, "At the roundabout, take Nth exit." Be sure to
-     * specify the "turnNumber" parameter when using this type.
-     */
-    public static final int TURN_ROUNDABOUT_ENTER_AND_EXIT = 13;
-    /** Potentially confusing intersection where the user should steer straight. */
-    public static final int TURN_STRAIGHT = 14;
-    /** You're on a boat! */
-    public static final int TURN_FERRY_BOAT = 16;
-    /** Train ferries for vehicles. */
-    public static final int TURN_FERRY_TRAIN = 17;
-    /** You have arrived. */
-    public static final int TURN_DESTINATION = 19;
-
-    /** @hide */
-    @IntDef({
-        TURN_UNKNOWN,
-        TURN_DEPART,
-        TURN_NAME_CHANGE,
-        TURN_SLIGHT_TURN,
-        TURN_TURN,
-        TURN_SHARP_TURN,
-        TURN_U_TURN,
-        TURN_ON_RAMP,
-        TURN_OFF_RAMP,
-        TURN_FORK,
-        TURN_MERGE,
-        TURN_ROUNDABOUT_ENTER,
-        TURN_ROUNDABOUT_EXIT,
-        TURN_ROUNDABOUT_ENTER_AND_EXIT,
-        TURN_STRAIGHT,
-        TURN_FERRY_BOAT,
-        TURN_FERRY_TRAIN,
-        TURN_DESTINATION
-    })
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface TurnEvent {}
-
-    /* Turn Side */
-    /** Turn is on the left side of the vehicle. */
-    public static final int TURN_SIDE_LEFT = 1;
-    /** Turn is on the right side of the vehicle. */
-    public static final int TURN_SIDE_RIGHT = 2;
-    /** Turn side is unspecified. */
-    public static final int TURN_SIDE_UNSPECIFIED = 3;
-
-    /** @hide */
-    @IntDef({
-        TURN_SIDE_LEFT,
-        TURN_SIDE_RIGHT,
-        TURN_SIDE_UNSPECIFIED
-    })
-    public @interface TurnSide {}
-
-    /*
-     * Distance units for use in {@link #sendNavigationTurnDistanceEvent(int, int, int, int)}.
-     */
-    /** Distance is specified in meters. */
-    public static final int DISTANCE_METERS = 1;
-    /** Distance is specified in kilometers. */
-    public static final int DISTANCE_KILOMETERS = 2;
-    /** Distance is specified in miles. */
-    public static final int DISTANCE_MILES = 3;
-    /** Distance is specified in feet. */
-    public static final int DISTANCE_FEET = 4;
-    /** Distance is specified in yards. */
-    public static final int DISTANCE_YARDS = 5;
-
-    /** @hide */
-    @IntDef({
-        DISTANCE_METERS,
-        DISTANCE_KILOMETERS,
-        DISTANCE_MILES,
-        DISTANCE_FEET,
-        DISTANCE_YARDS
-    })
-    public @interface DistanceUnit {}
-
-    /**
-     * Event type that holds information about next maneuver.
-     * @hide
-     */
-    public static final int EVENT_TYPE_NEXT_MANEUVER_INFO = 1;
-    /**
-     * Event type that holds information regarding distance/time to the next maneuver.
-     * @hide
-     */
-    public static final int EVENT_TYPE_NEXT_MANEUVER_COUNTDOWN = 2;
-    /**
-     * All custom (vendor-specific) event types should be equal or greater than this constant.
-     * @hide
-     */
-    public static final int EVENT_TYPE_VENDOR_FIRST = 1024;
-
-    /**
-     * Inform the instrument cluster if navigation is active or not.
-     * @param status New instrument cluster navigation status, one of the STATUS_* constants in
-     * this class.
-     * @throws CarNotConnectedException if the connection to the car service has been lost.
-     *
-     * @deprecated Use {@link #sendEvent(int, Bundle)} instead.
-     */
-    public abstract void sendNavigationStatus(@Status int status) throws CarNotConnectedException;
-
-    /**
-     * Send a Navigation Next Step event to the car.
-     * <p/>
-     * Roundabout Example: In a roundabout with four, evenly spaced exits, the
-     * first exit is turnNumber=1, turnAngle=90; the second exit is turnNumber=2,
-     * turnAngle=180; the third exit is turnNumber=3, turnAngle=270. turnNumber and turnAngle are
-     * counted in the direction of travel around the roundabout (clockwise for roads where the car
-     * drives on the left side of the road, such as Australia; counter-clockwise for roads
-     * where the car drives on the right side of the road, such as the USA).
-     *
-     * @param turnEvent Turn event type ({@link #TURN_TURN}, {@link #TURN_U_TURN}, {@link
-     * #TURN_ROUNDABOUT_ENTER_AND_EXIT}, etc).
-     * @param eventName Name of the turn event like road name to turn. For example "Charleston road"
-     *        in "Turn right to Charleston road"
-     * @param turnAngle Turn angle in degrees between the roundabout entry and exit (0..359). Used
-     * only for event type {@link #TURN_ROUNDABOUT_ENTER_AND_EXIT}. -1 if unused.
-     * @param turnNumber Turn number, counting from the roundabout entry to the exit. Used only
-     * for event type {@link #TURN_ROUNDABOUT_ENTER_AND_EXIT}. -1 if unused.
-     * @param turnSide Turn side ({@link #TURN_SIDE_LEFT}, {@link #TURN_SIDE_RIGHT} or {@link
-     * #TURN_SIDE_UNSPECIFIED}).
-     * @throws CarNotConnectedException if the connection to the car service has been lost.
-     *
-     * @deprecated Use {@link #sendEvent(int, Bundle)} instead.
-     */
-    public abstract void sendNavigationTurnEvent(@TurnEvent int turnEvent, CharSequence eventName,
-            int turnAngle, int turnNumber, @TurnSide int turnSide) throws CarNotConnectedException;
-
-    /**
-     * Same as the public version ({@link #sendNavigationTurnEvent(int, CharSequence, int, int,
-     * Bitmap, int)}) except a custom image can be sent to the cluster. See documentation for that
-     * method.
-     *
-     * @param image image to be shown in the instrument cluster. Null if instrument cluster type is
-     * {@link CarNavigationInstrumentCluster.ClusterType#CLUSTER_TYPE_IMAGE_CODES_ONLY}, or if
-     * the image parameters are malformed (length or width non-positive, or illegal
-     * imageColorDepthBits) in the initial NavigationStatusService call.
-     *
-     * @hide only first party applications may send a custom image to the cluster.
-     * @deprecated Use {@link #sendEvent(int, Bundle)} instead.
-     */
-    public abstract void sendNavigationTurnEvent(@TurnEvent int turnEvent, CharSequence eventName,
-            int turnAngle, int turnNumber, Bitmap image, @TurnSide int turnSide)
-                    throws CarNotConnectedException;
-
-    /**
-     * Send a Navigation Next Step Distance event to the car.
-     *
-     * @param distanceMeters Distance to next event in meters.
-     * @param timeSeconds Time to next event in seconds.
-     * @param displayDistanceMillis Distance to the next event formatted as it will be displayed by
-     * the calling app, in milli-units. For example, 1.25 should be supplied as 1250.
-     * @param displayDistanceUnit Unit type to use on of the DISTANCE_* types defined in this
-     * file.
-     * @return Returns {@code true} if successful.
-     * @throws CarNotConnectedException if the connection to the car service has been lost.
-     *
-     * @deprecated Use {@link #sendEvent(int, Bundle)} instead.
-     */
-    public abstract void sendNavigationTurnDistanceEvent(int distanceMeters, int timeSeconds,
-            int displayDistanceMillis, int displayDistanceUnit) throws CarNotConnectedException;
-
     /**
      * Sends events from navigation app to instrument cluster.
      *
@@ -284,11 +78,6 @@
      *
      * @param bundle object that holds data about the event
      * @throws android.car.CarNotConnectedException if the connection to the car service has been lost.
-     *
-     * @see #EVENT_TYPE_NEXT_MANEUVER_INFO
-     * @see #EVENT_TYPE_NEXT_MANEUVER_COUNTDOWN
-     *
-     * @hide
      */
     public abstract void sendEvent(int eventType, Bundle bundle)
             throws CarNotConnectedException;
diff --git a/car-support-lib/src/android/support/car/navigation/CarNavigationStatusManagerEmbedded.java b/car-support-lib/src/android/support/car/navigation/CarNavigationStatusManagerEmbedded.java
index a72e20e..c359a8a 100644
--- a/car-support-lib/src/android/support/car/navigation/CarNavigationStatusManagerEmbedded.java
+++ b/car-support-lib/src/android/support/car/navigation/CarNavigationStatusManagerEmbedded.java
@@ -30,47 +30,6 @@
         mManager = (android.car.navigation.CarNavigationStatusManager) manager;
     }
 
-    /**
-     * @param status new instrument cluster navigation status.
-     * @throws CarNotConnectedException if the connection to the car service has been lost.
-     */
-    @Override
-    public void sendNavigationStatus(int status) throws CarNotConnectedException {
-        try {
-            mManager.sendNavigationStatus(status);
-        } catch (android.car.CarNotConnectedException e) {
-           throw new CarNotConnectedException(e);
-        }
-    }
-
-    @Override
-    public void sendNavigationTurnEvent(int event, CharSequence eventName, int turnAngle,
-            int turnNumber, int turnSide) throws CarNotConnectedException {
-        sendNavigationTurnEvent(event, eventName, turnAngle, turnNumber, null, turnSide);
-    }
-
-    @Override
-    public void sendNavigationTurnEvent(int event, CharSequence eventName, int turnAngle,
-            int turnNumber, Bitmap image, int turnSide) throws CarNotConnectedException {
-        try {
-            mManager.sendNavigationTurnEvent(event, eventName, turnAngle, turnNumber, image,
-                    turnSide);
-        } catch (android.car.CarNotConnectedException e) {
-            throw new CarNotConnectedException(e);
-        }
-    }
-
-    @Override
-    public void sendNavigationTurnDistanceEvent(int distanceMeters, int timeSeconds,
-            int displayDistanceMillis, int displayDistanceUnit) throws CarNotConnectedException {
-        try {
-            mManager.sendNavigationTurnDistanceEvent(distanceMeters, timeSeconds,
-                    displayDistanceMillis, displayDistanceUnit);
-        } catch (android.car.CarNotConnectedException e) {
-            throw new CarNotConnectedException(e);
-        }
-    }
-
     @Override
     public void sendEvent(int eventType, Bundle bundle) throws CarNotConnectedException {
         try {
diff --git a/tests/DirectRenderingClusterSample/src/android/car/cluster/sample/SampleClusterServiceImpl.java b/tests/DirectRenderingClusterSample/src/android/car/cluster/sample/SampleClusterServiceImpl.java
index 1457708..2847972 100644
--- a/tests/DirectRenderingClusterSample/src/android/car/cluster/sample/SampleClusterServiceImpl.java
+++ b/tests/DirectRenderingClusterSample/src/android/car/cluster/sample/SampleClusterServiceImpl.java
@@ -30,6 +30,7 @@
 import android.graphics.Rect;
 import android.hardware.display.DisplayManager;
 import android.os.Binder;
+import android.os.Bundle;
 import android.os.IBinder;
 import android.os.SystemClock;
 import android.provider.Settings;
@@ -108,32 +109,8 @@
             }
 
             @Override
-            public void onStartNavigation() {
-                Log.i(TAG, "onStartNavigation");
-            }
-
-            @Override
-            public void onStopNavigation() {
-                Log.i(TAG, "onStopNavigation");
-            }
-
-            @Override
-            public void onNextTurnChanged(int event, CharSequence eventName, int turnAngle,
-                    int turnNumber, Bitmap image, int turnSide) {
-                Log.i(TAG, "event: " + event + ", eventName: " + eventName +
-                        ", turnAngle: " + turnAngle + ", turnNumber: " + turnNumber +
-                        ", image: " + image + ", turnSide: " + turnSide);
-                mListener.onShowToast("Next turn: " + eventName);
-            }
-
-            @Override
-            public void onNextTurnDistanceChanged(int distanceMeters, int timeSeconds,
-                    int displayDistanceMillis, int displayDistanceUnit) {
-                Log.i(TAG, "onNextTurnDistanceChanged, distanceMeters: " + distanceMeters
-                        + ", timeSeconds: " + timeSeconds
-                        + ", displayDistanceMillis: " + displayDistanceMillis
-                        + ", displayDistanceUnit: " + displayDistanceUnit);
-                mListener.onShowToast("Next turn distance: " + distanceMeters + " meters.");
+            public void onEvent(int eventType, Bundle bundle) {
+                Log.i(TAG, "onEvent(" + eventType + "");
             }
         };
 
diff --git a/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/cluster/InstrumentClusterFragment.java b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/cluster/InstrumentClusterFragment.java
index cfae45f..121855d 100644
--- a/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/cluster/InstrumentClusterFragment.java
+++ b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/cluster/InstrumentClusterFragment.java
@@ -122,15 +122,7 @@
     }
 
     private void turnLeft() {
-        try {
-            mCarNavigationStatusManager
-                    .sendNavigationTurnEvent(CarNavigationStatusManager.TURN_TURN, "Huff Ave", 90,
-                            -1, null, CarNavigationStatusManager.TURN_SIDE_LEFT);
-            mCarNavigationStatusManager.sendNavigationTurnDistanceEvent(500, 10, 500,
-                    CarNavigationStatusManager.DISTANCE_METERS);
-        } catch (CarNotConnectedException e) {
-            e.printStackTrace();
-        }
+        // TODO(deanh): re-implement this using sendEvent()
     }
 
     private void initCluster() {
@@ -183,12 +175,7 @@
             Log.e(TAG, "Failed to get owned focus", e);
         }
 
-        try {
-            mCarNavigationStatusManager
-                    .sendNavigationStatus(CarNavigationStatusManager.STATUS_ACTIVE);
-        } catch (CarNotConnectedException e) {
-            Log.e(TAG, "Failed to set navigation status, reconnecting to the car", e);
-        }
+        // TODO(deanh): re-implement this using sendEvent()
     }
 
     @Override
diff --git a/tests/InstrumentClusterRendererSample/src/com/android/car/cluster/sample/InstrumentClusterController.java b/tests/InstrumentClusterRendererSample/src/com/android/car/cluster/sample/InstrumentClusterController.java
index 0120f5b..fbfa8de 100644
--- a/tests/InstrumentClusterRendererSample/src/com/android/car/cluster/sample/InstrumentClusterController.java
+++ b/tests/InstrumentClusterRendererSample/src/com/android/car/cluster/sample/InstrumentClusterController.java
@@ -34,6 +34,7 @@
 import android.media.MediaDescription;
 import android.media.MediaMetadata;
 import android.media.session.PlaybackState;
+import android.os.Bundle;
 import android.os.Handler;
 import android.os.IBinder;
 import android.os.Looper;
@@ -68,7 +69,6 @@
 
     private final Context mContext;
     private final NavigationRenderer mNavigationRenderer;
-    private final SparseArray<String> mDistanceUnitNames = new SparseArray<>();
 
     private ClusterView mClusterView;
     private MediaStateMonitor mMediaStateMonitor;
@@ -97,8 +97,6 @@
             return;
         }
 
-        initDistanceUnitNames(mContext);
-
         mClusterView = new ClusterView(mContext);
         Presentation presentation = new InstrumentClusterPresentation(mContext, display);
         presentation.setContentView(mClusterView);
@@ -212,19 +210,6 @@
         return number;
     }
 
-    private void initDistanceUnitNames(Context context) {
-        mDistanceUnitNames.put(CarNavigationStatusManager.DISTANCE_METERS,
-                context.getString(R.string.nav_distance_units_meters));
-        mDistanceUnitNames.put(CarNavigationStatusManager.DISTANCE_KILOMETERS,
-                context.getString(R.string.nav_distance_units_kilometers));
-        mDistanceUnitNames.put(CarNavigationStatusManager.DISTANCE_FEET,
-                context.getString(R.string.nav_distance_units_ft));
-        mDistanceUnitNames.put(CarNavigationStatusManager.DISTANCE_MILES,
-                context.getString(R.string.nav_distance_units_miles));
-        mDistanceUnitNames.put(CarNavigationStatusManager.DISTANCE_YARDS,
-                context.getString(R.string.nav_distance_units_yards));
-    }
-
     private void onCallStateChanged(Call call, int state) {
         if (DEBUG) {
             Log.d(TAG, "onCallStateChanged, call: " + call + ", state: " + state);
@@ -556,66 +541,11 @@
         }
 
         @Override
-        public void onStartNavigation() {
+        public void onEvent(int eventType, Bundle bundle) {
             if (DEBUG) {
-                Log.d(TAG, "onStartNavigation");
+                Log.d(TAG, "onEvent");
             }
-            mClusterView = mController.mClusterView;
-            mResources = mController.mContext.getResources();
-            mNavCard = mClusterView.createNavCard();
-        }
-
-        @Override
-        public void onStopNavigation() {
-            if (DEBUG) {
-                Log.d(TAG, "onStopNavigation");
-            }
-
-            if (mNavCard != null) {
-                mNavCard.removeGracefully();
-                mNavCard = null;
-            }
-        }
-
-        @Override
-        public void onNextTurnChanged(int event, CharSequence eventName, int turnAngle,
-                int turnNumber, Bitmap image, int turnSide) {
-            if (DEBUG) {
-                Log.d(TAG, "onNextTurnChanged, eventName: " + eventName + ", image: " + image +
-                        (image == null ? "" : ", size: "
-                                + image.getWidth() + "x" + image.getHeight()));
-            }
-            mNavCard.setManeuverImage(BitmapUtils.generateNavManeuverIcon(
-                    (int) mResources.getDimension(R.dimen.card_icon_size),
-                    mResources.getColor(R.color.maps_background, null),
-                    image));
-            mNavCard.setStreet(eventName);
-            if (!mClusterView.cardExists(mNavCard)) {
-                mClusterView.enqueueCard(mNavCard);
-            }
-        }
-
-        @Override
-        public void onNextTurnDistanceChanged(int meters, int timeSeconds,
-                int displayDistanceMillis, int distanceUnit) {
-            if (DEBUG) {
-                Log.d(TAG, "onNextTurnDistanceChanged, distanceMeters: " + meters
-                        + ", timeSeconds: " + timeSeconds
-                        + ", displayDistanceMillis: " + displayDistanceMillis
-                        + ", DistanceUnit: " + distanceUnit);
-            }
-
-            int remainder = displayDistanceMillis % 1000;
-            String decimalPart = (remainder != 0)
-                    ? String.format("%c%d",
-                                    DecimalFormatSymbols.getInstance().getDecimalSeparator(),
-                                    remainder)
-                    : "";
-
-            String distanceToDisplay = (displayDistanceMillis / 1000) + decimalPart;
-            String unitsToDisplay = mController.mDistanceUnitNames.get(distanceUnit);
-
-            mNavCard.setDistanceToNextManeuver(distanceToDisplay, unitsToDisplay);
+            // Implement this.
         }
     }
 
diff --git a/tests/android_car_api_test/src/android/car/apitest/CarNavigationManagerTest.java b/tests/android_car_api_test/src/android/car/apitest/CarNavigationManagerTest.java
index 31543bd..6d53471 100644
--- a/tests/android_car_api_test/src/android/car/apitest/CarNavigationManagerTest.java
+++ b/tests/android_car_api_test/src/android/car/apitest/CarNavigationManagerTest.java
@@ -45,15 +45,21 @@
         assertNotNull(mCarAppFocusManager);
     }
 
-    public void testStart() throws Exception {
+    public void testSendEvent() throws Exception {
         if (mCarNavigationManager == null) {
             Log.w(TAG, "Unable to run the test: "
                     + "car navigation manager was not created succesfully.");
             return;
         }
 
+        Bundle bundle = new Bundle();
+        bundle.putInt("BUNDLE_INTEGER_VALUE", 1234);
+        bundle.putFloat("BUNDLE_FLOAT_VALUE", 12.3456f);
+        bundle.putStringArrayList("BUNDLE_ARRAY_OF_STRINGS",
+                Lists.newArrayList("Value A", "Value B", "Value Z"));
+
         try {
-            mCarNavigationManager.sendNavigationStatus(1);
+            mCarNavigationManager.sendEvent(1, bundle);
             fail();
         } catch (IllegalStateException expected) {
             // Expected. Client should acquire focus ownership for APP_FOCUS_TYPE_NAVIGATION.
@@ -85,15 +91,6 @@
 
         // TODO: we should use mocked HAL to be able to verify this, right now just make sure that
         // it is not crashing and logcat has appropriate traces.
-        mCarNavigationManager.sendNavigationStatus(1);
-
-        Bundle bundle = new Bundle();
-        bundle.putInt("BUNDLE_INTEGER_VALUE", 1234);
-        bundle.putFloat("BUNDLE_FLOAT_VALUE", 12.3456f);
-        bundle.putStringArrayList("BUNDLE_ARRAY_OF_STRINGS",
-                Lists.newArrayList("Value A", "Value B", "Value Z"));
-
-        mCarNavigationManager.sendEvent
-                (CarNavigationStatusManager.EVENT_TYPE_NEXT_MANEUVER_INFO, bundle);
+        mCarNavigationManager.sendEvent(1, bundle);
     }
 }
diff --git a/tests/android_support_car_api_test/src/com/android/support/car/apitest/CarNavigationStatusManagerTest.java b/tests/android_support_car_api_test/src/com/android/support/car/apitest/CarNavigationStatusManagerTest.java
index 1972c48..d57d9ee 100644
--- a/tests/android_support_car_api_test/src/com/android/support/car/apitest/CarNavigationStatusManagerTest.java
+++ b/tests/android_support_car_api_test/src/com/android/support/car/apitest/CarNavigationStatusManagerTest.java
@@ -17,6 +17,7 @@
 
 import static android.support.car.CarAppFocusManager.APP_FOCUS_TYPE_NAVIGATION;
 
+import android.os.Bundle;
 import android.support.car.Car;
 import android.support.car.CarAppFocusManager;
 import android.support.car.CarAppFocusManager.OnAppFocusChangedListener;
@@ -71,8 +72,7 @@
         assertTrue(onStartLatch.await(DEFAULT_WAIT_TIMEOUT_MS, TimeUnit.MILLISECONDS));
 
         try {
-            mCarNavigationStatusManager.sendNavigationStatus(CarNavigationStatusManager
-                    .STATUS_ACTIVE);
+            mCarNavigationStatusManager.sendEvent(1, new Bundle());
             fail();
         } catch (IllegalStateException expected) {
             // Expected. Client should acquire focus ownership for APP_FOCUS_TYPE_NAVIGATION.
@@ -103,6 +103,6 @@
 
         // TODO: we should use mocked HAL to be able to verify this, right now just make sure that
         // it is not crashing and logcat has appropriate traces.
-        mCarNavigationStatusManager.sendNavigationStatus(CarNavigationStatusManager.STATUS_ACTIVE);
+        mCarNavigationStatusManager.sendEvent(1, new Bundle());
     }
 }