merge in nyc-release history after reset to nyc-dev
diff --git a/car-lib/api/current.txt b/car-lib/api/current.txt
index a24febf..7bec186 100644
--- a/car-lib/api/current.txt
+++ b/car-lib/api/current.txt
@@ -20,26 +20,6 @@
     field public static final java.lang.String SENSOR_SERVICE = "sensor";
   }
 
-  public class CarAppContextManager {
-    method public int getActiveAppContexts() throws android.car.CarNotConnectedException;
-    method public boolean isOwningContext(int) throws android.car.CarNotConnectedException;
-    method public void onCarDisconnected();
-    method public void registerContextListener(android.car.CarAppContextManager.AppContextChangeListener, int) throws android.car.CarNotConnectedException;
-    method public void resetActiveContexts(int) throws android.car.CarNotConnectedException;
-    method public void setActiveContexts(android.car.CarAppContextManager.AppContextOwnershipChangeListener, int) throws android.car.CarNotConnectedException, java.lang.SecurityException;
-    method public void unregisterContextListener() throws android.car.CarNotConnectedException;
-    field public static final int APP_CONTEXT_NAVIGATION = 1; // 0x1
-    field public static final int APP_CONTEXT_VOICE_COMMAND = 2; // 0x2
-  }
-
-  public static abstract interface CarAppContextManager.AppContextChangeListener {
-    method public abstract void onAppContextChange(int);
-  }
-
-  public static abstract interface CarAppContextManager.AppContextOwnershipChangeListener {
-    method public abstract void onAppContextOwnershipLoss(int);
-  }
-
   public class CarInfoManager {
     method public java.lang.Float getFloat(java.lang.String) throws android.car.CarNotConnectedException, java.lang.IllegalArgumentException;
     method public java.lang.Integer getInt(java.lang.String) throws android.car.CarNotConnectedException, java.lang.IllegalArgumentException;
@@ -307,11 +287,11 @@
     field public static final int SENSOR_RATE_NORMAL = 3; // 0x3
     field public static final int SENSOR_RATE_UI = 2; // 0x2
     field public static final int SENSOR_TYPE_CAR_SPEED = 2; // 0x2
-    field public static final int SENSOR_TYPE_DRIVING_STATUS = 10; // 0xa
-    field public static final int SENSOR_TYPE_ENVIRONMENT = 11; // 0xb
+    field public static final int SENSOR_TYPE_DRIVING_STATUS = 11; // 0xb
+    field public static final int SENSOR_TYPE_ENVIRONMENT = 12; // 0xc
     field public static final int SENSOR_TYPE_FUEL_LEVEL = 5; // 0x5
     field public static final int SENSOR_TYPE_GEAR = 7; // 0x7
-    field public static final int SENSOR_TYPE_NIGHT = 8; // 0x8
+    field public static final int SENSOR_TYPE_NIGHT = 9; // 0x9
     field public static final int SENSOR_TYPE_ODOMETER = 4; // 0x4
     field public static final int SENSOR_TYPE_PARKING_BRAKE = 6; // 0x6
     field public static final int SENSOR_TYPE_RPM = 3; // 0x3
diff --git a/car-lib/api/system-current.txt b/car-lib/api/system-current.txt
index 18239c4..b6fdd90 100644
--- a/car-lib/api/system-current.txt
+++ b/car-lib/api/system-current.txt
@@ -32,26 +32,6 @@
     field public static final java.lang.String TEST_SERVICE = "car-service-test";
   }
 
