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

Commit abe61c2a authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add deltaX/Y to a11y scroll events"

parents 07ea63bf cb45ddfe
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -47622,6 +47622,8 @@ package android.view.accessibility {
    method public int getMaxScrollY();
    method public android.os.Parcelable getParcelableData();
    method public int getRemovedCount();
    method public int getScrollDeltaX();
    method public int getScrollDeltaY();
    method public int getScrollX();
    method public int getScrollY();
    method public android.view.accessibility.AccessibilityNodeInfo getSource();
@@ -47651,6 +47653,8 @@ package android.view.accessibility {
    method public void setParcelableData(android.os.Parcelable);
    method public void setPassword(boolean);
    method public void setRemovedCount(int);
    method public void setScrollDeltaX(int);
    method public void setScrollDeltaY(int);
    method public void setScrollX(int);
    method public void setScrollY(int);
    method public void setScrollable(boolean);
+4 −0
Original line number Diff line number Diff line
@@ -51230,6 +51230,8 @@ package android.view.accessibility {
    method public int getMaxScrollY();
    method public android.os.Parcelable getParcelableData();
    method public int getRemovedCount();
    method public int getScrollDeltaX();
    method public int getScrollDeltaY();
    method public int getScrollX();
    method public int getScrollY();
    method public android.view.accessibility.AccessibilityNodeInfo getSource();
@@ -51259,6 +51261,8 @@ package android.view.accessibility {
    method public void setParcelableData(android.os.Parcelable);
    method public void setPassword(boolean);
    method public void setRemovedCount(int);
    method public void setScrollDeltaX(int);
    method public void setScrollDeltaY(int);
    method public void setScrollX(int);
    method public void setScrollY(int);
    method public void setScrollable(boolean);
+4 −0
Original line number Diff line number Diff line
@@ -48082,6 +48082,8 @@ package android.view.accessibility {
    method public int getMaxScrollY();
    method public android.os.Parcelable getParcelableData();
    method public int getRemovedCount();
    method public int getScrollDeltaX();
    method public int getScrollDeltaY();
    method public int getScrollX();
    method public int getScrollY();
    method public android.view.accessibility.AccessibilityNodeInfo getSource();
@@ -48111,6 +48113,8 @@ package android.view.accessibility {
    method public void setParcelableData(android.os.Parcelable);
    method public void setPassword(boolean);
    method public void setRemovedCount(int);
    method public void setScrollDeltaX(int);
    method public void setScrollDeltaY(int);
    method public void setScrollX(int);
    method public void setScrollY(int);
    method public void setScrollable(boolean);
+39 −20
Original line number Diff line number Diff line
@@ -13160,17 +13160,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
        removeTapCallback();
    }
    /**
     * Remove the pending callback for sending a
     * {@link AccessibilityEvent#TYPE_VIEW_SCROLLED} accessibility event.
     */
    private void removeSendViewScrolledAccessibilityEventCallback() {
        if (mSendViewScrolledAccessibilityEvent != null) {
            removeCallbacks(mSendViewScrolledAccessibilityEvent);
            mSendViewScrolledAccessibilityEvent.mIsPending = false;
        }
    }
    /**
     * Sets the TouchDelegate for this View.
     */
@@ -13468,7 +13457,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
        notifySubtreeAccessibilityStateChangedIfNeeded();
        if (AccessibilityManager.getInstance(mContext).isEnabled()) {
            postSendViewScrolledAccessibilityEventCallback();
            postSendViewScrolledAccessibilityEventCallback(l - oldl, t - oldt);
        }
        mBackgroundSizeChanged = true;
@@ -15998,15 +15987,11 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
     * This event is sent at most once every
     * {@link ViewConfiguration#getSendRecurringAccessibilityEventsInterval()}.
     */
    private void postSendViewScrolledAccessibilityEventCallback() {
    private void postSendViewScrolledAccessibilityEventCallback(int dx, int dy) {
        if (mSendViewScrolledAccessibilityEvent == null) {
            mSendViewScrolledAccessibilityEvent = new SendViewScrolledAccessibilityEvent();
        }
        if (!mSendViewScrolledAccessibilityEvent.mIsPending) {
            mSendViewScrolledAccessibilityEvent.mIsPending = true;
            postDelayed(mSendViewScrolledAccessibilityEvent,
                    ViewConfiguration.getSendRecurringAccessibilityEventsInterval());
        }
        mSendViewScrolledAccessibilityEvent.post(dx, dy);
    }
    /**
@@ -17264,7 +17249,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
        removeUnsetPressCallback();
        removeLongPressCallback();
        removePerformClickCallback();
        removeSendViewScrolledAccessibilityEventCallback();
        cancel(mSendViewScrolledAccessibilityEvent);
        stopNestedScroll();
        // Anything that started animating right before detach should already
@@ -25705,13 +25690,47 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
     */
    private class SendViewScrolledAccessibilityEvent implements Runnable {
        public volatile boolean mIsPending;
        public int mDeltaX;
        public int mDeltaY;
        public void post(int dx, int dy) {
            mDeltaX += dx;
            mDeltaY += dy;
            if (!mIsPending) {
                mIsPending = true;
                postDelayed(this, ViewConfiguration.getSendRecurringAccessibilityEventsInterval());
            }
        }
        @Override
        public void run() {
            sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_SCROLLED);
            if (AccessibilityManager.getInstance(mContext).isEnabled()) {
                AccessibilityEvent event = AccessibilityEvent.obtain(
                        AccessibilityEvent.TYPE_VIEW_SCROLLED);
                event.setScrollDeltaX(mDeltaX);
                event.setScrollDeltaY(mDeltaY);
                sendAccessibilityEventUnchecked(event);
            }
            reset();
        }
        private void reset() {
            mIsPending = false;
            mDeltaX = 0;
            mDeltaY = 0;
        }
    }
    /**
     * Remove the pending callback for sending a
     * {@link AccessibilityEvent#TYPE_VIEW_SCROLLED} accessibility event.
     */
    private void cancel(@Nullable SendViewScrolledAccessibilityEvent callback) {
        if (callback == null || !callback.mIsPending) return;
        removeCallbacks(callback);
        callback.reset();
    }
    /**
     * <p>
     * This class represents a delegate that can be registered in a {@link View}
+4 −0
Original line number Diff line number Diff line
@@ -1118,6 +1118,8 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par
        record.mToIndex = parcel.readInt();
        record.mScrollX = parcel.readInt();
        record.mScrollY =  parcel.readInt();
        record.mScrollDeltaX =  parcel.readInt();
        record.mScrollDeltaY =  parcel.readInt();
        record.mMaxScrollX = parcel.readInt();
        record.mMaxScrollY =  parcel.readInt();
        record.mAddedCount = parcel.readInt();
@@ -1170,6 +1172,8 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par
        parcel.writeInt(record.mToIndex);
        parcel.writeInt(record.mScrollX);
        parcel.writeInt(record.mScrollY);
        parcel.writeInt(record.mScrollDeltaX);
        parcel.writeInt(record.mScrollDeltaY);
        parcel.writeInt(record.mMaxScrollX);
        parcel.writeInt(record.mMaxScrollY);
        parcel.writeInt(record.mAddedCount);
Loading