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

Commit 214cb227 authored by chasewu's avatar chasewu Committed by eddielan
Browse files

vibrator: Add a threshold to filter out some short vibration cases



Some app will use short vibration to implement haptics effect and
those cases will feel a delay from the motion awareness mechanism.

We add this patch to filter out those cases since those behaviors
beyond the motion awareness mechanism scope.

Bug: 162346934
Test: UT test
Signed-off-by: default avatarchasewu <chasewu@google.com>
Change-Id: Iee8d5993f040126243d90330f03b897970c70c1b
parent 3070ff76
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -75,6 +75,7 @@ static struct timespec sGetTime;
#define SENSOR_DATA_NUM 20
// Set sensing period to 2s
#define SENSING_PERIOD 2000000000
#define VIBRATION_MOTION_TIME_THRESHOLD 100
#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))

int GSensorCallback(__attribute__((unused)) int fd, __attribute__((unused)) int events,
@@ -500,7 +501,9 @@ ndk::ScopedAStatus Vibrator::on(int32_t timeoutMs,
        if (temperature > TEMP_UPPER_BOUND) {
            mSteadyConfig->odClamp = &mSteadyTargetOdClamp[0];
            mSteadyConfig->olLraPeriod = mSteadyOlLraPeriod;
            if (!motionAwareness()) {
            // TODO: b/162346934 This a compromise way to bypass the motion
            // awareness delay
            if ((timeoutMs > VIBRATION_MOTION_TIME_THRESHOLD) && (!motionAwareness())) {
                return on(timeoutMs, RTP_MODE, mSteadyConfig, 2);
            }
        } else if (temperature < TEMP_LOWER_BOUND) {