Add hinge sensor1 and hinge sensor2

Bug: 155646965

Test: run emualtor, check dumpsys sensor list
Change-Id: Iecf2361c190bf5a470e60923240050ca9876d5be
diff --git a/sensors/multihal_sensors.h b/sensors/multihal_sensors.h
index 7532226..80ed6a3 100644
--- a/sensors/multihal_sensors.h
+++ b/sensors/multihal_sensors.h
@@ -77,6 +77,8 @@
         float lastLightValue = kSensorNoValue;
         float lastRelativeHumidityValue = kSensorNoValue;
         float lastHingeAngle0Value = kSensorNoValue;
+        float lastHingeAngle1Value = kSensorNoValue;
+        float lastHingeAngle2Value = kSensorNoValue;
     };
 
     static bool activateQemuSensorImpl(int pipe, int sensorHandle, bool enabled);
diff --git a/sensors/multihal_sensors_qemu.cpp b/sensors/multihal_sensors_qemu.cpp
index a56dc15..a07d569 100644
--- a/sensors/multihal_sensors_qemu.cpp
+++ b/sensors/multihal_sensors_qemu.cpp
@@ -234,6 +234,30 @@
             }
             parsed = true;
         }
+    } else if (const char* values = testPrefix(buf, end, "hinge-angle1", ':')) {
+        if (sscanf(values, "%f", &payload->scalar) == 1) {
+            if (!approximatelyEqual(state->lastHingeAngle1Value,
+                                    payload->scalar, 0.001)) {
+                event.timestamp = nowNs + state->timeBiasNs;
+                event.sensorHandle = kSensorHandleHingeAngle1;
+                event.sensorType = SensorType::HINGE_ANGLE;
+                postSensorEvent(event);
+                state->lastHingeAngle1Value = payload->scalar;
+            }
+            parsed = true;
+        }
+    } else if (const char* values = testPrefix(buf, end, "hinge-angle2", ':')) {
+        if (sscanf(values, "%f", &payload->scalar) == 1) {
+            if (!approximatelyEqual(state->lastHingeAngle2Value,
+                                    payload->scalar, 0.001)) {
+                event.timestamp = nowNs + state->timeBiasNs;
+                event.sensorHandle = kSensorHandleHingeAngle2;
+                event.sensorType = SensorType::HINGE_ANGLE;
+                postSensorEvent(event);
+                state->lastHingeAngle2Value = payload->scalar;
+            }
+            parsed = true;
+        }
      } else if (const char* values = testPrefix(buf, end, "guest-sync", ':')) {
         long long value;
         if ((sscanf(values, "%lld", &value) == 1) && (value >= 0)) {
diff --git a/sensors/sensor_list.cpp b/sensors/sensor_list.cpp
index 06f98fe..245379f 100644
--- a/sensors/sensor_list.cpp
+++ b/sensors/sensor_list.cpp
@@ -35,6 +35,8 @@
     "magnetic-field-uncalibrated",
     "gyroscope-uncalibrated",
     "hinge-angle0",
+    "hinge-angle1",
+    "hinge-angle2",
 };
 
 const SensorInfo kAllSensors[] = {
@@ -254,6 +256,44 @@
         .flags = SensorFlagBits::DATA_INJECTION |
                  SensorFlagBits::ON_CHANGE_MODE |
                  SensorFlagBits::WAKE_UP
+    },
+    {
+        .sensorHandle = kSensorHandleHingeAngle1,
+        .name = "Goldfish hinge sensor1 (in degrees)",
+        .vendor = kAospVendor,
+        .version = 1,
+        .type = SensorType::HINGE_ANGLE,
+        .typeAsString = "android.sensor.hinge_angle",
+        .maxRange = 360,
+        .resolution = 1.0,
+        .power = 3.0,
+        .minDelay = 10000,
+        .fifoReservedEventCount = 0,
+        .fifoMaxEventCount = 0,
+        .requiredPermission = "",
+        .maxDelay = 500000,
+        .flags = SensorFlagBits::DATA_INJECTION |
+                 SensorFlagBits::ON_CHANGE_MODE |
+                 SensorFlagBits::WAKE_UP
+    },
+    {
+        .sensorHandle = kSensorHandleHingeAngle2,
+        .name = "Goldfish hinge sensor2 (in degrees)",
+        .vendor = kAospVendor,
+        .version = 1,
+        .type = SensorType::HINGE_ANGLE,
+        .typeAsString = "android.sensor.hinge_angle",
+        .maxRange = 360,
+        .resolution = 1.0,
+        .power = 3.0,
+        .minDelay = 10000,
+        .fifoReservedEventCount = 0,
+        .fifoMaxEventCount = 0,
+        .requiredPermission = "",
+        .maxDelay = 500000,
+        .flags = SensorFlagBits::DATA_INJECTION |
+                 SensorFlagBits::ON_CHANGE_MODE |
+                 SensorFlagBits::WAKE_UP
     }};
 
 constexpr int kSensorNumber = sizeof(kAllSensors) / sizeof(kAllSensors[0]);
diff --git a/sensors/sensor_list.h b/sensors/sensor_list.h
index 771adf2..b74fce9 100644
--- a/sensors/sensor_list.h
+++ b/sensors/sensor_list.h
@@ -34,6 +34,8 @@
 constexpr int kSensorHandleMagneticFieldUncalibrated = 9;
 constexpr int kSensorHandleGyroscopeFieldUncalibrated = 10;
 constexpr int kSensorHandleHingeAngle0 = 11;
+constexpr int kSensorHandleHingeAngle1 = 12;
+constexpr int kSensorHandleHingeAngle2 = 13;
 
 int getSensorNumber();
 bool isSensorHandleValid(int h);