AccessibilityNodeInfoCompat.java revision 956b013dfda37760b0232ed6d448900a546d2903
19648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov/*
29648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Copyright (C) 2011 The Android Open Source Project
39648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov *
49648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Licensed under the Apache License, Version 2.0 (the "License");
59648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * you may not use this file except in compliance with the License.
69648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * You may obtain a copy of the License at
79648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov *
89648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov *      http://www.apache.org/licenses/LICENSE-2.0
99648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov *
109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Unless required by applicable law or agreed to in writing, software
119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * distributed under the License is distributed on an "AS IS" BASIS,
129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * See the License for the specific language governing permissions and
149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * limitations under the License.
159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */
169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovpackage android.support.v4.view.accessibility;
189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovimport android.graphics.Rect;
209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovimport android.os.Build;
219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovimport android.view.View;
229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovimport java.util.ArrayList;
24f9c2277244722eca88c784b9cfdcc78df7f94781Svetoslav Ganovimport java.util.Collections;
259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovimport java.util.List;
269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov/**
280574ca37da4619afe4e26753f5a1b4de314b6565Svetoslav Ganov * Helper for accessing {@link android.view.accessibility.AccessibilityNodeInfo}
290574ca37da4619afe4e26753f5a1b4de314b6565Svetoslav Ganov * introduced after API level 4 in a backwards compatible fashion.
309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */
319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovpublic class AccessibilityNodeInfoCompat {
329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    static interface AccessibilityNodeInfoImpl {
349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public Object obtain();
359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public Object obtain(View source);
369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public Object obtain(Object info);
379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setSource(Object info, View source);
389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public int getWindowId(Object info);
399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public int getChildCount(Object info);
40c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov        public AccessibilityNodeInfoCompat getChild(Object info, int index);
419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void addChild(Object info, View child);
429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public int getActions(Object info);
439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void addAction(Object info, int action);
449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean performAction(Object info, int action);
459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public List<Object> findAccessibilityNodeInfosByText(Object info, String text);
46c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov        public AccessibilityNodeInfoCompat getParent(Object info);
479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setParent(Object info, View parent);
489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void getBoundsInParent(Object info, Rect outBounds);
499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setBoundsInParent(Object info, Rect bounds);
509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void getBoundsInScreen(Object info, Rect outBounds);
519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setBoundsInScreen(Object info, Rect bounds);
529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isCheckable(Object info);
539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setCheckable(Object info, boolean checkable);
549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isChecked(Object info);
559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setChecked(Object info, boolean checked);
569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isFocusable(Object info);
579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setFocusable(Object info, boolean focusable);
589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isFocused(Object info);
599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setFocused(Object info, boolean focused);
609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isSelected(Object info);
619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setSelected(Object info, boolean selected);
629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isClickable(Object info);
639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setClickable(Object info, boolean clickable);
649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isLongClickable(Object info);
659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setLongClickable(Object info, boolean longClickable);
669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isEnabled(Object info);
679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setEnabled(Object info, boolean enabled);
689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isPassword(Object info);
699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setPassword(Object info, boolean password);
709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isScrollable(Object info);
719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setScrollable(Object info, boolean scrollable);
729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public CharSequence getPackageName(Object info);
739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setPackageName(Object info, CharSequence packageName);
749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public CharSequence getClassName(Object info);
759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setClassName(Object info, CharSequence className);
769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public CharSequence getText(Object info);
779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setText(Object info, CharSequence text);
789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public CharSequence getContentDescription(Object info);
799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setContentDescription(Object info, CharSequence contentDescription);
809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void recycle(Object info);
819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    static class AccessibilityNodeInfoStubImpl implements AccessibilityNodeInfoImpl {
849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public Object obtain() {
859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return null;
869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public Object obtain(View source) {
899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return null;
909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public Object obtain(Object info) {
939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return null;
949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void addAction(Object info, int action) {
979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void addChild(Object info, View child) {
1019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public List<Object> findAccessibilityNodeInfosByText(Object info, String text) {
105f9c2277244722eca88c784b9cfdcc78df7f94781Svetoslav Ganov            return Collections.emptyList();
1069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public int getActions(Object info) {
1099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return 0;
1109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void getBoundsInParent(Object info, Rect outBounds) {
1139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void getBoundsInScreen(Object info, Rect outBounds) {
1179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
120c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov        public AccessibilityNodeInfoCompat getChild(Object info, int index) {
1219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return null;
1229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public int getChildCount(Object info) {
1259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return 0;
1269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public CharSequence getClassName(Object info) {
1299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return null;
1309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public CharSequence getContentDescription(Object info) {
1339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return null;
1349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public CharSequence getPackageName(Object info) {
1379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return null;
1389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public AccessibilityNodeInfoCompat getParent(Object info) {
1419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return null;
1429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public CharSequence getText(Object info) {
1459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return null;
1469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public int getWindowId(Object info) {
1499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return 0;
1509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isCheckable(Object info) {
1539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
1549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isChecked(Object info) {
1579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
1589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isClickable(Object info) {
1619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
1629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isEnabled(Object info) {
1659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
1669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isFocusable(Object info) {
1699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
1709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isFocused(Object info) {
1739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
1749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isLongClickable(Object info) {
1779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
1789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isPassword(Object info) {
1819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
1829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isScrollable(Object info) {
1859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
1869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isSelected(Object info) {
1899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
1909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean performAction(Object info, int action) {
1939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
1949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setBoundsInParent(Object info, Rect bounds) {
1979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setBoundsInScreen(Object info, Rect bounds) {
2019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setCheckable(Object info, boolean checkable) {
2059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setChecked(Object info, boolean checked) {
2099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setClassName(Object info, CharSequence className) {
2139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setClickable(Object info, boolean clickable) {
2179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setContentDescription(Object info, CharSequence contentDescription) {
2219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setEnabled(Object info, boolean enabled) {
2259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setFocusable(Object info, boolean focusable) {
2299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setFocused(Object info, boolean focused) {
2339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setLongClickable(Object info, boolean longClickable) {
2379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setPackageName(Object info, CharSequence packageName) {
2419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setParent(Object info, View parent) {
2459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setPassword(Object info, boolean password) {
2499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setScrollable(Object info, boolean scrollable) {
2539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setSelected(Object info, boolean selected) {
2579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setSource(Object info, View source) {
2619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setText(Object info, CharSequence text) {
2659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void recycle(Object info) {
2699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
2729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    static class AccessibilityNodeInfoIcsImpl extends AccessibilityNodeInfoStubImpl {
2749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
2759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public Object obtain() {
2769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.obtain();
2779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
2809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public Object obtain(View source) {
2819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.obtain(source);
2829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
2859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public Object obtain(Object info) {
2869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.obtain(info);
2879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
2909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void addAction(Object info, int action) {
2919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.addAction(info, action);
2929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
2959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void addChild(Object info, View child) {
2969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.addChild(info, child);
2979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
3009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public List<Object> findAccessibilityNodeInfosByText(Object info, String text) {
3019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.findAccessibilityNodeInfosByText(info, text);
3029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
3039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
3049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
3059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public int getActions(Object info) {
3069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.getActions(info);
3079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
3089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
3099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
3109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void getBoundsInParent(Object info, Rect outBounds) {
3119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.getBoundsInParent(info, outBounds);
3129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
3139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
3149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
3159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void getBoundsInScreen(Object info, Rect outBounds) {
3169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.getBoundsInScreen(info, outBounds);
3179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
3189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
3199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
3209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public AccessibilityNodeInfoCompat getChild(Object info, int index) {
321c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov            return AccessibilityNodeInfoCompat.wrapNonNullInstance(
322c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov                    AccessibilityNodeInfoCompatIcs.getChild(info, index));
3239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
3249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
3259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
3269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public int getChildCount(Object info) {
3279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.getChildCount(info);
3289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
3299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
3309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
3319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public CharSequence getClassName(Object info) {
3329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.getClassName(info);
3339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
3349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
3359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
3369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public CharSequence getContentDescription(Object info) {
3379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.getContentDescription(info);
3389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
3399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
3409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
3419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public CharSequence getPackageName(Object info) {
3429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.getPackageName(info);
3439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
3449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
3459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
3469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public AccessibilityNodeInfoCompat getParent(Object info) {
347c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov            return AccessibilityNodeInfoCompat.wrapNonNullInstance(
348c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov                    AccessibilityNodeInfoCompatIcs.getParent(info));
3499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
3509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
3519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
3529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public CharSequence getText(Object info) {
3539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.getText(info);
3549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
3559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
3569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
3579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public int getWindowId(Object info) {
3589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.getWindowId(info);
3599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
3609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
3619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
3629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isCheckable(Object info) {
3639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.isCheckable(info);
3649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
3659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
3669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
3679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isChecked(Object info) {
3689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.isChecked(info);
3699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
3709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
3719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
3729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isClickable(Object info) {
3739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.isClickable(info);
3749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
3759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
3769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
3779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isEnabled(Object info) {
3789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.isEnabled(info);
3799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
3809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
3819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
3829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isFocusable(Object info) {
3839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.isFocusable(info);
3849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
3859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
3869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
3879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isFocused(Object info) {
3889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.isFocused(info);
3899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
3909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
3919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
3929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isLongClickable(Object info) {
3939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.isLongClickable(info);
3949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
3959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
3969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
3979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isPassword(Object info) {
3989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.isPassword(info);
3999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isScrollable(Object info) {
4039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.isScrollable(info);
4049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isSelected(Object info) {
4089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.isSelected(info);
4099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean performAction(Object info, int action) {
4139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.performAction(info, action);
4149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setBoundsInParent(Object info, Rect bounds) {
4189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setBoundsInParent(info, bounds);
4199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setBoundsInScreen(Object info, Rect bounds) {
4239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setBoundsInScreen(info, bounds);
4249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setCheckable(Object info, boolean checkable) {
4289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setCheckable(info, checkable);
4299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setChecked(Object info, boolean checked) {
4339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setChecked(info, checked);
4349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setClassName(Object info, CharSequence className) {
4389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setClassName(info, className);
4399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setClickable(Object info, boolean clickable) {
4439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setClickable(info, clickable);
4449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setContentDescription(Object info, CharSequence contentDescription) {
4489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setContentDescription(info, contentDescription);
4499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setEnabled(Object info, boolean enabled) {
4539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setEnabled(info, enabled);
4549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setFocusable(Object info, boolean focusable) {
4589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setFocusable(info, focusable);
4599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setFocused(Object info, boolean focused) {
4639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setFocused(info, focused);
4649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setLongClickable(Object info, boolean longClickable) {
4689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setLongClickable(info, longClickable);
4699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setPackageName(Object info, CharSequence packageName) {
4739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setPackageName(info, packageName);
4749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setParent(Object info, View parent) {
4789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setParent(info, parent);
4799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setPassword(Object info, boolean password) {
4839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setPassword(info, password);
4849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setScrollable(Object info, boolean scrollable) {
4889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setScrollable(info, scrollable);
4899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setSelected(Object info, boolean selected) {
4939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setSelected(info, selected);
4949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setSource(Object info, View source) {
4989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setSource(info, source);
4999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
5009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
5019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
5029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setText(Object info, CharSequence text) {
5039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setText(info, text);
5049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
5059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
5069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
5079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void recycle(Object info) {
5089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.recycle(info);
5099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
5109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
5119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
5129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    static {
5139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        if (Build.VERSION.SDK_INT >= 14) { // ICS
5149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            IMPL = new AccessibilityNodeInfoIcsImpl();
5159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        } else {
5169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            IMPL = new AccessibilityNodeInfoStubImpl();
5179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
5189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
5199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
5209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    private static final AccessibilityNodeInfoImpl IMPL;
5219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
5229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    private final Object mInfo;
5239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
5249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    // Actions.
5259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
5269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
5279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Action that focuses the node.
5289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
5299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static final int ACTION_FOCUS = 0x00000001;
5309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
5319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
5329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Action that unfocuses the node.
5339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
5349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static final int ACTION_CLEAR_FOCUS = 0x00000002;
5359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
5369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
5379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Action that selects the node.
5389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
5399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static final int ACTION_SELECT = 0x00000004;
5409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
5419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
5429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Action that unselects the node.
5439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
5449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static final int ACTION_CLEAR_SELECTION = 0x00000008;
5459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
546c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov    /**
547c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov     * Creates a wrapper for info implementation.
548c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov     *
549c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov     * @param object The info to wrap.
550c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov     * @return A wrapper for if the object is not null, null otherwise.
551c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov     */
552c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov    static AccessibilityNodeInfoCompat wrapNonNullInstance(Object object) {
553c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov        if (object != null) {
554c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov            return new AccessibilityNodeInfoCompat(object);
555c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov        }
556c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov        return null;
557c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov    }
558c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov
559956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov    /**
560956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov     * Creates a new instance wrapping an
561956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov     * {@link android.view.accessibility.AccessibilityNodeInfo}.
562956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov     *
563956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov     * @param info The info.
5649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
5659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public AccessibilityNodeInfoCompat(Object info) {
5669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        mInfo = info;
5679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
5689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
5699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
570956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov     * @return The wrapped {@link android.view.accessibility.AccessibilityNodeInfo}.
5719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
572956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov    public Object getInfo() {
5739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return mInfo;
5749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
5759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
5769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
5779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Returns a cached instance if such is available otherwise a new one and
5789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * sets the source.
5799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
5809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return An instance.
5819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @see #setSource(View)
5829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
5839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static AccessibilityNodeInfoCompat obtain(View source) {
5849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return new AccessibilityNodeInfoCompat(IMPL.obtain(source));
5859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
5869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
5879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
5889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Returns a cached instance if such is available otherwise a new one.
5899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
5909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return An instance.
5919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
5929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static AccessibilityNodeInfoCompat obtain() {
5939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return new AccessibilityNodeInfoCompat(IMPL.obtain());
5949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
5959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
5969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
5979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Returns a cached instance if such is available or a new one is create.
5989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * The returned instance is initialized from the given <code>info</code>.
5999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
6009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param info The other info.
6019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return An instance.
6029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
6039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static AccessibilityNodeInfoCompat obtain(AccessibilityNodeInfoCompat info) {
6049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return new AccessibilityNodeInfoCompat(IMPL.obtain(info.mInfo));
6059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
6069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
6079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
6089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets the source.
6099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
6109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param source The info source.
6119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
6129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setSource(View source) {
6139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setSource(mInfo, source);
6149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
6159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
6169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
6179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets the id of the window from which the info comes from.
6189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
6199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return The window id.
6209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
6219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public int getWindowId() {
6229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.getWindowId(mInfo);
6239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
6249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
6259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
6269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets the number of children.
6279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
6289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return The child count.
6299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
6309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public int getChildCount() {
6319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.getChildCount(mInfo);
6329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
6339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
6349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
6359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Get the child at given index.
6369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
6379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> It is a client responsibility to recycle the
6389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * received info by calling {@link AccessibilityNodeInfoCompat#recycle()} to
6399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * avoid creating of multiple instances.
6409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
6419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
6429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param index The child index.
6439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return The child node.
6449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called outside of an
6459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *             AccessibilityService.
6469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
6479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public AccessibilityNodeInfoCompat getChild(int index) {
648c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov        return IMPL.getChild(mInfo, index);
6499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
6509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
6519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
6529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Adds a child.
6539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
6549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
6559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
6569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
6579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
6589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
6599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param child The child.
6609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
6619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
6629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void addChild(View child) {
6639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.addChild(mInfo, child);
6649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
6659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
6669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
6679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets the actions that can be performed on the node.
6689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
6699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return The bit mask of with actions.
6709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @see android.view.accessibility.AccessibilityNodeInfo#ACTION_FOCUS
6719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @see android.view.accessibility.AccessibilityNodeInfo#ACTION_CLEAR_FOCUS
6729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @see android.view.accessibility.AccessibilityNodeInfo#ACTION_SELECT
6739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @see android.view.accessibility.AccessibilityNodeInfo#ACTION_CLEAR_SELECTION
6749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
6759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public int getActions() {
6769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.getActions(mInfo);
6779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
6789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
6799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
6809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Adds an action that can be performed on the node.
6819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
6829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
6839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
6849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
6859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
6869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
6879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param action The action.
6889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
6899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
6909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void addAction(int action) {
6919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.addAction(mInfo, action);
6929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
6939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
6949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
6959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Performs an action on the node.
6969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
6979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> An action can be performed only if the request is
6989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made from an {@link android.accessibilityservice.AccessibilityService}.
6999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
7009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
7019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param action The action to perform.
7029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return True if the action was performed.
7039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called outside of an
7049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *             AccessibilityService.
7059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
7069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean performAction(int action) {
7079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.performAction(mInfo, action);
7089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
7099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
7109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
7119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Finds {@link android.view.accessibility.AccessibilityNodeInfo}s by text. The match
7129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * is case insensitive containment. The search is relative to this info i.e. this
7139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * info is the root of the traversed tree.
7149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
7159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> It is a client responsibility to recycle the
7169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * received info by calling {@link android.view.accessibility.AccessibilityNodeInfo#recycle()}
7179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * to avoid creating of multiple instances.
7189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
7199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
7209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param text The searched text.
7219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return A list of node info.
7229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
7239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public List<AccessibilityNodeInfoCompat> findAccessibilityNodeInfosByText(String text) {
7249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        List<AccessibilityNodeInfoCompat> result = new ArrayList<AccessibilityNodeInfoCompat>();
7259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        List<Object> infos = IMPL.findAccessibilityNodeInfosByText(mInfo, text);
7269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        final int infoCount = infos.size();
7279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        for (int i = 0; i < infoCount; i++) {
7289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            Object info = infos.get(i);
7299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            result.add(new AccessibilityNodeInfoCompat(info));
7309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
7319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return result;
7329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
7339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
7349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
7359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets the parent.
7369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
7379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> It is a client responsibility to recycle the
7389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * received info by calling {@link android.view.accessibility.AccessibilityNodeInfo#recycle()}
7399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * to avoid creating of multiple instances.
7409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
7419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
7429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return The parent.
7439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
7449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public AccessibilityNodeInfoCompat getParent() {
745c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov        return IMPL.getParent(mInfo);
7469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
7479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
7489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
7499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets the parent.
7509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
7519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
7529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
7539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
7549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
7559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
7569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param parent The parent.
7579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
7589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
7599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setParent(View parent) {
7609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setParent(mInfo, parent);
7619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
7629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
7639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
7649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets the node bounds in parent coordinates.
7659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
7669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param outBounds The output node bounds.
7679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
7689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void getBoundsInParent(Rect outBounds) {
7699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.getBoundsInParent(mInfo, outBounds);
7709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
7719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
7729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
7739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets the node bounds in parent coordinates.
7749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
7759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
7769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
7779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
7789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
7799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
7809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param bounds The node bounds.
7819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *@throws IllegalStateException If called from an AccessibilityService.
7829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
7839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setBoundsInParent(Rect bounds) {
7849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setBoundsInParent(mInfo, bounds);
7859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
7869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
7879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
7889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets the node bounds in screen coordinates.
7899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
7909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param outBounds The output node bounds.
7919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
7929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void getBoundsInScreen(Rect outBounds) {
7939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.getBoundsInScreen(mInfo, outBounds);
7949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
7959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
7969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
7979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets the node bounds in screen coordinates.
7989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
7999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
8009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
8019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
8029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
8039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
8049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param bounds The node bounds.
8059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
8069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
8079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setBoundsInScreen(Rect bounds) {
8089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setBoundsInParent(mInfo, bounds);
8099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
8109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
8119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
8129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets whether this node is checkable.
8139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
8149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return True if the node is checkable.
8159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
8169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean isCheckable() {
8179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.isCheckable(mInfo);
8189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
8199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
8209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
8219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets whether this node is checkable.
8229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
8239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
8249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
8259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
8269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
8279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
8289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param checkable True if the node is checkable.
8299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
8309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
8319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setCheckable(boolean checkable) {
8329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setCheckable(mInfo, checkable);
8339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
8349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
8359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
8369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets whether this node is checked.
8379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
8389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return True if the node is checked.
8399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
8409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean isChecked() {
8419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.isChecked(mInfo);
8429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
8439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
8449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
8459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets whether this node is checked.
8469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
8479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
8489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
8499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
8509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
8519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
8529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param checked True if the node is checked.
8539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
8549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
8559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setChecked(boolean checked) {
8569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setChecked(mInfo, checked);
8579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
8589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
8599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
8609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets whether this node is focusable.
8619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
8629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return True if the node is focusable.
8639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
8649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean isFocusable() {
8659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.isFocusable(mInfo);
8669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
8679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
8689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
8699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets whether this node is focusable.
8709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
8719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
8729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
8739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
8749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
8759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
8769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param focusable True if the node is focusable.
8779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
8789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
8799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setFocusable(boolean focusable) {
8809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setFocusable(mInfo, focusable);
8819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
8829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
8839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
8849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets whether this node is focused.
8859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
8869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return True if the node is focused.
8879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
8889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean isFocused() {
8899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.isFocused(mInfo);
8909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
8919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
8929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
8939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets whether this node is focused.
8949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
8959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
8969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
8979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
8989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
8999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
9009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param focused True if the node is focused.
9019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
9029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
9039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setFocused(boolean focused) {
9049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setFocused(mInfo, focused);
9059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
9069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
9079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
9089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets whether this node is selected.
9099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
9109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return True if the node is selected.
9119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
9129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean isSelected() {
9139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.isSelected(mInfo);
9149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
9159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
9169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
9179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets whether this node is selected.
9189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
9199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
9209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
9219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
9229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
9239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
9249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param selected True if the node is selected.
9259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
9269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
9279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setSelected(boolean selected) {
9289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setSelected(mInfo, selected);
9299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
9309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
9319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
9329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets whether this node is clickable.
9339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
9349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return True if the node is clickable.
9359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
9369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean isClickable() {
9379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.isClickable(mInfo);
9389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
9399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
9409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
9419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets whether this node is clickable.
9429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
9439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
9449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
9459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
9469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
9479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
9489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param clickable True if the node is clickable.
9499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
9509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
9519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setClickable(boolean clickable) {
9529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setClickable(mInfo, clickable);
9539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
9549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
9559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
9569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets whether this node is long clickable.
9579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
9589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return True if the node is long clickable.
9599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
9609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean isLongClickable() {
9619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.isLongClickable(mInfo);
9629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
9639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
9649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
9659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets whether this node is long clickable.
9669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
9679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
9689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
9699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
9709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
9719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
9729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param longClickable True if the node is long clickable.
9739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
9749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
9759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setLongClickable(boolean longClickable) {
9769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setLongClickable(mInfo, longClickable);
9779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
9789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
9799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
9809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets whether this node is enabled.
9819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
9829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return True if the node is enabled.
9839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
9849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean isEnabled() {
9859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.isEnabled(mInfo);
9869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
9879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
9889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
9899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets whether this node is enabled.
9909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
9919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
9929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
9939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
9949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
9959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
9969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param enabled True if the node is enabled.
9979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
9989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
9999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setEnabled(boolean enabled) {
10009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setEnabled(mInfo, enabled);
10019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
10029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
10039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
10049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets whether this node is a password.
10059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
10069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return True if the node is a password.
10079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
10089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean isPassword() {
10099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.isPassword(mInfo);
10109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
10119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
10129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
10139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets whether this node is a password.
10149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
10159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
10169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
10179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
10189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
10199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
10209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param password True if the node is a password.
10219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
10229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
10239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setPassword(boolean password) {
10249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setPassword(mInfo, password);
10259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
10269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
10279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
10289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets if the node is scrollable.
10299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
10309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return True if the node is scrollable, false otherwise.
10319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
10329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean isScrollable() {
10339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.isScrollable(mInfo);
10349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
10359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
10369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
10379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets if the node is scrollable.
10389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
10399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
10409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
10419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
10429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
10439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
10449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param scrollable True if the node is scrollable, false otherwise.
10459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
10469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
10479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setScrollable(boolean scrollable) {
10489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setScrollable(mInfo, scrollable);
10499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
10509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
10519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
10529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets the package this node comes from.
10539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
10549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return The package name.
10559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
10569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public CharSequence getPackageName() {
10579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.getPackageName(mInfo);
10589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
10599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
10609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
10619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets the package this node comes from.
10629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
10639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
10649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
10659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
10669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
10679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
10689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param packageName The package name.
10699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
10709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
10719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setPackageName(CharSequence packageName) {
10729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setPackageName(mInfo, packageName);
10739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
10749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
10759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
10769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets the class this node comes from.
10779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
10789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return The class name.
10799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
10809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public CharSequence getClassName() {
10819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.getClassName(mInfo);
10829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
10839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
10849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
10859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets the class this node comes from.
10869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
10879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
10889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
10899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
10909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
10919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
10929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param className The class name.
10939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
10949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
10959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setClassName(CharSequence className) {
10969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setClassName(mInfo, className);
10979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
10989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
10999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
11009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets the text of this node.
11019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
11029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return The text.
11039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
11049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public CharSequence getText() {
11059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.getText(mInfo);
11069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
11079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
11089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
11099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets the text of this node.
11109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
11119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
11129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
11139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
11149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
11159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
11169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param text The text.
11179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
11189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
11199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setText(CharSequence text) {
11209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setText(mInfo, text);
11219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
11229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
11239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
11249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets the content description of this node.
11259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
11269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return The content description.
11279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
11289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public CharSequence getContentDescription() {
11299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.getContentDescription(mInfo);
11309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
11319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
11329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
11339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets the content description of this node.
11349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
11359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
11369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
11379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
11389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
11399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
11409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param contentDescription The content description.
11419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
11429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
11439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setContentDescription(CharSequence contentDescription) {
11449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setContentDescription(mInfo, contentDescription);
11459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
11469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
11479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
11489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Return an instance back to be reused.
11499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
11509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> You must not touch the object after calling this function.
11519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
11529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If the info is already recycled.
11539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
11549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void recycle() {
11559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.recycle(mInfo);
11569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
11579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
11589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    @Override
11599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public int hashCode() {
11609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return (mInfo == null) ? 0 : mInfo.hashCode();
11619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
11629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
11639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    @Override
11649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean equals(Object obj) {
11659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        if (this == obj) {
11669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return true;
11679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
11689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        if (obj == null) {
11699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
11709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
11719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        if (getClass() != obj.getClass()) {
11729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
11739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
11749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        AccessibilityNodeInfoCompat other = (AccessibilityNodeInfoCompat) obj;
11759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        if (mInfo == null) {
11769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            if (other.mInfo != null) {
11779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov                return false;
11789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            }
11799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        } else if (!mInfo.equals(other.mInfo)) {
11809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
11819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
11829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return true;
11839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
11849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov}
1185