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

Commit 98d1f997 authored by Jeff Brown's avatar Jeff Brown Committed by Android Git Automerger
Browse files

am 8148cc3e: am 86ea1f5f: Initial checkin of spot presentation for touchpad...

am 8148cc3e: am 86ea1f5f: Initial checkin of spot presentation for touchpad gestures. (DO NOT MERGE)

* commit '8148cc3e47e50c916066e2fed562618b5827188f':
  Initial checkin of spot presentation for touchpad gestures. (DO NOT MERGE)
parents 6f5893ff 01fdb1bb
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -608,6 +608,11 @@ private:
    // Oldest sample to consider when calculating the velocity.
    static const nsecs_t MAX_AGE = 200 * 1000000; // 200 ms

    // When the total duration of the window of samples being averaged is less
    // than the window size, the resulting velocity is scaled to reduce the impact
    // of overestimation in short traces.
    static const nsecs_t MIN_WINDOW = 100 * 1000000; // 100 ms

    // The minimum duration between samples when estimating velocity.
    static const nsecs_t MIN_DURATION = 10 * 1000000; // 10 ms

+9 −0
Original line number Diff line number Diff line
@@ -831,6 +831,7 @@ bool VelocityTracker::getVelocity(uint32_t id, float* outVx, float* outVy) const
        const Position& oldestPosition =
                oldestMovement.positions[oldestMovement.idBits.getIndexOfBit(id)];
        nsecs_t lastDuration = 0;

        while (numTouches-- > 1) {
            if (++index == HISTORY_SIZE) {
                index = 0;
@@ -857,6 +858,14 @@ bool VelocityTracker::getVelocity(uint32_t id, float* outVx, float* outVy) const

        // Make sure we used at least one sample.
        if (samplesUsed != 0) {
            // Scale the velocity linearly if the window of samples is small.
            nsecs_t totalDuration = newestMovement.eventTime - oldestMovement.eventTime;
            if (totalDuration < MIN_WINDOW) {
                float scale = float(totalDuration) / float(MIN_WINDOW);
                accumVx *= scale;
                accumVy *= scale;
            }

            *outVx = accumVx;
            *outVy = accumVy;
            return true;
+2 −1
Original line number Diff line number Diff line
@@ -662,7 +662,8 @@ void Looper::wakeAndLock() {
#endif

void Looper::sendMessage(const sp<MessageHandler>& handler, const Message& message) {
    sendMessageAtTime(LLONG_MIN, handler, message);
    nsecs_t now = systemTime(SYSTEM_TIME_MONOTONIC);
    sendMessageAtTime(now, handler, message);
}

void Looper::sendMessageDelayed(nsecs_t uptimeDelay, const sp<MessageHandler>& handler,