Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit eac7b0af authored by Steve Kondik's avatar Steve Kondik Committed by Gerrit Code Review
Browse files

Merge "sensors: Add workaround for Foxconn's broken sensor data" into gingerbread

parents b9f493e4 f400cd1f
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -16,6 +16,10 @@ ifeq ($(TARGET_USES_OLD_LIBSENSORS_HAL),true)
    LOCAL_CFLAGS += -DENABLE_SENSORS_COMPAT
endif

ifeq ($(TARGET_HAS_FOXCONN_SENSORS),true)
    LOCAL_CFLAGS += -DFOXCONN_SENSORS
endif

# need "-lrt" on Linux simulator to pick up clock_gettime
ifeq ($(TARGET_SIMULATOR),true)
	ifeq ($(HOST_OS),linux)
+11 −0
Original line number Diff line number Diff line
@@ -221,6 +221,17 @@ ssize_t SensorDevice::poll(sensors_event_t* buffer, size_t count) {
            buffer[pollsDone].acceleration = oldBuffer.vector;
            buffer[pollsDone].temperature = oldBuffer.temperature;
            LOGV("Adding results for sensor %d", buffer[pollsDone].sensor);
#ifdef FOXCONN_SENSORS
            /* Fix ridiculous API breakages from FIH. */
            /* These idiots are returning -1 for FAR, and 1 for NEAR */
            if (sensorType == SENSOR_TYPE_PROXIMITY) {
                if (buffer[pollsDone].distance > 0) {
                    buffer[pollsDone].distance = 0;
                } else {
                    buffer[pollsDone].distance = 1;
                }
            }
#endif
            pollsDone++;
        }
        return pollsDone;