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

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

Merge "AccessibilityRequestPreparer shouldn't crash if the view is released...

Merge "AccessibilityRequestPreparer shouldn't crash if the view is released before the preparer is added or removed."
parents 8f8deb20 1c88bcee
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -848,7 +848,7 @@ public final class AccessibilityManager {
        if (mRequestPreparerLists == null) {
            mRequestPreparerLists = new SparseArray<>(1);
        }
        int id = preparer.getView().getAccessibilityViewId();
        int id = preparer.getAccessibilityViewId();
        List<AccessibilityRequestPreparer> requestPreparerList = mRequestPreparerLists.get(id);
        if (requestPreparerList == null) {
            requestPreparerList = new ArrayList<>(1);
@@ -864,7 +864,7 @@ public final class AccessibilityManager {
        if (mRequestPreparerLists == null) {
            return;
        }
        int viewId = preparer.getView().getAccessibilityViewId();
        int viewId = preparer.getAccessibilityViewId();
        List<AccessibilityRequestPreparer> requestPreparerList = mRequestPreparerLists.get(viewId);
        if (requestPreparerList != null) {
            requestPreparerList.remove(preparer);
+6 −0
Original line number Diff line number Diff line
@@ -51,6 +51,7 @@ public abstract class AccessibilityRequestPreparer {
    public @interface RequestTypes {}

    private final WeakReference<View> mViewRef;
    private final int mAccessibilityViewId;
    private final int mRequestTypes;

    /**
@@ -68,6 +69,7 @@ public abstract class AccessibilityRequestPreparer {
            throw new IllegalStateException("View must be attached to a window");
        }
        mViewRef = new WeakReference<>(view);
        mAccessibilityViewId = view.getAccessibilityViewId();
        mRequestTypes = requestTypes;
        view.addOnAttachStateChangeListener(new ViewAttachStateListener());
    }
@@ -118,4 +120,8 @@ public abstract class AccessibilityRequestPreparer {
            v.removeOnAttachStateChangeListener(this);
        }
    }

    int getAccessibilityViewId() {
        return mAccessibilityViewId;
    }
}