forked from donjohanliebert/hardware_xiaomi
aidl: sensors: Standardize xiaomi pickup sensor
* use standard sensor type * ignore non-wakeup sensor variant * ignore events that do not properly match a pickup Change-Id: Ibe2f9fee1551da613713d40c1b8d0a26d38a93ae Signed-off-by: ralph950412 <ralph950412@gmail.com>
This commit is contained in:
parent
da9e56f0ae
commit
e743eba68a
@ -81,6 +81,25 @@ int64_t msFromNs(int64_t nanos) {
|
||||
return nanos / nanosecondsInAMillsecond;
|
||||
}
|
||||
|
||||
bool patchXiaomiPickupSensor(V2_1::SensorInfo& sensor) {
|
||||
if (sensor.typeAsString != "xiaomi.sensor.pickup") {
|
||||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
* Implement only the wake-up version of this sensor.
|
||||
*/
|
||||
if (!(sensor.flags & V1_0::SensorFlagBits::WAKE_UP)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
sensor.type = V2_1::SensorType::PICK_UP_GESTURE;
|
||||
sensor.typeAsString = SENSOR_STRING_TYPE_PICK_UP_GESTURE;
|
||||
sensor.maxRange = 1;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
HalProxy::HalProxy() {
|
||||
static const std::string kMultiHalConfigFiles[] = {"/vendor/etc/sensors/hals.conf",
|
||||
"/odm/etc/sensors/hals.conf"};
|
||||
@ -496,6 +515,11 @@ void HalProxy::initializeSensorList() {
|
||||
ALOGV("Loaded sensor: %s", sensor.name.c_str());
|
||||
sensor.sensorHandle = setSubHalIndex(sensor.sensorHandle, subHalIndex);
|
||||
setDirectChannelFlags(&sensor, mSubHalList[subHalIndex]);
|
||||
bool keep = patchXiaomiPickupSensor(sensor);
|
||||
if (!keep) {
|
||||
continue;
|
||||
}
|
||||
|
||||
mSensors[sensor.sensorHandle] = sensor;
|
||||
}
|
||||
}
|
||||
|
@ -72,11 +72,17 @@ std::vector<V2_1::Event> HalProxyCallbackBase::processEvents(const std::vector<V
|
||||
event.u.dynamic.sensorHandle =
|
||||
setSubHalIndex(event.u.dynamic.sensorHandle, mSubHalIndex);
|
||||
}
|
||||
eventsOut.push_back(event);
|
||||
const V2_1::SensorInfo& sensor = mCallback->getSensorInfo(event.sensorHandle);
|
||||
|
||||
if (sensor.type == V2_1::SensorType::PICK_UP_GESTURE
|
||||
&& event.u.scalar != 1) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((sensor.flags & V1_0::SensorFlagBits::WAKE_UP) != 0) {
|
||||
(*numWakeupEvents)++;
|
||||
}
|
||||
eventsOut.push_back(event);
|
||||
}
|
||||
return eventsOut;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user