Listen for Sensors HAL Death

Register for Sensors HAL Death notifications so that active sensor
connections can be re-established once the Sensors HAL restarts.

Bug: 111070257
Test: Builds, verified death receiver is called if Sensors HAL is
      stopped.

Change-Id: I564b285c939ca8dc7288149c032ba6c639e2d12a
diff --git a/services/sensorservice/SensorDevice.cpp b/services/sensorservice/SensorDevice.cpp
index 68e5172..f813fe5 100644
--- a/services/sensorservice/SensorDevice.cpp
+++ b/services/sensorservice/SensorDevice.cpp
@@ -59,6 +59,13 @@
     }
 }
 
+void SensorsHalDeathReceivier::serviceDied(
+        uint64_t /* cookie */,
+        const wp<::android::hidl::base::V1_0::IBase>& /* service */) {
+    ALOGW("Sensors HAL died, attempting to reconnect.");
+    // TODO: Attempt reconnect
+}
+
 struct SensorsCallback : public ISensorsCallback {
     using Result = ::android::hardware::sensors::V1_0::Result;
     Return<void> onDynamicSensorsConnected(
@@ -189,6 +196,8 @@
             ALOGE("Failed to initialize Sensors HAL (%s)", strerror(-status));
         } else {
             connectionStatus = HalConnectionStatus::CONNECTED;
+            mSensorsHalDeathReceiver = new SensorsHalDeathReceivier();
+            sensors->linkToDeath(mSensorsHalDeathReceiver, 0 /* cookie */);
         }
     }