Loading core/java/android/view/AccessibilityInteractionController.java +14 −2 Original line number Diff line number Diff line Loading @@ -963,12 +963,24 @@ public final class AccessibilityInteractionController { } } private View getRootView() { /** * @hide */ @VisibleForTesting public View getRootView() { if (!isVisibleToAccessibilityService(mViewRootImpl.mView)) { return null; } if (Flags.ignoreUnimportantRoot()) { if (mViewRootImpl.mView == null || !mViewRootImpl.mView.includeForAccessibility()) { return null; } else { return mViewRootImpl.mView; } } else { return mViewRootImpl.mView; } } private void setAccessibilityFetchFlags(int flags) { mViewRootImpl.mAttachInfo.mAccessibilityFetchFlags = flags; Loading core/java/android/view/accessibility/flags/accessibility_flags.aconfig +7 −0 Original line number Diff line number Diff line Loading @@ -181,6 +181,13 @@ flag { bug: "302376158" } flag { name: "ignore_unimportant_root" namespace: "accessibility" description: "findViewByAccessibilityId will return null if the id matches the root but the root is unimportant." bug: "407099631" } flag { name: "indeterminate_range_info" namespace: "accessibility" Loading core/tests/coretests/src/android/view/AccessibilityInteractionControllerTest.java +21 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,9 @@ import android.app.UiAutomation; import android.graphics.Rect; import android.os.Process; import android.os.SystemClock; import android.platform.test.annotations.DisableFlags; import android.platform.test.annotations.EnableFlags; import android.platform.test.flag.junit.SetFlagsRule; import android.text.TextUtils; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityManager; Loading Loading @@ -64,6 +67,8 @@ public class AccessibilityInteractionControllerTest { @Rule public ActivityTestRule<AccessibilityTestActivity> mActivityRule = new ActivityTestRule<>( AccessibilityTestActivity.class, false, false); @Rule public SetFlagsRule mSetFlagsRule = new SetFlagsRule(); private AccessibilityInteractionController mAccessibilityInteractionController; private ViewRootImpl mViewRootImpl; Loading Loading @@ -153,6 +158,22 @@ public class AccessibilityInteractionControllerTest { vri.getWindowFlags(), Process.myUid(), vri.getSurfaceControl()); } @Test @EnableFlags(android.view.accessibility.Flags.FLAG_IGNORE_UNIMPORTANT_ROOT) public void getRootView_isUnimportant_returnsNull() { mViewRootImpl.getView().setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); assertThat(mAccessibilityInteractionController.getRootView()).isNull(); } @Test @DisableFlags(android.view.accessibility.Flags.FLAG_IGNORE_UNIMPORTANT_ROOT) public void getRootView_isUnimportant_returnsNotNull() { mViewRootImpl.getView().setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); assertThat(mAccessibilityInteractionController.getRootView()).isNotNull(); } private void launchActivity() { final Object waitObject = new Object(); final int[] location = new int[2]; Loading Loading
core/java/android/view/AccessibilityInteractionController.java +14 −2 Original line number Diff line number Diff line Loading @@ -963,12 +963,24 @@ public final class AccessibilityInteractionController { } } private View getRootView() { /** * @hide */ @VisibleForTesting public View getRootView() { if (!isVisibleToAccessibilityService(mViewRootImpl.mView)) { return null; } if (Flags.ignoreUnimportantRoot()) { if (mViewRootImpl.mView == null || !mViewRootImpl.mView.includeForAccessibility()) { return null; } else { return mViewRootImpl.mView; } } else { return mViewRootImpl.mView; } } private void setAccessibilityFetchFlags(int flags) { mViewRootImpl.mAttachInfo.mAccessibilityFetchFlags = flags; Loading
core/java/android/view/accessibility/flags/accessibility_flags.aconfig +7 −0 Original line number Diff line number Diff line Loading @@ -181,6 +181,13 @@ flag { bug: "302376158" } flag { name: "ignore_unimportant_root" namespace: "accessibility" description: "findViewByAccessibilityId will return null if the id matches the root but the root is unimportant." bug: "407099631" } flag { name: "indeterminate_range_info" namespace: "accessibility" Loading
core/tests/coretests/src/android/view/AccessibilityInteractionControllerTest.java +21 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,9 @@ import android.app.UiAutomation; import android.graphics.Rect; import android.os.Process; import android.os.SystemClock; import android.platform.test.annotations.DisableFlags; import android.platform.test.annotations.EnableFlags; import android.platform.test.flag.junit.SetFlagsRule; import android.text.TextUtils; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityManager; Loading Loading @@ -64,6 +67,8 @@ public class AccessibilityInteractionControllerTest { @Rule public ActivityTestRule<AccessibilityTestActivity> mActivityRule = new ActivityTestRule<>( AccessibilityTestActivity.class, false, false); @Rule public SetFlagsRule mSetFlagsRule = new SetFlagsRule(); private AccessibilityInteractionController mAccessibilityInteractionController; private ViewRootImpl mViewRootImpl; Loading Loading @@ -153,6 +158,22 @@ public class AccessibilityInteractionControllerTest { vri.getWindowFlags(), Process.myUid(), vri.getSurfaceControl()); } @Test @EnableFlags(android.view.accessibility.Flags.FLAG_IGNORE_UNIMPORTANT_ROOT) public void getRootView_isUnimportant_returnsNull() { mViewRootImpl.getView().setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); assertThat(mAccessibilityInteractionController.getRootView()).isNull(); } @Test @DisableFlags(android.view.accessibility.Flags.FLAG_IGNORE_UNIMPORTANT_ROOT) public void getRootView_isUnimportant_returnsNotNull() { mViewRootImpl.getView().setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); assertThat(mAccessibilityInteractionController.getRootView()).isNotNull(); } private void launchActivity() { final Object waitObject = new Object(); final int[] location = new int[2]; Loading