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

Commit 156618c9 authored by Phil Weaver's avatar Phil Weaver Committed by Android (Google) Code Review
Browse files

Merge "Clean up accessibility gestures."

parents 94999822 03465fb8
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -624,8 +624,7 @@ public abstract class AccessibilityService extends Service {
                gesture, 100);
        try {
            synchronized (mLock) {
                connection.sendMotionEvents(++mGestureStatusCallbackSequence,
                        new ParceledListSlice<>(events));
                mGestureStatusCallbackSequence++;
                if (callback != null) {
                    if (mGestureStatusCallbackInfos == null) {
                        mGestureStatusCallbackInfos = new SparseArray<>();
@@ -634,6 +633,8 @@ public abstract class AccessibilityService extends Service {
                            callback, handler);
                    mGestureStatusCallbackInfos.put(mGestureStatusCallbackSequence, callbackInfo);
                }
                connection.sendMotionEvents(mGestureStatusCallbackSequence,
                        new ParceledListSlice<>(events));
            }
        } catch (RemoteException re) {
            throw new RuntimeException(re);
+0 −4
Original line number Diff line number Diff line
@@ -200,10 +200,6 @@ class AccessibilityInputFilter extends InputFilter implements EventStreamTransfo
        }
    }

    public MotionEventInjector getMotionEventInjector() {
        return mMotionEventInjector;
    }

    /**
     * Gets current event stream state associated with an input event.
     * @return The event stream state that should be used for the event. Null if the event should
+24 −4
Original line number Diff line number Diff line
@@ -128,6 +128,10 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub {

    private static final int WAIT_WINDOWS_TIMEOUT_MILLIS = 5000;

    // TODO: Restructure service initialization so services aren't connected before all of
    //       their capabilities are ready.
    private static final int WAIT_MOTION_INJECTOR_TIMEOUT_MILLIS = 1000;

    private static final String FUNCTION_REGISTER_UI_TEST_AUTOMATION_SERVICE =
        "registerUiTestAutomationService";

@@ -793,6 +797,8 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub {
    void setMotionEventInjector(MotionEventInjector motionEventInjector) {
        synchronized (mLock) {
            mMotionEventInjector = motionEventInjector;
            // We may be waiting on this object being set
            mLock.notifyAll();
        }
    }

@@ -2654,10 +2660,24 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub {
        @Override
        public void sendMotionEvents(int sequence, ParceledListSlice events) {
            synchronized (mLock) {
                if (mSecurityPolicy.canPerformGestures(this) && (mMotionEventInjector != null)) {
                if (mSecurityPolicy.canPerformGestures(this)) {
                    final long endMillis =
                            SystemClock.uptimeMillis() + WAIT_MOTION_INJECTOR_TIMEOUT_MILLIS;
                    while ((mMotionEventInjector == null)
                            && (SystemClock.uptimeMillis() < endMillis)) {
                        try {
                            mLock.wait(endMillis - SystemClock.uptimeMillis());
                        } catch (InterruptedException ie) {
                            /* ignore */
                        }
                    }
                    if (mMotionEventInjector != null) {
                        mMotionEventInjector.injectEvents((List<MotionEvent>) events.getList(),
                                mServiceInterface, sequence);
                        return;
                    } else {
                        Slog.e(LOG_TAG, "MotionEventInjector installation timed out");
                    }
                }
            }
            try {