@Override InternalNode resolveLayout(Component component) { if (component.canResolve()) { return super.resolveLayout(component); } InternalNode node = ComponentsPools.acquireInternalNode(this); node.appendComponent(new TestComponent(component)); return node; }
private static List<Component> extractSubComponents(DiffNode root) { if (root == null) { return Collections.emptyList(); } final List<Component> output = new ArrayList<>(); if (root.getChildCount() == 0) { if (root.getComponent() != null && root.getComponent() instanceof TestComponent) { TestComponent testSubcomponent = (TestComponent) root.getComponent(); output.add(testSubcomponent.getWrappedComponent()); } return output; } for (DiffNode child : root.getChildren()) { output.addAll(extractSubComponents(child)); } return output; }
@Override public InternalNode newLayoutBuilder( Component component, @AttrRes int defStyleAttr, @StyleRes int defStyleRes) { if (component.canResolve()) { return super.newLayoutBuilder(component, defStyleAttr, defStyleRes); } final InternalNode node = ComponentsPools.acquireInternalNode(this); component.updateInternalChildState(this); node.appendComponent(new TestComponent(component)); return node; }