From 353cfeafc81bce2d11b8ad2f4bb04a565267f4ad Mon Sep 17 00:00:00 2001 From: Sara Valderrama Date: Tue, 19 Nov 2019 10:01:49 -0800 Subject: [PATCH] update accessibility hierarchy to treat lithoViews and LithoRecyclerViews as ViewGroups Summary: This will correctly show all view children instead of reverting to the non-ax default behavior. Fixes bug where recycler views showed no children. Reviewed By: jknoxville Differential Revision: D18574220 fbshipit-source-id: f22606fb582e0bfd1a171dc4497e1d1613e800d1 --- .../litho/LithoRecyclerViewDescriptor.java | 18 ++++++++++++++++++ .../plugins/litho/LithoViewDescriptor.java | 10 ++++++---- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/android/plugins/litho/src/main/java/com/facebook/flipper/plugins/litho/LithoRecyclerViewDescriptor.java b/android/plugins/litho/src/main/java/com/facebook/flipper/plugins/litho/LithoRecyclerViewDescriptor.java index c074d0508..bc1ddbadb 100644 --- a/android/plugins/litho/src/main/java/com/facebook/flipper/plugins/litho/LithoRecyclerViewDescriptor.java +++ b/android/plugins/litho/src/main/java/com/facebook/flipper/plugins/litho/LithoRecyclerViewDescriptor.java @@ -63,6 +63,12 @@ public class LithoRecyclerViewDescriptor extends NodeDescriptor> getData(LithoRecylerView node) throws Exception { final List> props = new ArrayList<>(); @@ -86,6 +98,12 @@ public class LithoRecyclerViewDescriptor extends NodeDescriptor> getAXData(LithoRecylerView node) throws Exception { + final NodeDescriptor descriptor = descriptorForClass(ViewGroup.class); + return descriptor.getAXData(node); + } + @Override public void setValue(LithoRecylerView node, String[] path, FlipperDynamic value) throws Exception { diff --git a/android/plugins/litho/src/main/java/com/facebook/flipper/plugins/litho/LithoViewDescriptor.java b/android/plugins/litho/src/main/java/com/facebook/flipper/plugins/litho/LithoViewDescriptor.java index 34b0de0e0..124c7f17e 100644 --- a/android/plugins/litho/src/main/java/com/facebook/flipper/plugins/litho/LithoViewDescriptor.java +++ b/android/plugins/litho/src/main/java/com/facebook/flipper/plugins/litho/LithoViewDescriptor.java @@ -58,8 +58,9 @@ public class LithoViewDescriptor extends NodeDescriptor { } @Override - public int getAXChildCount(LithoView node) { - return node.getChildCount(); + public int getAXChildCount(LithoView node) throws Exception { + final NodeDescriptor descriptor = descriptorForClass(ViewGroup.class); + return descriptor.getAXChildCount(node); } @Override @@ -68,8 +69,9 @@ public class LithoViewDescriptor extends NodeDescriptor { } @Override - public @Nullable Object getAXChildAt(LithoView node, int index) { - return node.getChildAt(index); + public @Nullable Object getAXChildAt(LithoView node, int index) throws Exception { + final NodeDescriptor descriptor = descriptorForClass(ViewGroup.class); + return descriptor.getChildAt(node, index); } @Override