mirror of
https://github.com/Evolution-X-Devices/device_xiaomi_rosemary
synced 2026-01-27 05:17:04 +00:00
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:
committed by
Matsvei Niaverau
parent
51a67cce2b
commit
fc0874544e
@@ -81,6 +81,25 @@ int64_t msFromNs(int64_t nanos) {
|
|||||||
return nanos / nanosecondsInAMillsecond;
|
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() {
|
HalProxy::HalProxy() {
|
||||||
const char* kMultiHalConfigFile = "/vendor/etc/sensors/hals.conf";
|
const char* kMultiHalConfigFile = "/vendor/etc/sensors/hals.conf";
|
||||||
initializeSubHalListFromConfigFile(kMultiHalConfigFile);
|
initializeSubHalListFromConfigFile(kMultiHalConfigFile);
|
||||||
@@ -491,6 +510,11 @@ void HalProxy::initializeSensorList() {
|
|||||||
ALOGV("Loaded sensor: %s", sensor.name.c_str());
|
ALOGV("Loaded sensor: %s", sensor.name.c_str());
|
||||||
sensor.sensorHandle = setSubHalIndex(sensor.sensorHandle, subHalIndex);
|
sensor.sensorHandle = setSubHalIndex(sensor.sensorHandle, subHalIndex);
|
||||||
setDirectChannelFlags(&sensor, mSubHalList[subHalIndex]);
|
setDirectChannelFlags(&sensor, mSubHalList[subHalIndex]);
|
||||||
|
bool keep = patchXiaomiPickupSensor(sensor);
|
||||||
|
if (!keep) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
mSensors[sensor.sensorHandle] = sensor;
|
mSensors[sensor.sensorHandle] = sensor;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,11 +68,17 @@ std::vector<V2_1::Event> HalProxyCallbackBase::processEvents(const std::vector<V
|
|||||||
std::vector<V2_1::Event> eventsOut;
|
std::vector<V2_1::Event> eventsOut;
|
||||||
for (V2_1::Event event : events) {
|
for (V2_1::Event event : events) {
|
||||||
event.sensorHandle = setSubHalIndex(event.sensorHandle, mSubHalIndex);
|
event.sensorHandle = setSubHalIndex(event.sensorHandle, mSubHalIndex);
|
||||||
eventsOut.push_back(event);
|
|
||||||
const V2_1::SensorInfo& sensor = mCallback->getSensorInfo(event.sensorHandle);
|
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) {
|
if ((sensor.flags & V1_0::SensorFlagBits::WAKE_UP) != 0) {
|
||||||
(*numWakeupEvents)++;
|
(*numWakeupEvents)++;
|
||||||
}
|
}
|
||||||
|
eventsOut.push_back(event);
|
||||||
}
|
}
|
||||||
return eventsOut;
|
return eventsOut;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user