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

Commit 6b1d5a4f authored by Svetoslav's avatar Svetoslav Committed by Android (Google) Code Review
Browse files

Merge "Notification for changed subtree in accessibility mode not fired properly."

parents 6a7e5c28 00dbe81f
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -7024,7 +7024,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
     *
     * @hide
     */
    private void notifySubtreeAccessibilityStateChangedIfNeeded() {
    public void notifySubtreeAccessibilityStateChangedIfNeeded() {
        if (!AccessibilityManager.getInstance(mContext).isEnabled()) {
            return;
        }
@@ -18867,6 +18867,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
            final long minEventIntevalMillis =
                    ViewConfiguration.getSendRecurringAccessibilityEventsInterval();
            if (timeSinceLastMillis >= minEventIntevalMillis) {
                removeCallbacks(this);
                run();
            } else {
                postDelayed(this, minEventIntevalMillis - timeSinceLastMillis);
+2 −2
Original line number Diff line number Diff line
@@ -3595,7 +3595,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
        }

        if (child.isImportantForAccessibility() && child.getVisibility() != View.GONE) {
            childAccessibilityStateChanged(child);
            notifySubtreeAccessibilityStateChangedIfNeeded();
        }
    }

@@ -3838,7 +3838,7 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager
        onViewRemoved(view);

        if (view.isImportantForAccessibility() && view.getVisibility() != View.GONE) {
            childAccessibilityStateChanged(view);
            notifySubtreeAccessibilityStateChangedIfNeeded();
        }
    }

+5 −6
Original line number Diff line number Diff line
@@ -6398,12 +6398,10 @@ public final class ViewRootImpl implements ViewParent,

        public void run() {
            mLastEventTimeMillis = SystemClock.uptimeMillis();
            if (AccessibilityManager.getInstance(mContext).isEnabled()) {
            AccessibilityEvent event = AccessibilityEvent.obtain();
            event.setEventType(AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED);
            event.setContentChangeType(AccessibilityEvent.CONTENT_CHANGE_TYPE_SUBTREE);
            mSource.sendAccessibilityEventUnchecked(event);
            }
            mSource.resetSubtreeAccessibilityStateChanged();
            mSource = null;
        }
@@ -6418,6 +6416,7 @@ public final class ViewRootImpl implements ViewParent,
            final long minEventIntevalMillis =
                    ViewConfiguration.getSendRecurringAccessibilityEventsInterval();
            if (timeSinceLastMillis >= minEventIntevalMillis) {
                mSource.removeCallbacks(this);
                run();
            } else {
                mSource.postDelayed(this, minEventIntevalMillis - timeSinceLastMillis);
+1 −1
Original line number Diff line number Diff line
@@ -1033,7 +1033,7 @@ public abstract class AdapterView<T extends Adapter> extends ViewGroup {
            checkSelectionChanged();
        }

        childAccessibilityStateChanged(this);
        notifySubtreeAccessibilityStateChangedIfNeeded();
    }

    void checkSelectionChanged() {