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-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;
-        }
-    }
 }