-  public class CarAppContextManager {
-    method public int getActiveAppContexts() throws android.car.CarNotConnectedException;
-    method public boolean isOwningContext(int) throws android.car.CarNotConnectedException;
-    method public void onCarDisconnected();
-    method public void registerContextListener(android.car.CarAppContextManager.AppContextChangeListener, int) throws android.car.CarNotConnectedException;
-    method public void resetActiveContexts(int) throws android.car.CarNotConnectedException;
-    method public void setActiveContexts(android.car.CarAppContextManager.AppContextOwnershipChangeListener, int) throws android.car.CarNotConnectedException, java.lang.SecurityException;
-    method public void unregisterContextListener() throws android.car.CarNotConnectedException;
-    field public static final int APP_CONTEXT_NAVIGATION = 1; // 0x1
-    field public static final int APP_CONTEXT_VOICE_COMMAND = 2; // 0x2
-  }
-
-  public static abstract interface CarAppContextManager.AppContextChangeListener {
-    method public abstract void onAppContextChange(int);
-  }
-
-  public static abstract interface CarAppContextManager.AppContextOwnershipChangeListener {
-    method public abstract void onAppContextOwnershipLoss(int);
-  }
-
   public class CarInfoManager {
     method public java.lang.Float getFloat(java.lang.String) throws android.car.CarNotConnectedException, java.lang.IllegalArgumentException;
     method public java.lang.Integer getInt(java.lang.String) throws android.car.CarNotConnectedException, java.lang.IllegalArgumentException;
@@ -532,11 +512,11 @@
     field public static final int SENSOR_RATE_NORMAL = 3; // 0x3
     field public static final int SENSOR_RATE_UI = 2; // 0x2
     field public static final int SENSOR_TYPE_CAR_SPEED = 2; // 0x2
-    field public static final int SENSOR_TYPE_DRIVING_STATUS = 10; // 0xa
-    field public static final int SENSOR_TYPE_ENVIRONMENT = 11; // 0xb
+    field public static final int SENSOR_TYPE_DRIVING_STATUS = 11; // 0xb
+    field public static final int SENSOR_TYPE_ENVIRONMENT = 12; // 0xc
     field public static final int SENSOR_TYPE_FUEL_LEVEL = 5; // 0x5
     field public static final int SENSOR_TYPE_GEAR = 7; // 0x7
-    field public static final int SENSOR_TYPE_NIGHT = 8; // 0x8
+    field public static final int SENSOR_TYPE_NIGHT = 9; // 0x9
     field public static final int SENSOR_TYPE_ODOMETER = 4; // 0x4
     field public static final int SENSOR_TYPE_PARKING_BRAKE = 6; // 0x6
     field public static final int SENSOR_TYPE_RPM = 3; // 0x3
diff --git a/car-lib/src/android/car/CarAppContextManager.java b/car-lib/src/android/car/CarAppContextManager.java
index c7657ca..5eb4c56 100644
--- a/car-lib/src/android/car/CarAppContextManager.java
+++ b/car-lib/src/android/car/CarAppContextManager.java
@@ -30,6 +30,7 @@
  * like active navigation or active voice command. Usually only one instance of such application
  * should run in the system, and other app setting the flag for the matching app should
  * lead into other app to stop.
+ * @hide
  */
 public class CarAppContextManager implements CarManagerBase {
     /**
diff --git a/car-lib/src/android/car/hardware/CarSensorManager.java b/car-lib/src/android/car/hardware/CarSensorManager.java
index dab13bc..d0dc4e8 100644
--- a/car-lib/src/android/car/hardware/CarSensorManager.java
+++ b/car-lib/src/android/car/hardware/CarSensorManager.java
@@ -83,27 +83,41 @@
      * {@link CarSensorEvent#GEAR_NEUTRAL} and other GEAR_*.
      */
     public static final int SENSOR_TYPE_GEAR              = 7;
+    /** @hide */
+    public static final int SENSOR_TYPE_RESERVED8        = 8;
     /**
      * Day/night sensor. Sensor data is intValues[0].
      */
-    public static final int SENSOR_TYPE_NIGHT             = 8;
+    public static final int SENSOR_TYPE_NIGHT             = 9;
     /** @hide */
-    public static final int SENSOR_TYPE_REVERVED9        = 9;
+    public static final int SENSOR_TYPE_RESERVED10         = 10;
     /**
      * Represents the current driving status of car. Different user interaction should be used
      * depending on the current driving status. Driving status is intValues[0].
      */
-    public static final int SENSOR_TYPE_DRIVING_STATUS    = 10;
+    public static final int SENSOR_TYPE_DRIVING_STATUS    = 11;
     /**
      * Environment like temperature and pressure.
      */
-    public static final int SENSOR_TYPE_ENVIRONMENT       = 11;
-    /** @hide */
-    public static final int SENSOR_TYPE_RESERVED12        = 12;
+    public static final int SENSOR_TYPE_ENVIRONMENT       = 12;
     /** @hide */
     public static final int SENSOR_TYPE_RESERVED13        = 13;
     /** @hide */
     public static final int SENSOR_TYPE_RESERVED14        = 14;
+    /** @hide */
+    public static final int SENSOR_TYPE_RESERVED15        = 15;
+    /** @hide */
+    public static final int SENSOR_TYPE_RESERVED16        = 16;
+    /** @hide */
+    public static final int SENSOR_TYPE_RESERVED17        = 17;
+    /** @hide */
+    public static final int SENSOR_TYPE_RESERVED18        = 18;
+    /** @hide */
+    public static final int SENSOR_TYPE_RESERVED19        = 19;
+    /** @hide */
+    public static final int SENSOR_TYPE_RESERVED20        = 20;
+    /** @hide */
+    public static final int SENSOR_TYPE_RESERVED21        = 21;
 
     /**
      * Sensor type bigger than this is invalid. Always update this after adding a new sensor.
diff --git a/car-support-lib/api/current.txt b/car-support-lib/api/current.txt
index 479f056..1256f7f 100644
--- a/car-support-lib/api/current.txt
+++ b/car-support-lib/api/current.txt
@@ -29,26 +29,6 @@
     field public static final java.lang.String SENSOR_SERVICE = "sensor";
   }
 
-  public abstract class CarAppContextManager {
-    ctor public CarAppContextManager();
-    method public abstract int getActiveAppContexts() throws android.support.car.CarNotConnectedException;
-    method public abstract boolean isOwningContext(int) throws android.support.car.CarNotConnectedException;
-    method public abstract void registerContextListener(android.support.car.CarAppContextManager.AppContextChangeListener, int) throws android.support.car.CarNotConnectedException;
-    method public abstract void resetActiveContexts(int) throws android.support.car.CarNotConnectedException;
-    method public abstract void setActiveContexts(android.support.car.CarAppContextManager.AppContextOwnershipChangeListener, int) throws android.support.car.CarNotConnectedException, java.lang.IllegalStateException, java.lang.SecurityException;
-    method public abstract void unregisterContextListener() throws android.support.car.CarNotConnectedException;
-    field public static final int APP_CONTEXT_NAVIGATION = 1; // 0x1
-    field public static final int APP_CONTEXT_VOICE_COMMAND = 2; // 0x2
-  }
-
-  public static abstract interface CarAppContextManager.AppContextChangeListener {
-    method public abstract void onAppContextChange(int);
-  }
-
-  public static abstract interface CarAppContextManager.AppContextOwnershipChangeListener {
-    method public abstract void onAppContextOwnershipLoss(int);
-  }
-
   public abstract interface CarConnectionListener {
     method public abstract void onConnected(int);
     method public abstract void onDisconnected();
@@ -597,12 +577,12 @@
     field public static final int SENSOR_RATE_UI = 2; // 0x2
     field public static final int SENSOR_TYPE_CAR_SPEED = 2; // 0x2
     field public static final int SENSOR_TYPE_COMPASS = 1; // 0x1
-    field public static final int SENSOR_TYPE_DRIVING_STATUS = 10; // 0xa
-    field public static final int SENSOR_TYPE_ENVIRONMENT = 11; // 0xb
+    field public static final int SENSOR_TYPE_DRIVING_STATUS = 11; // 0xb
+    field public static final int SENSOR_TYPE_ENVIRONMENT = 12; // 0xc
     field public static final int SENSOR_TYPE_FUEL_LEVEL = 5; // 0x5
     field public static final int SENSOR_TYPE_GEAR = 7; // 0x7
-    field public static final int SENSOR_TYPE_LOCATION = 9; // 0x9
-    field public static final int SENSOR_TYPE_NIGHT = 8; // 0x8
+    field public static final int SENSOR_TYPE_LOCATION = 10; // 0xa
+    field public static final int SENSOR_TYPE_NIGHT = 9; // 0x9
     field public static final int SENSOR_TYPE_ODOMETER = 4; // 0x4
     field public static final int SENSOR_TYPE_PARKING_BRAKE = 6; // 0x6
     field public static final int SENSOR_TYPE_RPM = 3; // 0x3
diff --git a/car-support-lib/src/android/support/car/CarAppContextManager.java b/car-support-lib/src/android/support/car/CarAppContextManager.java
index 70616b9..837dd9c 100644
--- a/car-support-lib/src/android/support/car/CarAppContextManager.java
+++ b/car-support-lib/src/android/support/car/CarAppContextManager.java
@@ -21,6 +21,7 @@
  * like active navigation or active voice command. Usually only one instance of such application
  * should run in the system, and other app setting the flag for the matching app should
  * lead into other app to stop.
+ * @hide
  */
 public abstract class CarAppContextManager implements CarManagerBase {
     /**
diff --git a/car-support-lib/src/android/support/car/hardware/CarSensorManager.java b/car-support-lib/src/android/support/car/hardware/CarSensorManager.java
index 04d63a1..5cd4f80 100644
--- a/car-support-lib/src/android/support/car/hardware/CarSensorManager.java
+++ b/car-support-lib/src/android/support/car/hardware/CarSensorManager.java
@@ -28,81 +28,91 @@
  */
 public abstract class CarSensorManager implements CarManagerBase {
     /**
-     * SENSOR_TYPE_* represents type of sensor supported from the connected car.
-     * This sensor represents the direction of the car as an angle in degree measured clockwise
-     * with 0 degree pointing to north.
-     * Sensor data in {@link CarSensorEvent} is a float (floatValues[0]).
+     * SENSOR_TYPE_* represents type of sensor supported from the connected car. This sensor
+     * represents the direction of the car as an angle in degree measured clockwise with 0 degree
+     * pointing to north. Sensor data in {@link CarSensorEvent} is a float (floatValues[0]).
      */
-    public static final int SENSOR_TYPE_COMPASS           = 1;
+    public static final int SENSOR_TYPE_COMPASS = 1;
     /**
-     * This sensor represents vehicle speed in m/s.
-     * Sensor data in {@link CarSensorEvent} is a float which will be >= 0.
-     * This requires {@link Car#PERMISSION_SPEED} permission.
+     * This sensor represents vehicle speed in m/s. Sensor data in {@link CarSensorEvent} is a float
+     * which will be >= 0. This requires {@link Car#PERMISSION_SPEED} permission.
      */
-    public static final int SENSOR_TYPE_CAR_SPEED         = 2;
+    public static final int SENSOR_TYPE_CAR_SPEED = 2;
     /**
      * Represents engine RPM of the car. Sensor data in {@link CarSensorEvent} is a float.
      */
-    public static final int SENSOR_TYPE_RPM               = 3;
+    public static final int SENSOR_TYPE_RPM = 3;
     /**
-     * Total travel distance of the car in Kilometer. Sensor data is a float.
-     * This requires {@link Car#PERMISSION_MILEAGE} permission.
+     * Total travel distance of the car in Kilometer. Sensor data is a float. This requires {@link
+     * Car#PERMISSION_MILEAGE} permission.
      */
-    public static final int SENSOR_TYPE_ODOMETER          = 4;
+    public static final int SENSOR_TYPE_ODOMETER = 4;
     /**
-     * Indicates fuel level of the car.
-     * In {@link CarSensorEvent}, floatValues[{@link CarSensorEvent#INDEX_FUEL_LEVEL_IN_PERCENTILE}]
-     * represents fuel level in percentile (0 to 100) while
-     * floatValues[{@link CarSensorEvent#INDEX_FUEL_LEVEL_IN_DISTANCE}] represents estimated range
-     * in Kilometer with the remaining fuel.
-     * Note that the gas mileage used for the estimation may not represent the current driving
-     * condition.
-     * This requires {@link Car#PERMISSION_FUEL} permission.
+     * Indicates fuel level of the car. In {@link CarSensorEvent}, floatValues[{@link
+     * CarSensorEvent#INDEX_FUEL_LEVEL_IN_PERCENTILE}] represents fuel level in percentile (0 to
+     * 100) while floatValues[{@link CarSensorEvent#INDEX_FUEL_LEVEL_IN_DISTANCE}] represents
+     * estimated range in Kilometer with the remaining fuel. Note that the gas mileage used for the
+     * estimation may not represent the current driving condition. This requires {@link
+     * Car#PERMISSION_FUEL} permission.
      */
-    public static final int SENSOR_TYPE_FUEL_LEVEL        = 5;
+    public static final int SENSOR_TYPE_FUEL_LEVEL = 5;
     /**
      * Represents the current status of parking brake. Sensor data in {@link CarSensorEvent} is an
-     * intValues[0]. Value of 1 represents parking brake applied while 0 means the other way
-     * around. For this sensor, rate in {@link #registerListener(CarSensorEventListener, int, int)}
-     * will be ignored and all changes will be notified.
+     * intValues[0]. Value of 1 represents parking brake applied while 0 means the other way around.
+     * For this sensor, rate in {@link #registerListener(CarSensorEventListener, int, int)} will be
+     * ignored and all changes will be notified.
      */
-    public static final int SENSOR_TYPE_PARKING_BRAKE     = 6;
+    public static final int SENSOR_TYPE_PARKING_BRAKE = 6;
     /**
-     * This represents the current position of transmission gear. Sensor data in
-     * {@link CarSensorEvent} is an intValues[0]. For the meaning of the value, check
-     * {@link CarSensorEvent#GEAR_NEUTRAL} and other GEAR_*.
+     * This represents the current position of transmission gear. Sensor data in {@link
+     * CarSensorEvent} is an intValues[0]. For the meaning of the value, check {@link
+     * CarSensorEvent#GEAR_NEUTRAL} and other GEAR_*.
      */
-    public static final int SENSOR_TYPE_GEAR              = 7;
+    public static final int SENSOR_TYPE_GEAR = 7;
+
+    /**@hide*/
+    public static final int SENSOR_TYPE_RESERVED8 = 8;
+
     /**
      * Day/night sensor. Sensor data is intValues[0].
      */
-    public static final int SENSOR_TYPE_NIGHT             = 8;
+    public static final int SENSOR_TYPE_NIGHT = 9;
     /**
      * Sensor type for location. Sensor data passed in floatValues.
      */
-    public static final int SENSOR_TYPE_LOCATION          = 9;
+    public static final int SENSOR_TYPE_LOCATION = 10;
     /**
      * Represents the current driving status of car. Different user interaction should be used
      * depending on the current driving status. Driving status is intValues[0].
      */
-    public static final int SENSOR_TYPE_DRIVING_STATUS    = 10;
+    public static final int SENSOR_TYPE_DRIVING_STATUS = 11;
     /**
      * Environment like temperature and pressure.
      */
-    public static final int SENSOR_TYPE_ENVIRONMENT       = 11;
-
+    public static final int SENSOR_TYPE_ENVIRONMENT = 12;
     /** @hide */
-    public static final int SENSOR_TYPE_ACCELEROMETER     = 12;
+    public static final int SENSOR_TYPE_RESERVED13 = 13;
     /** @hide */
-    public static final int SENSOR_TYPE_GPS_SATELLITE     = 13;
+    public static final int SENSOR_TYPE_ACCELEROMETER = 14;
     /** @hide */
-    public static final int SENSOR_TYPE_GYROSCOPE         = 14;
+    public static final int SENSOR_TYPE_RESERVED15 = 15;
+    /** @hide */
+    public static final int SENSOR_TYPE_RESERVED16 = 16;
+    /** @hide */
+    public static final int SENSOR_TYPE_GPS_SATELLITE = 17;
+    /** @hide */
+    public static final int SENSOR_TYPE_GYROSCOPE = 18;
+    /** @hide */
+    public static final int SENSOR_TYPE_RESERVED19 = 19;
+    /** @hide */
+    public static final int SENSOR_TYPE_RESERVED20 = 20;
+    /** @hide */
+    public static final int SENSOR_TYPE_RESERVED21 = 21;
 
     /**
      * Sensor type bigger than this is invalid. Always update this after adding a new sensor.
-     * @hide
      */
-    private static final int SENSOR_TYPE_MAX              = SENSOR_TYPE_GYROSCOPE;
+    private static final int SENSOR_TYPE_MAX = SENSOR_TYPE_RESERVED21;
 
     /**
      * Sensors defined in this range [{@link #SENSOR_TYPE_VENDOR_EXTENSION_START},