rosemary: sensors: Standardize xiaomi pickup sensor

* Use standard sensor type
 * Ignore non-wakeup sensor variant
 * Ignore events that do not properly match a pickup

[LinkBoi00] Adapt sensor name for our device

Change-Id: I2bab89362aa225344a69c4969096ea9a61ef3033
Signed-off-by: LinkBoi00 <linkdevel@protonmail.com>
This commit is contained in:
Cosmin Tanislav
2021-09-21 02:43:52 +03:00
committed by Matsvei Niaverau
parent 51a67cce2b
commit fc0874544e
2 changed files with 31 additions and 1 deletions

View File

@@ -81,6 +81,25 @@ int64_t msFromNs(int64_t nanos) {
return nanos / nanosecondsInAMillsecond;
}
bool patchXiaomiPickupSensor(V2_1::SensorInfo& sensor) {
if (sensor.typeAsString != "xiaomi pick up sensor") {
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() {
const char* kMultiHalConfigFile = "/vendor/etc/sensors/hals.conf";
initializeSubHalListFromConfigFile(kMultiHalConfigFile);
@@ -491,6 +510,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;
}
}