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

Commit 60d6151b authored by Tracy Zhou's avatar Tracy Zhou
Browse files

[Gesture Library Integration] Update the check for motion events on

trackpad

The gesture library is ported and enabled, thus we are updating our
check for motion events on trackpad.

Bug: 255697805
Test: 3-finger horizontal swipe in app; make sure back is animated
and triggered.

Change-Id: If37a767da53320f5cdf3925f6203e1fbcc6a3c38
parent 2eae0d9f
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@

package com.android.systemui.navigationbar.gestural;

import static android.view.InputDevice.SOURCE_TOUCHSCREEN;
import static android.view.MotionEvent.CLASSIFICATION_MULTI_FINGER_SWIPE;

import android.content.Context;
import android.view.MotionEvent;
@@ -24,14 +24,12 @@ import android.view.ViewConfiguration;

public final class Utilities {

    private static final int TRACKPAD_GESTURE_SCALE = 60;
    private static final int TRACKPAD_GESTURE_SCALE = 200;

    public static boolean isTrackpadMotionEvent(boolean isTrackpadGestureBackEnabled,
            MotionEvent event) {
        // TODO: ideally should use event.getClassification(), but currently only the move
        // events get assigned the correct classification.
        return isTrackpadGestureBackEnabled
                && (event.getSource() & SOURCE_TOUCHSCREEN) != SOURCE_TOUCHSCREEN;
                && event.getClassification() == CLASSIFICATION_MULTI_FINGER_SWIPE;
    }

    public static int getTrackpadScale(Context context) {
+10 −14
Original line number Diff line number Diff line
@@ -16,10 +16,10 @@

package com.android.systemui.navigationbar.gestural;

import static android.view.InputDevice.SOURCE_TOUCHPAD;
import static android.view.InputDevice.SOURCE_TOUCHSCREEN;
import static android.view.InputDevice.SOURCE_MOUSE;
import static android.view.MotionEvent.AXIS_GESTURE_X_OFFSET;
import static android.view.MotionEvent.AXIS_GESTURE_Y_OFFSET;
import static android.view.MotionEvent.CLASSIFICATION_MULTI_FINGER_SWIPE;

import static com.google.common.truth.Truth.assertThat;

@@ -57,14 +57,9 @@ public class MotionEventsHandlerTest extends SysuiTestCase {
    @Test
    public void onTouchEvent_touchScreen_hasCorrectDisplacements() {
        MotionEvent down = MotionEvent.obtain(0, 0, MotionEvent.ACTION_DOWN, 100, 100, 0);
        // TODO: change to use classification after gesture library is ported.
        down.setSource(SOURCE_TOUCHSCREEN);
        MotionEvent move1 = MotionEvent.obtain(0, 1, MotionEvent.ACTION_MOVE, 150, 125, 0);
        move1.setSource(SOURCE_TOUCHSCREEN);
        MotionEvent move2 = MotionEvent.obtain(0, 2, MotionEvent.ACTION_MOVE, 200, 150, 0);
        move2.setSource(SOURCE_TOUCHSCREEN);
        MotionEvent up = MotionEvent.obtain(0, 3, MotionEvent.ACTION_UP, 250, 175, 0);
        up.setSource(SOURCE_TOUCHSCREEN);

        mMotionEventsHandler.onMotionEvent(down);
        mMotionEventsHandler.onMotionEvent(move1);
@@ -90,8 +85,8 @@ public class MotionEventsHandlerTest extends SysuiTestCase {
        downPointerProperties[0].id = 1;
        downPointerProperties[0].toolType = MotionEvent.TOOL_TYPE_FINGER;
        MotionEvent down = MotionEvent.obtain(0, 0, MotionEvent.ACTION_DOWN, 1,
                downPointerProperties, downPointerCoords, 0, 0, 1.0f, 1.0f, 0, 0,
                SOURCE_TOUCHPAD, 0);
                downPointerProperties, downPointerCoords, 0, 0, 1.0f, 1.0f, 0, 0, SOURCE_MOUSE,
                0, 0, CLASSIFICATION_MULTI_FINGER_SWIPE);

        MotionEvent.PointerCoords[] movePointerCoords1 = new MotionEvent.PointerCoords[1];
        movePointerCoords1[0] = new MotionEvent.PointerCoords();
@@ -103,8 +98,8 @@ public class MotionEventsHandlerTest extends SysuiTestCase {
        movePointerProperties1[0].id = 1;
        movePointerProperties1[0].toolType = MotionEvent.TOOL_TYPE_FINGER;
        MotionEvent move1 = MotionEvent.obtain(0, 1, MotionEvent.ACTION_MOVE, 1,
                movePointerProperties1, movePointerCoords1, 0, 0, 1.0f, 1.0f, 0, 0, SOURCE_TOUCHPAD,
                0);
                movePointerProperties1, movePointerCoords1, 0, 0, 1.0f, 1.0f, 0, 0, SOURCE_MOUSE,
                0, 0, CLASSIFICATION_MULTI_FINGER_SWIPE);

        MotionEvent.PointerCoords[] movePointerCoords2 = new MotionEvent.PointerCoords[1];
        movePointerCoords2[0] = new MotionEvent.PointerCoords();
@@ -116,8 +111,8 @@ public class MotionEventsHandlerTest extends SysuiTestCase {
        movePointerProperties2[0].id = 1;
        movePointerProperties2[0].toolType = MotionEvent.TOOL_TYPE_FINGER;
        MotionEvent move2 = MotionEvent.obtain(0, 2, MotionEvent.ACTION_MOVE, 1,
                movePointerProperties2, movePointerCoords2, 0, 0, 1.0f, 1.0f, 0, 0, SOURCE_TOUCHPAD,
                0);
                movePointerProperties2, movePointerCoords2, 0, 0, 1.0f, 1.0f, 0, 0, SOURCE_MOUSE,
                0, 0, CLASSIFICATION_MULTI_FINGER_SWIPE);

        MotionEvent.PointerCoords[] upPointerCoords = new MotionEvent.PointerCoords[1];
        upPointerCoords[0] = new MotionEvent.PointerCoords();
@@ -129,7 +124,8 @@ public class MotionEventsHandlerTest extends SysuiTestCase {
        upPointerProperties2[0].id = 1;
        upPointerProperties2[0].toolType = MotionEvent.TOOL_TYPE_FINGER;
        MotionEvent up = MotionEvent.obtain(0, 2, MotionEvent.ACTION_UP, 1,
                upPointerProperties2, upPointerCoords, 0, 0, 1.0f, 1.0f, 0, 0, SOURCE_TOUCHPAD, 0);
                upPointerProperties2, upPointerCoords, 0, 0, 1.0f, 1.0f, 0, 0, SOURCE_MOUSE,
                0, 0, CLASSIFICATION_MULTI_FINGER_SWIPE);

        mMotionEventsHandler.onMotionEvent(down);
        mMotionEventsHandler.onMotionEvent(move1);