/** * Gets a node if it matches the filter criteria for the given id. */ public static AssistStructure.ViewNode FindNodeByFilter([NonNull] AssistStructure.ViewNode node, [NonNull] object id, [NonNull] NodeFilter filter) { if (filter.matches(node, id)) { return(node); } int childrenSize = node.ChildCount; if (childrenSize > 0) { for (int i = 0; i < childrenSize; i++) { AssistStructure.ViewNode found = FindNodeByFilter(node.GetChildAt(i), id, filter); if (found != null) { return(found); } } } return(null); }