Merge "Add ULTRASONICS_SENSOR_ORIENTATION to java layer." into main
diff --git a/car-lib-module/api/system-current.txt b/car-lib-module/api/system-current.txt
index bba0a95..691169b 100644
--- a/car-lib-module/api/system-current.txt
+++ b/car-lib-module/api/system-current.txt
@@ -343,6 +343,7 @@
field @RequiresPermission(android.car.Car.PERMISSION_CONTROL_STEERING_WHEEL) public static final int STEERING_WHEEL_HEIGHT_POS = 289410018; // 0x11400be2
field @RequiresPermission(android.car.Car.PERMISSION_CONTROL_STEERING_WHEEL) public static final int STEERING_WHEEL_LOCKED = 287312869; // 0x11200be5
field @RequiresPermission(android.car.Car.PERMISSION_CONTROL_STEERING_WHEEL) public static final int STEERING_WHEEL_THEFT_LOCK_ENABLED = 287312868; // 0x11200be4
+ field @FlaggedApi("android.car.feature.android_vic_vehicle_properties") @RequiresPermission.Read(@androidx.annotation.RequiresPermission(android.car.Car.PERMISSION_READ_ULTRASONICS_SENSOR_DATA)) public static final int ULTRASONICS_SENSOR_ORIENTATION = 406916129; // 0x18410c21
field @FlaggedApi("android.car.feature.android_vic_vehicle_properties") @RequiresPermission.Read(@androidx.annotation.RequiresPermission(android.car.Car.PERMISSION_READ_ULTRASONICS_SENSOR_DATA)) public static final int ULTRASONICS_SENSOR_POSITION = 406916128; // 0x18410c20
field @FlaggedApi("android.car.feature.android_vic_vehicle_properties") @RequiresPermission.Read(@androidx.annotation.RequiresPermission(anyOf={android.car.Car.PERMISSION_READ_VALET_MODE, android.car.Car.PERMISSION_CONTROL_VALET_MODE})) @RequiresPermission.Write(@androidx.annotation.RequiresPermission(android.car.Car.PERMISSION_CONTROL_VALET_MODE)) public static final int VALET_MODE_ENABLED = 287312389; // 0x11200a05
field @FlaggedApi("android.car.feature.android_vic_vehicle_properties") @RequiresPermission.Read(@androidx.annotation.RequiresPermission(android.car.Car.PERMISSION_CAR_DRIVING_STATE)) public static final int VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL = 289410892; // 0x11400f4c
diff --git a/car-lib/api/system-current.txt b/car-lib/api/system-current.txt
index bba0a95..691169b 100644
--- a/car-lib/api/system-current.txt
+++ b/car-lib/api/system-current.txt
@@ -343,6 +343,7 @@
field @RequiresPermission(android.car.Car.PERMISSION_CONTROL_STEERING_WHEEL) public static final int STEERING_WHEEL_HEIGHT_POS = 289410018; // 0x11400be2
field @RequiresPermission(android.car.Car.PERMISSION_CONTROL_STEERING_WHEEL) public static final int STEERING_WHEEL_LOCKED = 287312869; // 0x11200be5
field @RequiresPermission(android.car.Car.PERMISSION_CONTROL_STEERING_WHEEL) public static final int STEERING_WHEEL_THEFT_LOCK_ENABLED = 287312868; // 0x11200be4
+ field @FlaggedApi("android.car.feature.android_vic_vehicle_properties") @RequiresPermission.Read(@androidx.annotation.RequiresPermission(android.car.Car.PERMISSION_READ_ULTRASONICS_SENSOR_DATA)) public static final int ULTRASONICS_SENSOR_ORIENTATION = 406916129; // 0x18410c21
field @FlaggedApi("android.car.feature.android_vic_vehicle_properties") @RequiresPermission.Read(@androidx.annotation.RequiresPermission(android.car.Car.PERMISSION_READ_ULTRASONICS_SENSOR_DATA)) public static final int ULTRASONICS_SENSOR_POSITION = 406916128; // 0x18410c20
field @FlaggedApi("android.car.feature.android_vic_vehicle_properties") @RequiresPermission.Read(@androidx.annotation.RequiresPermission(anyOf={android.car.Car.PERMISSION_READ_VALET_MODE, android.car.Car.PERMISSION_CONTROL_VALET_MODE})) @RequiresPermission.Write(@androidx.annotation.RequiresPermission(android.car.Car.PERMISSION_CONTROL_VALET_MODE)) public static final int VALET_MODE_ENABLED = 287312389; // 0x11200a05
field @FlaggedApi("android.car.feature.android_vic_vehicle_properties") @RequiresPermission.Read(@androidx.annotation.RequiresPermission(android.car.Car.PERMISSION_CAR_DRIVING_STATE)) public static final int VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL = 289410892; // 0x11400f4c
diff --git a/car-lib/api/test-current.txt b/car-lib/api/test-current.txt
index 1d0e020..17687fa 100644
--- a/car-lib/api/test-current.txt
+++ b/car-lib/api/test-current.txt
@@ -349,6 +349,7 @@
field @RequiresPermission(android.car.Car.PERMISSION_CONTROL_STEERING_WHEEL) public static final int STEERING_WHEEL_HEIGHT_POS = 289410018; // 0x11400be2
field @RequiresPermission(android.car.Car.PERMISSION_CONTROL_STEERING_WHEEL) public static final int STEERING_WHEEL_LOCKED = 287312869; // 0x11200be5
field @RequiresPermission(android.car.Car.PERMISSION_CONTROL_STEERING_WHEEL) public static final int STEERING_WHEEL_THEFT_LOCK_ENABLED = 287312868; // 0x11200be4
+ field @FlaggedApi("android.car.feature.android_vic_vehicle_properties") @RequiresPermission.Read(@androidx.annotation.RequiresPermission(android.car.Car.PERMISSION_READ_ULTRASONICS_SENSOR_DATA)) public static final int ULTRASONICS_SENSOR_ORIENTATION = 406916129; // 0x18410c21
field @FlaggedApi("android.car.feature.android_vic_vehicle_properties") @RequiresPermission.Read(@androidx.annotation.RequiresPermission(android.car.Car.PERMISSION_READ_ULTRASONICS_SENSOR_DATA)) public static final int ULTRASONICS_SENSOR_POSITION = 406916128; // 0x18410c20
field @FlaggedApi("android.car.feature.android_vic_vehicle_properties") @RequiresPermission.Read(@androidx.annotation.RequiresPermission(anyOf={android.car.Car.PERMISSION_READ_VALET_MODE, android.car.Car.PERMISSION_CONTROL_VALET_MODE})) @RequiresPermission.Write(@androidx.annotation.RequiresPermission(android.car.Car.PERMISSION_CONTROL_VALET_MODE)) public static final int VALET_MODE_ENABLED = 287312389; // 0x11200a05
field @FlaggedApi("android.car.feature.android_vic_vehicle_properties") @RequiresPermission.Read(@androidx.annotation.RequiresPermission(android.car.Car.PERMISSION_CAR_DRIVING_STATE)) public static final int VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL = 289410892; // 0x11400f4c
diff --git a/car-lib/generated-prop-config/CarSvcProps.json b/car-lib/generated-prop-config/CarSvcProps.json
index 2492f0a..996cc4f 100644
--- a/car-lib/generated-prop-config/CarSvcProps.json
+++ b/car-lib/generated-prop-config/CarSvcProps.json
@@ -2341,6 +2341,16 @@
},
"systemApi": true
},
+ "ULTRASONICS_SENSOR_ORIENTATION": {
+ "propertyName": "ULTRASONICS_SENSOR_ORIENTATION",
+ "propertyId": 406916129,
+ "description": "Static data for the orientation of each ultrasonic sensor installed on the vehicle.",
+ "readPermission": {
+ "type": "single",
+ "value": "android.car.permission.READ_ULTRASONICS_SENSOR_DATA"
+ },
+ "systemApi": true
+ },
"OBD2_LIVE_FRAME": {
"propertyName": "OBD2_LIVE_FRAME",
"propertyId": 299896064,
diff --git a/car-lib/src/android/car/VehiclePropertyIds.java b/car-lib/src/android/car/VehiclePropertyIds.java
index b8d7c5b..7b36088 100644
--- a/car-lib/src/android/car/VehiclePropertyIds.java
+++ b/car-lib/src/android/car/VehiclePropertyIds.java
@@ -4420,6 +4420,47 @@
public static final int ULTRASONICS_SENSOR_POSITION = 406916128;
/**
+ * Static data for the orientation of each ultrasonic sensor installed on the vehicle.
+ *
+ * <p>Each individual sensor is identified by its {@link AreaIdConfig#getAreaId()} and returns
+ * the sensor's orientation formatted as [qw, qx, qy, qz] where:
+ *
+ * <ul>
+ * <li>qw is the quaternion coefficient w within the quaterinion (w + xi + yj + zk) describing
+ * the rotation of the sensor relative to the Android Automotive sensor coordinate frame.
+ * <li>qx is the quaternion coefficient x within the quaterinion (w + xi + yj + zk) describing
+ * the rotation of the sensor relative to the Android Automotive sensor coordinate frame.
+ * <li>qy is the quaternion coefficient y within the quaterinion (w + xi + yj + zk) describing
+ * the rotation of the sensor relative to the Android Automotive sensor coordinate frame.
+ * <li>qz is the quaternion coefficient z within the quaterinion (w + xi + yj + zk) describing
+ * the rotation of the sensor relative to the Android Automotive sensor coordinate frame.
+ * </ul>
+ *
+ * <p>This assumes each sensor uses the same axes conventions as Android Automotive.
+ *
+ * <p>Property Config:
+ * <ul>
+ * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_ACCESS_READ}
+ * <li>{@link VehicleAreaType#VEHICLE_AREA_TYPE_VENDOR}
+ * <li>{@link android.car.hardware.CarPropertyConfig#VEHICLE_PROPERTY_CHANGE_MODE_STATIC}
+ * <li>{@code Integer[]} property type
+ * </ul>
+ *
+ * <p>Required Permission:
+ * <ul>
+ * <li>Signature|Privileged permission {@link Car#PERMISSION_READ_ULTRASONICS_SENSOR_DATA} to
+ * read property.
+ * <li>Property is not writable.
+ * </ul>
+ *
+ * @hide
+ */
+ @FlaggedApi(FLAG_ANDROID_VIC_VEHICLE_PROPERTIES)
+ @SystemApi
+ @RequiresPermission.Read(@RequiresPermission(Car.PERMISSION_READ_ULTRASONICS_SENSOR_DATA))
+ public static final int ULTRASONICS_SENSOR_ORIENTATION = 406916129;
+
+ /**
* OBD2 Live Sensor Data.
*
* <p>Not exposed through {@link android.car.hardware.property.CarPropertyManager}.