Snap for 7783058 from 43bc7bccdc3e4ee224d5c22ef8f18b0f2fbeb1e0 to sc-v2-release

Change-Id: I2c7d5dfff1c000beec8e427b5a6e0ae64e1c68ab
diff --git a/modules/sensors/dynamic_sensor/DynamicSensorsSubHal.cpp b/modules/sensors/dynamic_sensor/DynamicSensorsSubHal.cpp
index 4f0cc48..d9e3182 100644
--- a/modules/sensors/dynamic_sensor/DynamicSensorsSubHal.cpp
+++ b/modules/sensors/dynamic_sensor/DynamicSensorsSubHal.cpp
@@ -35,6 +35,21 @@
 namespace android {
 namespace SensorHalExt {
 
+static Result ResultFromStatus(status_t err) {
+    switch (err) {
+        case ::android::OK:
+            return Result::OK;
+        case ::android::PERMISSION_DENIED:
+            return Result::PERMISSION_DENIED;
+        case ::android::NO_MEMORY:
+            return Result::NO_MEMORY;
+        case ::android::BAD_VALUE:
+            return Result::BAD_VALUE;
+        default:
+            return Result::INVALID_OPERATION;
+    }
+}
+
 DynamicSensorsSubHal::DynamicSensorsSubHal() {
     // initialize dynamic sensor manager
     mDynamicSensorManager.reset(
@@ -49,19 +64,18 @@
             Result::OK : Result::BAD_VALUE);
 }
 
-Return<Result> DynamicSensorsSubHal::activate(int32_t sensor_handle __unused,
-                                              bool enabled __unused) {
-    ALOGE("DynamicSensorsSubHal::activate not supported.");
-
-    return Result::INVALID_OPERATION;
+Return<Result> DynamicSensorsSubHal::activate(int32_t sensor_handle,
+                                              bool enabled) {
+    int rc = mDynamicSensorManager->activate(sensor_handle, enabled);
+    return ResultFromStatus(rc);
 }
 
 Return<Result> DynamicSensorsSubHal::batch(
-        int32_t sensor_handle __unused, int64_t sampling_period_ns __unused,
-        int64_t max_report_latency_ns __unused) {
-    ALOGE("DynamicSensorsSubHal::batch not supported.");
-
-    return Result::INVALID_OPERATION;
+        int32_t sensor_handle, int64_t sampling_period_ns,
+        int64_t max_report_latency_ns) {
+    int rc = mDynamicSensorManager->batch(sensor_handle, sampling_period_ns,
+                                          max_report_latency_ns);
+    return ResultFromStatus(rc);
 }
 
 Return<Result> DynamicSensorsSubHal::flush(int32_t sensor_handle __unused) {