fix [3237242] sensormanager sensor active count gets out of sync

whether a physical sensor needed to be active or not was managed by
a simpe reference counter; unfortunatelly nothing prevented it to
get out of sync if a sensor was disabled more than once.

sensorservice already maintainted a list of all the "clients"
connected to a physical sensor; we now use that list to determine if
a sensor should be enabled. This can never be "out-of-sync" since
this is the only data structure linking a sensor to a user of that
sensor.

also removed the isEnabled() method, which was never used and
implemented wrongly (since it didn't take into account that a sensor
could be disabled for a client but not of another).

Change-Id: I789affb877728ca957e99f7ba749def37c4db1c7
diff --git a/services/sensorservice/SensorInterface.cpp b/services/sensorservice/SensorInterface.cpp
index 93d23d9..be8eaff 100644
--- a/services/sensorservice/SensorInterface.cpp
+++ b/services/sensorservice/SensorInterface.cpp
@@ -32,7 +32,7 @@
 
 HardwareSensor::HardwareSensor(const sensor_t& sensor)
     : mSensorDevice(SensorDevice::getInstance()),
-      mSensor(&sensor), mEnabled(false)
+      mSensor(&sensor)
 {
     LOGI("%s", sensor.name);
 }
@@ -46,15 +46,8 @@
     return true;
 }
 
-bool HardwareSensor::isEnabled() const {
-    return mEnabled;
-}
-
-status_t HardwareSensor::activate(void* ident,bool enabled) {
-    status_t err = mSensorDevice.activate(ident, mSensor.getHandle(), enabled);
-    if (err == NO_ERROR)
-        mEnabled = enabled;
-    return err;
+status_t HardwareSensor::activate(void* ident, bool enabled) {
+    return mSensorDevice.activate(ident, mSensor.getHandle(), enabled);
 }
 
 status_t HardwareSensor::setDelay(void* ident, int handle, int64_t ns) {