sensors: route sensor handle for multi-hal event injection

Change-Id: Iad65c8b7eea7fbe89747123bd3364b6dcde8b839
Merged-In: Iad65c8b7eea7fbe89747123bd3364b6dcde8b839
diff --git a/modules/sensors/multihal.cpp b/modules/sensors/multihal.cpp
index 4d6013f..1cea7ae 100644
--- a/modules/sensors/multihal.cpp
+++ b/modules/sensors/multihal.cpp
@@ -445,7 +445,11 @@
         sensors_poll_device_1_t* v1 = this->get_v1_device_by_handle(data->sensor);
         if (halIsAPILevelCompliant(this, data->sensor, SENSORS_DEVICE_API_VERSION_1_4) &&
                 local_handle >= 0 && v1) {
-            retval = v1->inject_sensor_data(v1, data);
+            // if specific sensor is used, we have to replace global sensor handle
+            // with local one, before passing to concrete HAL
+            sensors_event_t data_copy = *data;
+            data_copy.sensor = local_handle;
+            retval = v1->inject_sensor_data(v1, &data_copy);
         } else {
             ALOGE("IGNORED inject_sensor_data(type=%d, handle=%d) call to non-API-compliant sensor",
                     data->type, data->sensor);