AccessibilityNodeInfoCompat.java revision 70e96ebf69f91da84681a6263b3862c63d53ab11
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;
2170e96ebf69f91da84681a6263b3862c63d53ab11alanvimport android.os.Bundle;
229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovimport android.view.View;
239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovimport java.util.ArrayList;
25f9c2277244722eca88c784b9cfdcc78df7f94781Svetoslav Ganovimport java.util.Collections;
269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovimport java.util.List;
279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov/**
290574ca37da4619afe4e26753f5a1b4de314b6565Svetoslav Ganov * Helper for accessing {@link android.view.accessibility.AccessibilityNodeInfo}
300574ca37da4619afe4e26753f5a1b4de314b6565Svetoslav Ganov * introduced after API level 4 in a backwards compatible fashion.
319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */
329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovpublic class AccessibilityNodeInfoCompat {
339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    static interface AccessibilityNodeInfoImpl {
359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public Object obtain();
369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public Object obtain(View source);
379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public Object obtain(Object info);
3870e96ebf69f91da84681a6263b3862c63d53ab11alanv        public Object obtain(View root, int virtualDescendantId);
399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setSource(Object info, View source);
403a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov        public void setSource(Object info, View root, int virtualDescendantId);
4170e96ebf69f91da84681a6263b3862c63d53ab11alanv        public Object findFocus(Object info, int focus);
4270e96ebf69f91da84681a6263b3862c63d53ab11alanv        public Object focusSearch(Object info, int direction);
439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public int getWindowId(Object info);
449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public int getChildCount(Object info);
4570e96ebf69f91da84681a6263b3862c63d53ab11alanv        public Object getChild(Object info, int index);
469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void addChild(Object info, View child);
473a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov        public void addChild(Object info, View child, int virtualDescendantId);
489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public int getActions(Object info);
499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void addAction(Object info, int action);
509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean performAction(Object info, int action);
5170e96ebf69f91da84681a6263b3862c63d53ab11alanv        public boolean performAction(Object info, int action, Bundle arguments);
5270e96ebf69f91da84681a6263b3862c63d53ab11alanv        public void setMovementGranularities(Object info, int granularities);
5370e96ebf69f91da84681a6263b3862c63d53ab11alanv        public int getMovementGranularities(Object info);
549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public List<Object> findAccessibilityNodeInfosByText(Object info, String text);
5570e96ebf69f91da84681a6263b3862c63d53ab11alanv        public Object getParent(Object info);
5670e96ebf69f91da84681a6263b3862c63d53ab11alanv        public void setParent(Object info, View root, int virtualDescendantId);
579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setParent(Object info, View parent);
589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void getBoundsInParent(Object info, Rect outBounds);
599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setBoundsInParent(Object info, Rect bounds);
609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void getBoundsInScreen(Object info, Rect outBounds);
619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setBoundsInScreen(Object info, Rect bounds);
629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isCheckable(Object info);
639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setCheckable(Object info, boolean checkable);
649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isChecked(Object info);
659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setChecked(Object info, boolean checked);
669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isFocusable(Object info);
679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setFocusable(Object info, boolean focusable);
689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isFocused(Object info);
699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setFocused(Object info, boolean focused);
7070e96ebf69f91da84681a6263b3862c63d53ab11alanv        public boolean isVisibleToUser(Object info);
7170e96ebf69f91da84681a6263b3862c63d53ab11alanv        public void setVisibleToUser(Object info, boolean visibleToUser);
7270e96ebf69f91da84681a6263b3862c63d53ab11alanv        public boolean isAccessibilityFocused(Object info);
7370e96ebf69f91da84681a6263b3862c63d53ab11alanv        public void setAccessibilityFocused(Object info, boolean focused);
749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isSelected(Object info);
759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setSelected(Object info, boolean selected);
769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isClickable(Object info);
779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setClickable(Object info, boolean clickable);
789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isLongClickable(Object info);
799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setLongClickable(Object info, boolean longClickable);
809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isEnabled(Object info);
819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setEnabled(Object info, boolean enabled);
829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isPassword(Object info);
839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setPassword(Object info, boolean password);
849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isScrollable(Object info);
859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setScrollable(Object info, boolean scrollable);
869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public CharSequence getPackageName(Object info);
879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setPackageName(Object info, CharSequence packageName);
889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public CharSequence getClassName(Object info);
899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setClassName(Object info, CharSequence className);
909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public CharSequence getText(Object info);
919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setText(Object info, CharSequence text);
929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public CharSequence getContentDescription(Object info);
939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setContentDescription(Object info, CharSequence contentDescription);
949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void recycle(Object info);
959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    static class AccessibilityNodeInfoStubImpl implements AccessibilityNodeInfoImpl {
9870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public Object obtain() {
1009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return null;
1019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
10370e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
1049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public Object obtain(View source) {
1059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return null;
1069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
10870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
10970e96ebf69f91da84681a6263b3862c63d53ab11alanv        public Object obtain(View root, int virtualDescendantId) {
11070e96ebf69f91da84681a6263b3862c63d53ab11alanv            return null;
11170e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
11270e96ebf69f91da84681a6263b3862c63d53ab11alanv
11370e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
1149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public Object obtain(Object info) {
1159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return null;
1169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
11870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
1199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void addAction(Object info, int action) {
1209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
12370e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
1249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void addChild(Object info, View child) {
1259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
12870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
1293a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov        public void addChild(Object info, View child, int virtualDescendantId) {
1303a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov
1313a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov        }
1323a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov
13370e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
1349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public List<Object> findAccessibilityNodeInfosByText(Object info, String text) {
135f9c2277244722eca88c784b9cfdcc78df7f94781Svetoslav Ganov            return Collections.emptyList();
1369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
13870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
1399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public int getActions(Object info) {
1409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return 0;
1419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
14370e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
1449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void getBoundsInParent(Object info, Rect outBounds) {
1459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
14870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
1499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void getBoundsInScreen(Object info, Rect outBounds) {
1509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
15370e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
15470e96ebf69f91da84681a6263b3862c63d53ab11alanv        public Object getChild(Object info, int index) {
1559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return null;
1569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
15870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
1599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public int getChildCount(Object info) {
1609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return 0;
1619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
16370e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
1649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public CharSequence getClassName(Object info) {
1659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return null;
1669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
16870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
1699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public CharSequence getContentDescription(Object info) {
1709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return null;
1719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
17370e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
1749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public CharSequence getPackageName(Object info) {
1759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return null;
1769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
17870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
17970e96ebf69f91da84681a6263b3862c63d53ab11alanv        public Object getParent(Object info) {
1809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return null;
1819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
18370e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
1849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public CharSequence getText(Object info) {
1859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return null;
1869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
18870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
1899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public int getWindowId(Object info) {
1909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return 0;
1919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
19370e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
1949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isCheckable(Object info) {
1959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
1969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
1979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
19870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
1999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isChecked(Object info) {
2009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
2019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
20370e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
2049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isClickable(Object info) {
2059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
2069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
20870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
2099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isEnabled(Object info) {
2109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
2119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
21370e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
2149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isFocusable(Object info) {
2159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
2169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
21870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
2199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isFocused(Object info) {
2209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
2219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
22370e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
22470e96ebf69f91da84681a6263b3862c63d53ab11alanv        public boolean isVisibleToUser(Object info) {
22570e96ebf69f91da84681a6263b3862c63d53ab11alanv            return false;
22670e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
22770e96ebf69f91da84681a6263b3862c63d53ab11alanv
22870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
22970e96ebf69f91da84681a6263b3862c63d53ab11alanv        public boolean isAccessibilityFocused(Object info) {
23070e96ebf69f91da84681a6263b3862c63d53ab11alanv            return false;
23170e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
23270e96ebf69f91da84681a6263b3862c63d53ab11alanv
23370e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
2349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isLongClickable(Object info) {
2359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
2369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
23870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
2399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isPassword(Object info) {
2409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
2419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
24370e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
2449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isScrollable(Object info) {
2459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
2469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
24870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
2499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isSelected(Object info) {
2509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
2519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
25370e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
2549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean performAction(Object info, int action) {
2559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
2569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
25870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
25970e96ebf69f91da84681a6263b3862c63d53ab11alanv        public boolean performAction(Object info, int action, Bundle arguments) {
26070e96ebf69f91da84681a6263b3862c63d53ab11alanv            return false;
26170e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
26270e96ebf69f91da84681a6263b3862c63d53ab11alanv
26370e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
26470e96ebf69f91da84681a6263b3862c63d53ab11alanv        public void setMovementGranularities(Object info, int granularities) {
26570e96ebf69f91da84681a6263b3862c63d53ab11alanv
26670e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
26770e96ebf69f91da84681a6263b3862c63d53ab11alanv
26870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
26970e96ebf69f91da84681a6263b3862c63d53ab11alanv        public int getMovementGranularities(Object info) {
27070e96ebf69f91da84681a6263b3862c63d53ab11alanv            return 0;
27170e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
27270e96ebf69f91da84681a6263b3862c63d53ab11alanv
27370e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
2749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setBoundsInParent(Object info, Rect bounds) {
2759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
27870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
2799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setBoundsInScreen(Object info, Rect bounds) {
2809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
28370e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
2849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setCheckable(Object info, boolean checkable) {
2859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
28870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
2899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setChecked(Object info, boolean checked) {
2909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
29370e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
2949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setClassName(Object info, CharSequence className) {
2959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
2979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
29870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
2999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setClickable(Object info, boolean clickable) {
3009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
3019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
3029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
30370e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
3049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setContentDescription(Object info, CharSequence contentDescription) {
3059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
3069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
3079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
30870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
3099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setEnabled(Object info, boolean enabled) {
3109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
3119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
3129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
31370e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
3149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setFocusable(Object info, boolean focusable) {
3159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
3169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
3179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
31870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
3199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setFocused(Object info, boolean focused) {
3209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
3219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
3229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
32370e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
32470e96ebf69f91da84681a6263b3862c63d53ab11alanv        public void setVisibleToUser(Object info, boolean visibleToUser) {
32570e96ebf69f91da84681a6263b3862c63d53ab11alanv
32670e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
32770e96ebf69f91da84681a6263b3862c63d53ab11alanv
32870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
32970e96ebf69f91da84681a6263b3862c63d53ab11alanv        public void setAccessibilityFocused(Object info, boolean focused) {
33070e96ebf69f91da84681a6263b3862c63d53ab11alanv
33170e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
33270e96ebf69f91da84681a6263b3862c63d53ab11alanv
33370e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
3349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setLongClickable(Object info, boolean longClickable) {
3359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
3369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
3379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
33870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
3399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setPackageName(Object info, CharSequence packageName) {
3409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
3419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
3429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
34370e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
3449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setParent(Object info, View parent) {
3459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
3469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
3479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
34870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
3499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setPassword(Object info, boolean password) {
3509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
3519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
3529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
35370e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
3549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setScrollable(Object info, boolean scrollable) {
3559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
3569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
3579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
35870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
3599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setSelected(Object info, boolean selected) {
3609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
3619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
3629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
36370e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
3649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setSource(Object info, View source) {
3659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
3669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
3679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
36870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
3693a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov        public void setSource(Object info, View root, int virtualDescendantId) {
3703a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov
3713a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov        }
3723a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov
37370e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
37470e96ebf69f91da84681a6263b3862c63d53ab11alanv        public Object findFocus(Object info, int focus) {
37570e96ebf69f91da84681a6263b3862c63d53ab11alanv            return null;
37670e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
37770e96ebf69f91da84681a6263b3862c63d53ab11alanv
37870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
37970e96ebf69f91da84681a6263b3862c63d53ab11alanv        public Object focusSearch(Object info, int direction) {
38070e96ebf69f91da84681a6263b3862c63d53ab11alanv            return null;
38170e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
38270e96ebf69f91da84681a6263b3862c63d53ab11alanv
38370e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
3849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setText(Object info, CharSequence text) {
3859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
3869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
3879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
38870e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
3899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void recycle(Object info) {
3909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
3919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
39270e96ebf69f91da84681a6263b3862c63d53ab11alanv
39370e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
39470e96ebf69f91da84681a6263b3862c63d53ab11alanv        public void setParent(Object info, View root, int virtualDescendantId) {
39570e96ebf69f91da84681a6263b3862c63d53ab11alanv
39670e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
3979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
3989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
3999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    static class AccessibilityNodeInfoIcsImpl extends AccessibilityNodeInfoStubImpl {
4009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public Object obtain() {
4029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.obtain();
4039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public Object obtain(View source) {
4079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.obtain(source);
4089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public Object obtain(Object info) {
4129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.obtain(info);
4139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void addAction(Object info, int action) {
4179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.addAction(info, action);
4189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void addChild(Object info, View child) {
4229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.addChild(info, child);
4239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public List<Object> findAccessibilityNodeInfosByText(Object info, String text) {
4279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.findAccessibilityNodeInfosByText(info, text);
4289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public int getActions(Object info) {
4329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.getActions(info);
4339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void getBoundsInParent(Object info, Rect outBounds) {
4379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.getBoundsInParent(info, outBounds);
4389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void getBoundsInScreen(Object info, Rect outBounds) {
4429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.getBoundsInScreen(info, outBounds);
4439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
44670e96ebf69f91da84681a6263b3862c63d53ab11alanv        public Object getChild(Object info, int index) {
44770e96ebf69f91da84681a6263b3862c63d53ab11alanv            return AccessibilityNodeInfoCompatIcs.getChild(info, index);
4489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public int getChildCount(Object info) {
4529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.getChildCount(info);
4539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public CharSequence getClassName(Object info) {
4579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.getClassName(info);
4589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public CharSequence getContentDescription(Object info) {
4629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.getContentDescription(info);
4639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public CharSequence getPackageName(Object info) {
4679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.getPackageName(info);
4689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
47170e96ebf69f91da84681a6263b3862c63d53ab11alanv        public Object getParent(Object info) {
47270e96ebf69f91da84681a6263b3862c63d53ab11alanv            return AccessibilityNodeInfoCompatIcs.getParent(info);
4739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public CharSequence getText(Object info) {
4779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.getText(info);
4789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public int getWindowId(Object info) {
4829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.getWindowId(info);
4839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isCheckable(Object info) {
4879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.isCheckable(info);
4889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isChecked(Object info) {
4929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.isChecked(info);
4939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
4959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
4969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isClickable(Object info) {
4979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.isClickable(info);
4989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
4999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
5009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
5019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isEnabled(Object info) {
5029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.isEnabled(info);
5039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
5049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
5059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
5069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isFocusable(Object info) {
5079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.isFocusable(info);
5089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
5099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
5109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
5119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isFocused(Object info) {
5129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.isFocused(info);
5139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
5149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
5159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
5169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isLongClickable(Object info) {
5179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.isLongClickable(info);
5189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
5199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
5209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
5219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isPassword(Object info) {
5229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.isPassword(info);
5239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
5249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
5259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
5269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isScrollable(Object info) {
5279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.isScrollable(info);
5289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
5299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
5309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
5319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean isSelected(Object info) {
5329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.isSelected(info);
5339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
5349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
5359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
5369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public boolean performAction(Object info, int action) {
5379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return AccessibilityNodeInfoCompatIcs.performAction(info, action);
5389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
5399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
5409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
5419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setBoundsInParent(Object info, Rect bounds) {
5429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setBoundsInParent(info, bounds);
5439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
5449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
5459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
5469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setBoundsInScreen(Object info, Rect bounds) {
5479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setBoundsInScreen(info, bounds);
5489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
5499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
5509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
5519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setCheckable(Object info, boolean checkable) {
5529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setCheckable(info, checkable);
5539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
5549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
5559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
5569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setChecked(Object info, boolean checked) {
5579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setChecked(info, checked);
5589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
5599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
5609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
5619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setClassName(Object info, CharSequence className) {
5629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setClassName(info, className);
5639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
5649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
5659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
5669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setClickable(Object info, boolean clickable) {
5679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setClickable(info, clickable);
5689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
5699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
5709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
5719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setContentDescription(Object info, CharSequence contentDescription) {
5729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setContentDescription(info, contentDescription);
5739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
5749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
5759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
5769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setEnabled(Object info, boolean enabled) {
5779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setEnabled(info, enabled);
5789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
5799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
5809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
5819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setFocusable(Object info, boolean focusable) {
5829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setFocusable(info, focusable);
5839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
5849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
5859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
5869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setFocused(Object info, boolean focused) {
5879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setFocused(info, focused);
5889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
5899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
5909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
5919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setLongClickable(Object info, boolean longClickable) {
5929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setLongClickable(info, longClickable);
5939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
5949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
5959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
5969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setPackageName(Object info, CharSequence packageName) {
5979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setPackageName(info, packageName);
5989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
5999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
6009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
6019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setParent(Object info, View parent) {
6029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setParent(info, parent);
6039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
6049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
6059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
6069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setPassword(Object info, boolean password) {
6079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setPassword(info, password);
6089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
6099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
6109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
6119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setScrollable(Object info, boolean scrollable) {
6129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setScrollable(info, scrollable);
6139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
6149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
6159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
6169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setSelected(Object info, boolean selected) {
6179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setSelected(info, selected);
6189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
6199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
6209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
6219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setSource(Object info, View source) {
6229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setSource(info, source);
6239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
6249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
6259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
6269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void setText(Object info, CharSequence text) {
6279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.setText(info, text);
6289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
6299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
6309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        @Override
6319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        public void recycle(Object info) {
6329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            AccessibilityNodeInfoCompatIcs.recycle(info);
6339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
6349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
6359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
6363a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov    static class AccessibilityNodeInfoJellybeanImpl extends AccessibilityNodeInfoIcsImpl {
6373a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov        @Override
63870e96ebf69f91da84681a6263b3862c63d53ab11alanv        public Object obtain(View root, int virtualDescendantId) {
63970e96ebf69f91da84681a6263b3862c63d53ab11alanv            return AccessibilityNodeInfoCompatJellyBean.obtain(root, virtualDescendantId);
64070e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
64170e96ebf69f91da84681a6263b3862c63d53ab11alanv
64270e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
64370e96ebf69f91da84681a6263b3862c63d53ab11alanv        public Object findFocus(Object info, int focus) {
64470e96ebf69f91da84681a6263b3862c63d53ab11alanv            return AccessibilityNodeInfoCompatJellyBean.findFocus(info, focus);
64570e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
64670e96ebf69f91da84681a6263b3862c63d53ab11alanv
64770e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
64870e96ebf69f91da84681a6263b3862c63d53ab11alanv        public Object focusSearch(Object info, int direction) {
64970e96ebf69f91da84681a6263b3862c63d53ab11alanv            return AccessibilityNodeInfoCompatJellyBean.focusSearch(info, direction);
65070e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
65170e96ebf69f91da84681a6263b3862c63d53ab11alanv
65270e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
6533a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov        public void addChild(Object info, View child, int virtualDescendantId) {
6543a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov            AccessibilityNodeInfoCompatJellyBean.addChild(info, child, virtualDescendantId);
6553a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov        }
6563a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov
6573a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov        @Override
6583a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov        public void setSource(Object info, View root, int virtualDescendantId) {
6593a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov            AccessibilityNodeInfoCompatJellyBean.setSource(info, root, virtualDescendantId);
6603a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov        }
66170e96ebf69f91da84681a6263b3862c63d53ab11alanv
66270e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
66370e96ebf69f91da84681a6263b3862c63d53ab11alanv        public boolean isVisibleToUser(Object info) {
66470e96ebf69f91da84681a6263b3862c63d53ab11alanv            return AccessibilityNodeInfoCompatJellyBean.isVisibleToUser(info);
66570e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
66670e96ebf69f91da84681a6263b3862c63d53ab11alanv
66770e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
66870e96ebf69f91da84681a6263b3862c63d53ab11alanv        public void setVisibleToUser(Object info, boolean visibleToUser) {
66970e96ebf69f91da84681a6263b3862c63d53ab11alanv            AccessibilityNodeInfoCompatJellyBean.setVisibleToUser(info, visibleToUser);
67070e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
67170e96ebf69f91da84681a6263b3862c63d53ab11alanv
67270e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
67370e96ebf69f91da84681a6263b3862c63d53ab11alanv        public boolean isAccessibilityFocused(Object info) {
67470e96ebf69f91da84681a6263b3862c63d53ab11alanv            return AccessibilityNodeInfoCompatJellyBean.isAccessibilityFocused(info);
67570e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
67670e96ebf69f91da84681a6263b3862c63d53ab11alanv
67770e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
67870e96ebf69f91da84681a6263b3862c63d53ab11alanv        public void setAccessibilityFocused(Object info, boolean focused) {
67970e96ebf69f91da84681a6263b3862c63d53ab11alanv            AccessibilityNodeInfoCompatJellyBean.setAccesibilityFocused(info, focused);
68070e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
68170e96ebf69f91da84681a6263b3862c63d53ab11alanv
68270e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
68370e96ebf69f91da84681a6263b3862c63d53ab11alanv        public boolean performAction(Object info, int action, Bundle arguments) {
68470e96ebf69f91da84681a6263b3862c63d53ab11alanv            return AccessibilityNodeInfoCompatJellyBean.performAction(info, action, arguments);
68570e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
68670e96ebf69f91da84681a6263b3862c63d53ab11alanv
68770e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
68870e96ebf69f91da84681a6263b3862c63d53ab11alanv        public void setMovementGranularities(Object info, int granularities) {
68970e96ebf69f91da84681a6263b3862c63d53ab11alanv            AccessibilityNodeInfoCompatJellyBean.setMovementGranularities(info, granularities);
69070e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
69170e96ebf69f91da84681a6263b3862c63d53ab11alanv
69270e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
69370e96ebf69f91da84681a6263b3862c63d53ab11alanv        public int getMovementGranularities(Object info) {
69470e96ebf69f91da84681a6263b3862c63d53ab11alanv            return AccessibilityNodeInfoCompatJellyBean.getMovementGranularities(info);
69570e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
69670e96ebf69f91da84681a6263b3862c63d53ab11alanv
69770e96ebf69f91da84681a6263b3862c63d53ab11alanv        @Override
69870e96ebf69f91da84681a6263b3862c63d53ab11alanv        public void setParent(Object info, View root, int virtualDescendantId) {
69970e96ebf69f91da84681a6263b3862c63d53ab11alanv            AccessibilityNodeInfoCompatJellyBean.setParent(info, root, virtualDescendantId);
70070e96ebf69f91da84681a6263b3862c63d53ab11alanv        }
7013a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov    }
7023a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov
7039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    static {
7043a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov        // TODO: Update the conditional to use SDK_INT when we have an SDK version set.
7053a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov        //       (tracked by bug:5947249)
7063a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov        if (Build.VERSION.CODENAME.equals("JellyBean")) { // JellyBean
7073a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov            IMPL = new AccessibilityNodeInfoJellybeanImpl();
7083a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov        } else if (Build.VERSION.SDK_INT >= 14) { // ICS
7099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            IMPL = new AccessibilityNodeInfoIcsImpl();
7109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        } else {
7119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            IMPL = new AccessibilityNodeInfoStubImpl();
7129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
7139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
7149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
7159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    private static final AccessibilityNodeInfoImpl IMPL;
7169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
7179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    private final Object mInfo;
7189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
7199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    // Actions.
7209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
7219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
7229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Action that focuses the node.
7239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
7249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static final int ACTION_FOCUS = 0x00000001;
7259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
7269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
7279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Action that unfocuses the node.
7289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
7299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static final int ACTION_CLEAR_FOCUS = 0x00000002;
7309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
7319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
7329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Action that selects the node.
7339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
7349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static final int ACTION_SELECT = 0x00000004;
7359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
7369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
7379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Action that unselects the node.
7389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
7399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static final int ACTION_CLEAR_SELECTION = 0x00000008;
7409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
741c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov    /**
74270e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Action that clicks on the node info.
74370e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
74470e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final int ACTION_CLICK = 0x00000010;
74570e96ebf69f91da84681a6263b3862c63d53ab11alanv
74670e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
74770e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Action that long clicks on the node.
74870e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
74970e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final int ACTION_LONG_CLICK = 0x00000020;
75070e96ebf69f91da84681a6263b3862c63d53ab11alanv
75170e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
75270e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Action that gives accessibility focus to the node.
75370e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
75470e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final int ACTION_ACCESSIBILITY_FOCUS = 0x00000040;
75570e96ebf69f91da84681a6263b3862c63d53ab11alanv
75670e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
75770e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Action that clears accessibility focus of the node.
75870e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
75970e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final int ACTION_CLEAR_ACCESSIBILITY_FOCUS = 0x00000080;
76070e96ebf69f91da84681a6263b3862c63d53ab11alanv
76170e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
76270e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Action that requests to go to the next entity in this node's text
76370e96ebf69f91da84681a6263b3862c63d53ab11alanv     * at a given movement granularity. For example, move to the next character,
76470e96ebf69f91da84681a6263b3862c63d53ab11alanv     * word, etc.
76570e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <p>
76670e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <strong>Arguments:</strong> {@link #ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT}<br>
76770e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <strong>Example:</strong>
76870e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <code><pre><p>
76970e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   Bundle arguments = new Bundle();
77070e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT,
77170e96ebf69f91da84681a6263b3862c63d53ab11alanv     *           AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
77270e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   info.performAction(AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments);
77370e96ebf69f91da84681a6263b3862c63d53ab11alanv     * </code></pre></p>
77470e96ebf69f91da84681a6263b3862c63d53ab11alanv     * </p>
77570e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
77670e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @see #setMovementGranularities(int)
77770e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @see #getMovementGranularities()
77870e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
77970e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @see #MOVEMENT_GRANULARITY_CHARACTER
78070e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @see #MOVEMENT_GRANULARITY_WORD
78170e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @see #MOVEMENT_GRANULARITY_LINE
78270e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @see #MOVEMENT_GRANULARITY_PARAGRAPH
78370e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @see #MOVEMENT_GRANULARITY_PAGE
78470e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
78570e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final int ACTION_NEXT_AT_MOVEMENT_GRANULARITY = 0x00000100;
78670e96ebf69f91da84681a6263b3862c63d53ab11alanv
78770e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
78870e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Action that requests to go to the previous entity in this node's text
78970e96ebf69f91da84681a6263b3862c63d53ab11alanv     * at a given movement granularity. For example, move to the next character,
79070e96ebf69f91da84681a6263b3862c63d53ab11alanv     * word, etc.
79170e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <p>
79270e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <strong>Arguments:</strong> {@link #ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT}<br>
79370e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <strong>Example:</strong>
79470e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <code><pre><p>
79570e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   Bundle arguments = new Bundle();
79670e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT,
79770e96ebf69f91da84681a6263b3862c63d53ab11alanv     *           AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER);
79870e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   info.performAction(AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY,
79970e96ebf69f91da84681a6263b3862c63d53ab11alanv     *           arguments);
80070e96ebf69f91da84681a6263b3862c63d53ab11alanv     * </code></pre></p>
80170e96ebf69f91da84681a6263b3862c63d53ab11alanv     * </p>
80270e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
80370e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @see #setMovementGranularities(int)
80470e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @see #getMovementGranularities()
80570e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
80670e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @see #MOVEMENT_GRANULARITY_CHARACTER
80770e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @see #MOVEMENT_GRANULARITY_WORD
80870e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @see #MOVEMENT_GRANULARITY_LINE
80970e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @see #MOVEMENT_GRANULARITY_PARAGRAPH
81070e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @see #MOVEMENT_GRANULARITY_PAGE
81170e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
81270e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final int ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY = 0x00000200;
81370e96ebf69f91da84681a6263b3862c63d53ab11alanv
81470e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
81570e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Action to move to the next HTML element of a given type. For example, move
81670e96ebf69f91da84681a6263b3862c63d53ab11alanv     * to the BUTTON, INPUT, TABLE, etc.
81770e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <p>
81870e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <strong>Arguments:</strong> {@link #ACTION_ARGUMENT_HTML_ELEMENT_STRING}<br>
81970e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <strong>Example:</strong>
82070e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <code><pre><p>
82170e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   Bundle arguments = new Bundle();
82270e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   arguments.putString(AccessibilityNodeInfo.ACTION_ARGUMENT_HTML_ELEMENT_STRING, "BUTTON");
82370e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   info.performAction(AccessibilityNodeInfo.ACTION_NEXT_HTML_ELEMENT, arguments);
82470e96ebf69f91da84681a6263b3862c63d53ab11alanv     * </code></pre></p>
82570e96ebf69f91da84681a6263b3862c63d53ab11alanv     * </p>
82670e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
82770e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final int ACTION_NEXT_HTML_ELEMENT = 0x00000400;
82870e96ebf69f91da84681a6263b3862c63d53ab11alanv
82970e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
83070e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Action to move to the previous HTML element of a given type. For example, move
83170e96ebf69f91da84681a6263b3862c63d53ab11alanv     * to the BUTTON, INPUT, TABLE, etc.
83270e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <p>
83370e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <strong>Arguments:</strong> {@link #ACTION_ARGUMENT_HTML_ELEMENT_STRING}<br>
83470e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <strong>Example:</strong>
83570e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <code><pre><p>
83670e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   Bundle arguments = new Bundle();
83770e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   arguments.putString(AccessibilityNodeInfo.ACTION_ARGUMENT_HTML_ELEMENT_STRING, "BUTTON");
83870e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   info.performAction(AccessibilityNodeInfo.ACTION_PREVIOUS_HTML_ELEMENT, arguments);
83970e96ebf69f91da84681a6263b3862c63d53ab11alanv     * </code></pre></p>
84070e96ebf69f91da84681a6263b3862c63d53ab11alanv     * </p>
84170e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
84270e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final int ACTION_PREVIOUS_HTML_ELEMENT = 0x00000800;
84370e96ebf69f91da84681a6263b3862c63d53ab11alanv
84470e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
84570e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Action to scroll the node content forward.
84670e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
84770e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final int ACTION_SCROLL_FORWARD = 0x00001000;
84870e96ebf69f91da84681a6263b3862c63d53ab11alanv
84970e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
85070e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Action to scroll the node content backward.
85170e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
85270e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final int ACTION_SCROLL_BACKWARD = 0x00002000;
85370e96ebf69f91da84681a6263b3862c63d53ab11alanv
85470e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
85570e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Argument for which movement granularity to be used when traversing the node text.
85670e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <p>
85770e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <strong>Type:</strong> int<br>
85870e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <strong>Actions:</strong> {@link #ACTION_NEXT_AT_MOVEMENT_GRANULARITY},
85970e96ebf69f91da84681a6263b3862c63d53ab11alanv     * {@link #ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY}
86070e96ebf69f91da84681a6263b3862c63d53ab11alanv     * </p>
86170e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
86270e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final String ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT =
86370e96ebf69f91da84681a6263b3862c63d53ab11alanv        "ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT";
86470e96ebf69f91da84681a6263b3862c63d53ab11alanv
86570e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
86670e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Argument for which HTML element to get moving to the next/previous HTML element.
86770e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <p>
86870e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <strong>Type:</strong> String<br>
86970e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <strong>Actions:</strong> {@link #ACTION_NEXT_HTML_ELEMENT},
87070e96ebf69f91da84681a6263b3862c63d53ab11alanv     *         {@link #ACTION_PREVIOUS_HTML_ELEMENT}
87170e96ebf69f91da84681a6263b3862c63d53ab11alanv     * </p>
87270e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
87370e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final String ACTION_ARGUMENT_HTML_ELEMENT_STRING =
87470e96ebf69f91da84681a6263b3862c63d53ab11alanv        "ACTION_ARGUMENT_HTML_ELEMENT_STRING";
87570e96ebf69f91da84681a6263b3862c63d53ab11alanv
87670e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
87770e96ebf69f91da84681a6263b3862c63d53ab11alanv     * The input focus.
87870e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
87970e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final int FOCUS_INPUT = 1;
88070e96ebf69f91da84681a6263b3862c63d53ab11alanv
88170e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
88270e96ebf69f91da84681a6263b3862c63d53ab11alanv     * The accessibility focus.
88370e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
88470e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final int FOCUS_ACCESSIBILITY = 2;
88570e96ebf69f91da84681a6263b3862c63d53ab11alanv
88670e96ebf69f91da84681a6263b3862c63d53ab11alanv    // Movement granularities
88770e96ebf69f91da84681a6263b3862c63d53ab11alanv
88870e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
88970e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Movement granularity bit for traversing the text of a node by character.
89070e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
89170e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final int MOVEMENT_GRANULARITY_CHARACTER = 0x00000001;
89270e96ebf69f91da84681a6263b3862c63d53ab11alanv
89370e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
89470e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Movement granularity bit for traversing the text of a node by word.
89570e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
89670e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final int MOVEMENT_GRANULARITY_WORD = 0x00000002;
89770e96ebf69f91da84681a6263b3862c63d53ab11alanv
89870e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
89970e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Movement granularity bit for traversing the text of a node by line.
90070e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
90170e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final int MOVEMENT_GRANULARITY_LINE = 0x00000004;
90270e96ebf69f91da84681a6263b3862c63d53ab11alanv
90370e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
90470e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Movement granularity bit for traversing the text of a node by paragraph.
90570e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
90670e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final int MOVEMENT_GRANULARITY_PARAGRAPH = 0x00000008;
90770e96ebf69f91da84681a6263b3862c63d53ab11alanv
90870e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
90970e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Movement granularity bit for traversing the text of a node by page.
91070e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
91170e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static final int MOVEMENT_GRANULARITY_PAGE = 0x00000010;
91270e96ebf69f91da84681a6263b3862c63d53ab11alanv
91370e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
914c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov     * Creates a wrapper for info implementation.
915c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov     *
916c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov     * @param object The info to wrap.
917c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov     * @return A wrapper for if the object is not null, null otherwise.
918c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov     */
919c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov    static AccessibilityNodeInfoCompat wrapNonNullInstance(Object object) {
920c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov        if (object != null) {
921c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov            return new AccessibilityNodeInfoCompat(object);
922c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov        }
923c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov        return null;
924c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov    }
925c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov
926956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov    /**
927956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov     * Creates a new instance wrapping an
928956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov     * {@link android.view.accessibility.AccessibilityNodeInfo}.
929956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov     *
930956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov     * @param info The info.
9319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
9329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public AccessibilityNodeInfoCompat(Object info) {
9339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        mInfo = info;
9349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
9359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
9369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
937956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov     * @return The wrapped {@link android.view.accessibility.AccessibilityNodeInfo}.
9389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
939956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov    public Object getInfo() {
9409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return mInfo;
9419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
9429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
9439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
9449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Returns a cached instance if such is available otherwise a new one and
9459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * sets the source.
9469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
9479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return An instance.
9489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @see #setSource(View)
9499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
9509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static AccessibilityNodeInfoCompat obtain(View source) {
95170e96ebf69f91da84681a6263b3862c63d53ab11alanv        return AccessibilityNodeInfoCompat.wrapNonNullInstance(IMPL.obtain(source));
95270e96ebf69f91da84681a6263b3862c63d53ab11alanv    }
95370e96ebf69f91da84681a6263b3862c63d53ab11alanv
95470e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
95570e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Returns a cached instance if such is available otherwise a new one
95670e96ebf69f91da84681a6263b3862c63d53ab11alanv     * and sets the source.
95770e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
95870e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @param root The root of the virtual subtree.
95970e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @param virtualDescendantId The id of the virtual descendant.
96070e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @return An instance.
96170e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
96270e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @see #setSource(View, int)
96370e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
96470e96ebf69f91da84681a6263b3862c63d53ab11alanv    public static AccessibilityNodeInfoCompat obtain(View root, int virtualDescendantId) {
96570e96ebf69f91da84681a6263b3862c63d53ab11alanv        return AccessibilityNodeInfoCompat.wrapNonNullInstance(
96670e96ebf69f91da84681a6263b3862c63d53ab11alanv                IMPL.obtain(root, virtualDescendantId));
9679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
9689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
9699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
9709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Returns a cached instance if such is available otherwise a new one.
9719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
9729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return An instance.
9739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
9749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static AccessibilityNodeInfoCompat obtain() {
97570e96ebf69f91da84681a6263b3862c63d53ab11alanv        return AccessibilityNodeInfoCompat.wrapNonNullInstance(IMPL.obtain());
9769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
9779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
9789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
9799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Returns a cached instance if such is available or a new one is create.
9809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * The returned instance is initialized from the given <code>info</code>.
9819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
9829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param info The other info.
9839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return An instance.
9849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
9859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static AccessibilityNodeInfoCompat obtain(AccessibilityNodeInfoCompat info) {
98670e96ebf69f91da84681a6263b3862c63d53ab11alanv        return AccessibilityNodeInfoCompat.wrapNonNullInstance(IMPL.obtain(info.mInfo));
9879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
9889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
9899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
9909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets the source.
9919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
9929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param source The info source.
9939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
9949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setSource(View source) {
9959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setSource(mInfo, source);
9969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
9979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
9989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
9993a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * Sets the source to be a virtual descendant of the given <code>root</code>.
10003a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * If <code>virtualDescendantId</code> is {@link View#NO_ID} the root
10013a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * is set as the source.
10023a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * <p>
10033a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * A virtual descendant is an imaginary View that is reported as a part of the view
10043a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * hierarchy for accessibility purposes. This enables custom views that draw complex
10053a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * content to report themselves as a tree of virtual views, thus conveying their
10063a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * logical structure.
10073a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * </p>
10083a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * <p>
10093a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     *   <strong>Note:</strong> Cannot be called from an
10103a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     *   {@link android.accessibilityservice.AccessibilityService}.
10113a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     *   This class is made immutable before being delivered to an AccessibilityService.
10123a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * </p>
10133a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     *
10143a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * @param root The root of the virtual subtree.
10153a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * @param virtualDescendantId The id of the virtual descendant.
10163a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     */
10173a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov    public void setSource(View root, int virtualDescendantId) {
10183a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov        IMPL.setSource(mInfo, root, virtualDescendantId);
10193a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov    }
10203a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov
10213a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov    /**
102270e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Find the view that has the specified focus type. The search starts from
102370e96ebf69f91da84681a6263b3862c63d53ab11alanv     * the view represented by this node info.
102470e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
102570e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @param focus The focus to find. One of {@link #FOCUS_INPUT} or
102670e96ebf69f91da84681a6263b3862c63d53ab11alanv     *         {@link #FOCUS_ACCESSIBILITY}.
102770e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @return The node info of the focused view or null.
102870e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
102970e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @see #FOCUS_INPUT
103070e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @see #FOCUS_ACCESSIBILITY
103170e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
103270e96ebf69f91da84681a6263b3862c63d53ab11alanv    public AccessibilityNodeInfoCompat findFocus(int focus) {
103370e96ebf69f91da84681a6263b3862c63d53ab11alanv        return AccessibilityNodeInfoCompat.wrapNonNullInstance(IMPL.findFocus(mInfo, focus));
103470e96ebf69f91da84681a6263b3862c63d53ab11alanv    }
103570e96ebf69f91da84681a6263b3862c63d53ab11alanv
103670e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
103770e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Searches for the nearest view in the specified direction that can take
103870e96ebf69f91da84681a6263b3862c63d53ab11alanv     * focus.
103970e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
104070e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @param direction The direction. Can be one of:
104170e96ebf69f91da84681a6263b3862c63d53ab11alanv     *     {@link View#FOCUS_DOWN},
104270e96ebf69f91da84681a6263b3862c63d53ab11alanv     *     {@link View#FOCUS_UP},
104370e96ebf69f91da84681a6263b3862c63d53ab11alanv     *     {@link View#FOCUS_LEFT},
104470e96ebf69f91da84681a6263b3862c63d53ab11alanv     *     {@link View#FOCUS_RIGHT},
104570e96ebf69f91da84681a6263b3862c63d53ab11alanv     *     {@link View#FOCUS_FORWARD},
104670e96ebf69f91da84681a6263b3862c63d53ab11alanv     *     {@link View#FOCUS_BACKWARD},
104770e96ebf69f91da84681a6263b3862c63d53ab11alanv     *     {@link View#ACCESSIBILITY_FOCUS_FORWARD},
104870e96ebf69f91da84681a6263b3862c63d53ab11alanv     *     {@link View#ACCESSIBILITY_FOCUS_BACKWARD},
104970e96ebf69f91da84681a6263b3862c63d53ab11alanv     *     {@link View#ACCESSIBILITY_FOCUS_UP},
105070e96ebf69f91da84681a6263b3862c63d53ab11alanv     *     {@link View#ACCESSIBILITY_FOCUS_RIGHT},
105170e96ebf69f91da84681a6263b3862c63d53ab11alanv     *     {@link View#ACCESSIBILITY_FOCUS_DOWN},
105270e96ebf69f91da84681a6263b3862c63d53ab11alanv     *     {@link View#ACCESSIBILITY_FOCUS_LEFT}.
105370e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
105470e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @return The node info for the view that can take accessibility focus.
105570e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
105670e96ebf69f91da84681a6263b3862c63d53ab11alanv    public AccessibilityNodeInfoCompat focusSearch(int direction) {
105770e96ebf69f91da84681a6263b3862c63d53ab11alanv        return AccessibilityNodeInfoCompat.wrapNonNullInstance(IMPL.focusSearch(mInfo, direction));
105870e96ebf69f91da84681a6263b3862c63d53ab11alanv    }
105970e96ebf69f91da84681a6263b3862c63d53ab11alanv
106070e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
10619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets the id of the window from which the info comes from.
10629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
10639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return The window id.
10649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
10659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public int getWindowId() {
10669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.getWindowId(mInfo);
10679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
10689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
10699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
10709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets the number of children.
10719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
10729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return The child count.
10739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
10749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public int getChildCount() {
10759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.getChildCount(mInfo);
10769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
10779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
10789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
10799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Get the child at given index.
10809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
10819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> It is a client responsibility to recycle the
10829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * received info by calling {@link AccessibilityNodeInfoCompat#recycle()} to
10839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * avoid creating of multiple instances.
10849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
10859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
10869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param index The child index.
10879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return The child node.
10889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called outside of an
10899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *             AccessibilityService.
10909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
10919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public AccessibilityNodeInfoCompat getChild(int index) {
109270e96ebf69f91da84681a6263b3862c63d53ab11alanv        return AccessibilityNodeInfoCompat.wrapNonNullInstance(IMPL.getChild(mInfo, index));
10939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
10949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
10959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
10969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Adds a child.
10979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
10989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
10999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
11009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
11019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
11029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
11039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param child The child.
11049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
11059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
11069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void addChild(View child) {
11079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.addChild(mInfo, child);
11089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
11099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
11109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
11113a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * Adds a virtual child which is a descendant of the given <code>root</code>.
11123a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * If <code>virtualDescendantId</code> is {@link View#NO_ID} the root
11133a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * is added as a child.
11143a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * <p>
11153a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * A virtual descendant is an imaginary View that is reported as a part of the view
11163a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * hierarchy for accessibility purposes. This enables custom views that draw complex
11173a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * content to report them selves as a tree of virtual views, thus conveying their
11183a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * logical structure.
11193a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * </p>
11203a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     *
11213a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * @param root The root of the virtual subtree.
11223a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     * @param virtualDescendantId The id of the virtual child.
11233a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov     */
11243a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov    public void addChild(View root, int virtualDescendantId) {
11253a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov        IMPL.addChild(mInfo, root, virtualDescendantId);
11263a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov    }
11273a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov
11283a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov    /**
11299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets the actions that can be performed on the node.
11309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
11319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return The bit mask of with actions.
11329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @see android.view.accessibility.AccessibilityNodeInfo#ACTION_FOCUS
11339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @see android.view.accessibility.AccessibilityNodeInfo#ACTION_CLEAR_FOCUS
11349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @see android.view.accessibility.AccessibilityNodeInfo#ACTION_SELECT
11359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @see android.view.accessibility.AccessibilityNodeInfo#ACTION_CLEAR_SELECTION
11369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
11379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public int getActions() {
11389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.getActions(mInfo);
11399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
11409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
11419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
11429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Adds an action that can be performed on the node.
11439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
11449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
11459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
11469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
11479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
11489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
11499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param action The action.
11509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
11519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
11529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void addAction(int action) {
11539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.addAction(mInfo, action);
11549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
11559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
11569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
11579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Performs an action on the node.
11589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
11599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> An action can be performed only if the request is
11609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made from an {@link android.accessibilityservice.AccessibilityService}.
11619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
11629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
11639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param action The action to perform.
11649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return True if the action was performed.
11659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called outside of an
11669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *             AccessibilityService.
11679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
11689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean performAction(int action) {
11699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.performAction(mInfo, action);
11709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
11719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
11729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
117370e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Performs an action on the node.
117470e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <p>
117570e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   <strong>Note:</strong> An action can be performed only if the request is made
117670e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   from an {@link android.accessibilityservice.AccessibilityService}.
117770e96ebf69f91da84681a6263b3862c63d53ab11alanv     * </p>
117870e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
117970e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @param action The action to perform.
118070e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @param arguments A bundle with additional arguments.
118170e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @return True if the action was performed.
118270e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
118370e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @throws IllegalStateException If called outside of an AccessibilityService.
118470e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
118570e96ebf69f91da84681a6263b3862c63d53ab11alanv    public boolean performAction(int action, Bundle arguments) {
118670e96ebf69f91da84681a6263b3862c63d53ab11alanv        return IMPL.performAction(mInfo, action, arguments);
118770e96ebf69f91da84681a6263b3862c63d53ab11alanv    }
118870e96ebf69f91da84681a6263b3862c63d53ab11alanv
118970e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
119070e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Sets the movement granularities for traversing the text of this node.
119170e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <p>
119270e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   <strong>Note:</strong> Cannot be called from an
119370e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   {@link android.accessibilityservice.AccessibilityService}.
119470e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   This class is made immutable before being delivered to an AccessibilityService.
119570e96ebf69f91da84681a6263b3862c63d53ab11alanv     * </p>
119670e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
119770e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @param granularities The bit mask with granularities.
119870e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
119970e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @throws IllegalStateException If called from an AccessibilityService.
120070e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
120170e96ebf69f91da84681a6263b3862c63d53ab11alanv    public void setMovementGranularities(int granularities) {
120270e96ebf69f91da84681a6263b3862c63d53ab11alanv        IMPL.setMovementGranularities(mInfo, granularities);
120370e96ebf69f91da84681a6263b3862c63d53ab11alanv    }
120470e96ebf69f91da84681a6263b3862c63d53ab11alanv
120570e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
120670e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Gets the movement granularities for traversing the text of this node.
120770e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
120870e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @return The bit mask with granularities.
120970e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
121070e96ebf69f91da84681a6263b3862c63d53ab11alanv    public int getMovementGranularities() {
121170e96ebf69f91da84681a6263b3862c63d53ab11alanv        return IMPL.getMovementGranularities(mInfo);
121270e96ebf69f91da84681a6263b3862c63d53ab11alanv    }
121370e96ebf69f91da84681a6263b3862c63d53ab11alanv
121470e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
12159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Finds {@link android.view.accessibility.AccessibilityNodeInfo}s by text. The match
12169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * is case insensitive containment. The search is relative to this info i.e. this
12179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * info is the root of the traversed tree.
12189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
12199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> It is a client responsibility to recycle the
12209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * received info by calling {@link android.view.accessibility.AccessibilityNodeInfo#recycle()}
12219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * to avoid creating of multiple instances.
12229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
12239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
12249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param text The searched text.
12259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return A list of node info.
12269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
12279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public List<AccessibilityNodeInfoCompat> findAccessibilityNodeInfosByText(String text) {
12289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        List<AccessibilityNodeInfoCompat> result = new ArrayList<AccessibilityNodeInfoCompat>();
12299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        List<Object> infos = IMPL.findAccessibilityNodeInfosByText(mInfo, text);
12309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        final int infoCount = infos.size();
12319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        for (int i = 0; i < infoCount; i++) {
12329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            Object info = infos.get(i);
12339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            result.add(new AccessibilityNodeInfoCompat(info));
12349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
12359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return result;
12369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
12379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
12389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
12399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets the parent.
12409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
12419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> It is a client responsibility to recycle the
12429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * received info by calling {@link android.view.accessibility.AccessibilityNodeInfo#recycle()}
12439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * to avoid creating of multiple instances.
12449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
12459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
12469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return The parent.
12479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
12489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public AccessibilityNodeInfoCompat getParent() {
124970e96ebf69f91da84681a6263b3862c63d53ab11alanv        return AccessibilityNodeInfoCompat.wrapNonNullInstance(IMPL.getParent(mInfo));
12509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
12519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
12529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
12539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets the parent.
12549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
12559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
12569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
12579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
12589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
12599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
12609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param parent The parent.
12619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
12629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
12639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setParent(View parent) {
12649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setParent(mInfo, parent);
12659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
12669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
12679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
126870e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Sets the parent to be a virtual descendant of the given <code>root</code>.
126970e96ebf69f91da84681a6263b3862c63d53ab11alanv     * If <code>virtualDescendantId</code> equals to {@link View#NO_ID} the root
127070e96ebf69f91da84681a6263b3862c63d53ab11alanv     * is set as the parent.
127170e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <p>
127270e96ebf69f91da84681a6263b3862c63d53ab11alanv     * A virtual descendant is an imaginary View that is reported as a part of the view
127370e96ebf69f91da84681a6263b3862c63d53ab11alanv     * hierarchy for accessibility purposes. This enables custom views that draw complex
127470e96ebf69f91da84681a6263b3862c63d53ab11alanv     * content to report them selves as a tree of virtual views, thus conveying their
127570e96ebf69f91da84681a6263b3862c63d53ab11alanv     * logical structure.
127670e96ebf69f91da84681a6263b3862c63d53ab11alanv     * </p>
127770e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <p>
127870e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   <strong>Note:</strong> Cannot be called from an
127970e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   {@link android.accessibilityservice.AccessibilityService}.
128070e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   This class is made immutable before being delivered to an AccessibilityService.
128170e96ebf69f91da84681a6263b3862c63d53ab11alanv     * </p>
128270e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
128370e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @param root The root of the virtual subtree.
128470e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @param virtualDescendantId The id of the virtual descendant.
128570e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
128670e96ebf69f91da84681a6263b3862c63d53ab11alanv    public void setParent(View root, int virtualDescendantId) {
128770e96ebf69f91da84681a6263b3862c63d53ab11alanv        IMPL.setParent(mInfo, root, virtualDescendantId);
128870e96ebf69f91da84681a6263b3862c63d53ab11alanv    }
128970e96ebf69f91da84681a6263b3862c63d53ab11alanv
129070e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
12919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets the node bounds in parent coordinates.
12929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
12939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param outBounds The output node bounds.
12949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
12959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void getBoundsInParent(Rect outBounds) {
12969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.getBoundsInParent(mInfo, outBounds);
12979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
12989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
12999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
13009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets the node bounds in parent coordinates.
13019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
13029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
13039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
13049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
13059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
13069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
13079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param bounds The node bounds.
13089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *@throws IllegalStateException If called from an AccessibilityService.
13099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
13109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setBoundsInParent(Rect bounds) {
13119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setBoundsInParent(mInfo, bounds);
13129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
13139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
13149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
13159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets the node bounds in screen coordinates.
13169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
13179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param outBounds The output node bounds.
13189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
13199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void getBoundsInScreen(Rect outBounds) {
13209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.getBoundsInScreen(mInfo, outBounds);
13219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
13229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
13239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
13249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets the node bounds in screen coordinates.
13259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
13269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
13279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
13289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
13299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
13309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
13319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param bounds The node bounds.
13329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
13339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
13349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setBoundsInScreen(Rect bounds) {
13353a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov        IMPL.setBoundsInScreen(mInfo, bounds);
13369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
13379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
13389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
13399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets whether this node is checkable.
13409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
13419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return True if the node is checkable.
13429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
13439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean isCheckable() {
13449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.isCheckable(mInfo);
13459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
13469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
13479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
13489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets whether this node is checkable.
13499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
13509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
13519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
13529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
13539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
13549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
13559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param checkable True if the node is checkable.
13569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
13579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
13589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setCheckable(boolean checkable) {
13599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setCheckable(mInfo, checkable);
13609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
13619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
13629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
13639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets whether this node is checked.
13649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
13659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return True if the node is checked.
13669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
13679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean isChecked() {
13689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.isChecked(mInfo);
13699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
13709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
13719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
13729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets whether this node is checked.
13739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
13749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
13759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
13769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
13779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
13789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
13799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param checked True if the node is checked.
13809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
13819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
13829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setChecked(boolean checked) {
13839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setChecked(mInfo, checked);
13849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
13859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
13869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
13879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets whether this node is focusable.
13889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
13899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return True if the node is focusable.
13909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
13919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean isFocusable() {
13929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.isFocusable(mInfo);
13939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
13949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
13959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
13969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets whether this node is focusable.
13979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
13989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
13999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
14009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
14019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
14029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
14039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param focusable True if the node is focusable.
14049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
14059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
14069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setFocusable(boolean focusable) {
14079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setFocusable(mInfo, focusable);
14089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
14099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
14109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
14119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets whether this node is focused.
14129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
14139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return True if the node is focused.
14149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
14159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean isFocused() {
14169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.isFocused(mInfo);
14179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
14189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
14199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
14209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets whether this node is focused.
14219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
14229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
14239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
14249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
14259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
14269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
14279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param focused True if the node is focused.
14289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
14299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
14309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setFocused(boolean focused) {
14319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setFocused(mInfo, focused);
14329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
14339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
14349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
143570e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Sets whether this node is visible to the user.
143670e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
143770e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @return Whether the node is visible to the user.
143870e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
143970e96ebf69f91da84681a6263b3862c63d53ab11alanv    public boolean isVisibleToUser() {
144070e96ebf69f91da84681a6263b3862c63d53ab11alanv        return IMPL.isVisibleToUser(mInfo);
144170e96ebf69f91da84681a6263b3862c63d53ab11alanv    }
144270e96ebf69f91da84681a6263b3862c63d53ab11alanv
144370e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
144470e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Sets whether this node is visible to the user.
144570e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <p>
144670e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   <strong>Note:</strong> Cannot be called from an
144770e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   {@link android.accessibilityservice.AccessibilityService}.
144870e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   This class is made immutable before being delivered to an AccessibilityService.
144970e96ebf69f91da84681a6263b3862c63d53ab11alanv     * </p>
145070e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
145170e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @param visibleToUser Whether the node is visible to the user.
145270e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
145370e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @throws IllegalStateException If called from an AccessibilityService.
145470e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
145570e96ebf69f91da84681a6263b3862c63d53ab11alanv    public void setVisibleToUser(boolean visibleToUser) {
145670e96ebf69f91da84681a6263b3862c63d53ab11alanv        IMPL.setVisibleToUser(mInfo, visibleToUser);
145770e96ebf69f91da84681a6263b3862c63d53ab11alanv    }
145870e96ebf69f91da84681a6263b3862c63d53ab11alanv
145970e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
146070e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Gets whether this node is accessibility focused.
146170e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
146270e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @return True if the node is accessibility focused.
146370e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
146470e96ebf69f91da84681a6263b3862c63d53ab11alanv    public boolean isAccessibilityFocused() {
146570e96ebf69f91da84681a6263b3862c63d53ab11alanv        return IMPL.isAccessibilityFocused(mInfo);
146670e96ebf69f91da84681a6263b3862c63d53ab11alanv    }
146770e96ebf69f91da84681a6263b3862c63d53ab11alanv
146870e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
146970e96ebf69f91da84681a6263b3862c63d53ab11alanv     * Sets whether this node is accessibility focused.
147070e96ebf69f91da84681a6263b3862c63d53ab11alanv     * <p>
147170e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   <strong>Note:</strong> Cannot be called from an
147270e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   {@link android.accessibilityservice.AccessibilityService}.
147370e96ebf69f91da84681a6263b3862c63d53ab11alanv     *   This class is made immutable before being delivered to an AccessibilityService.
147470e96ebf69f91da84681a6263b3862c63d53ab11alanv     * </p>
147570e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
147670e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @param focused True if the node is accessibility focused.
147770e96ebf69f91da84681a6263b3862c63d53ab11alanv     *
147870e96ebf69f91da84681a6263b3862c63d53ab11alanv     * @throws IllegalStateException If called from an AccessibilityService.
147970e96ebf69f91da84681a6263b3862c63d53ab11alanv     */
148070e96ebf69f91da84681a6263b3862c63d53ab11alanv    public void setAccessibilityFocused(boolean focused) {
148170e96ebf69f91da84681a6263b3862c63d53ab11alanv        IMPL.setAccessibilityFocused(mInfo, focused);
148270e96ebf69f91da84681a6263b3862c63d53ab11alanv    }
148370e96ebf69f91da84681a6263b3862c63d53ab11alanv
148470e96ebf69f91da84681a6263b3862c63d53ab11alanv    /**
14859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets whether this node is selected.
14869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
14879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return True if the node is selected.
14889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
14899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean isSelected() {
14909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.isSelected(mInfo);
14919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
14929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
14939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
14949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets whether this node is selected.
14959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
14969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
14979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
14989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
14999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
15009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
15019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param selected True if the node is selected.
15029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
15039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
15049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setSelected(boolean selected) {
15059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setSelected(mInfo, selected);
15069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
15079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
15089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
15099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets whether this node is clickable.
15109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
15119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return True if the node is clickable.
15129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
15139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean isClickable() {
15149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.isClickable(mInfo);
15159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
15169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
15179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
15189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets whether this node is clickable.
15199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
15209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
15219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
15229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
15239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
15249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
15259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param clickable True if the node is clickable.
15269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
15279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
15289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setClickable(boolean clickable) {
15299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setClickable(mInfo, clickable);
15309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
15319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
15329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
15339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets whether this node is long clickable.
15349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
15359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return True if the node is long clickable.
15369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
15379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean isLongClickable() {
15389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.isLongClickable(mInfo);
15399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
15409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
15419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
15429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets whether this node is long clickable.
15439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
15449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
15459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
15469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
15479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
15489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
15499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param longClickable True if the node is long clickable.
15509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
15519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
15529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setLongClickable(boolean longClickable) {
15539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setLongClickable(mInfo, longClickable);
15549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
15559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
15569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
15579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets whether this node is enabled.
15589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
15599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return True if the node is enabled.
15609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
15619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean isEnabled() {
15629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.isEnabled(mInfo);
15639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
15649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
15659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
15669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets whether this node is enabled.
15679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
15689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
15699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
15709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
15719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
15729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
15739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param enabled True if the node is enabled.
15749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
15759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
15769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setEnabled(boolean enabled) {
15779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setEnabled(mInfo, enabled);
15789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
15799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
15809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
15819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets whether this node is a password.
15829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
15839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return True if the node is a password.
15849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
15859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean isPassword() {
15869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.isPassword(mInfo);
15879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
15889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
15899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
15909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets whether this node is a password.
15919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
15929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
15939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
15949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
15959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
15969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
15979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param password True if the node is a password.
15989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
15999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
16009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setPassword(boolean password) {
16019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setPassword(mInfo, password);
16029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
16039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
16049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
16059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets if the node is scrollable.
16069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
16079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return True if the node is scrollable, false otherwise.
16089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
16099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean isScrollable() {
16109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.isScrollable(mInfo);
16119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
16129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
16139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
16149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets if the node is scrollable.
16159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
16169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
16179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
16189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
16199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
16209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
16219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param scrollable True if the node is scrollable, false otherwise.
16229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
16239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
16249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setScrollable(boolean scrollable) {
16259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setScrollable(mInfo, scrollable);
16269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
16279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
16289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
16299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets the package this node comes from.
16309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
16319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return The package name.
16329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
16339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public CharSequence getPackageName() {
16349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.getPackageName(mInfo);
16359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
16369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
16379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
16389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets the package this node comes from.
16399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
16409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
16419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
16429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
16439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
16449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
16459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param packageName The package name.
16469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
16479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
16489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setPackageName(CharSequence packageName) {
16499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setPackageName(mInfo, packageName);
16509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
16519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
16529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
16539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets the class this node comes from.
16549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
16559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return The class name.
16569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
16579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public CharSequence getClassName() {
16589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.getClassName(mInfo);
16599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
16609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
16619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
16629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets the class this node comes from.
16639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
16649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
16659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
16669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
16679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
16689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
16699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param className The class name.
16709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
16719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
16729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setClassName(CharSequence className) {
16739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setClassName(mInfo, className);
16749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
16759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
16769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
16779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets the text of this node.
16789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
16799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return The text.
16809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
16819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public CharSequence getText() {
16829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.getText(mInfo);
16839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
16849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
16859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
16869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets the text of this node.
16879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
16889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
16899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
16909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
16919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
16929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
16939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param text The text.
16949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
16959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
16969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setText(CharSequence text) {
16979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setText(mInfo, text);
16989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
16999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
17009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
17019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Gets the content description of this node.
17029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
17039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @return The content description.
17049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
17059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public CharSequence getContentDescription() {
17069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return IMPL.getContentDescription(mInfo);
17079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
17089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
17099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
17109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Sets the content description of this node.
17119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
17129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> Cannot be called from an
17139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * {@link android.accessibilityservice.AccessibilityService}. This class is
17149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * made immutable before being delivered to an AccessibilityService.
17159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * </p>
17169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
17179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @param contentDescription The content description.
17189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If called from an AccessibilityService.
17199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
17209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void setContentDescription(CharSequence contentDescription) {
17219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.setContentDescription(mInfo, contentDescription);
17229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
17239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
17249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    /**
17259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * Return an instance back to be reused.
17269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <p>
17279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * <strong>Note:</strong> You must not touch the object after calling this function.
17289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     *
17299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     * @throws IllegalStateException If the info is already recycled.
17309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov     */
17319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public void recycle() {
17329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        IMPL.recycle(mInfo);
17339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
17349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
17359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    @Override
17369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public int hashCode() {
17379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return (mInfo == null) ? 0 : mInfo.hashCode();
17389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
17399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
17409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    @Override
17419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public boolean equals(Object obj) {
17429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        if (this == obj) {
17439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return true;
17449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
17459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        if (obj == null) {
17469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
17479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
17489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        if (getClass() != obj.getClass()) {
17499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
17509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
17519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        AccessibilityNodeInfoCompat other = (AccessibilityNodeInfoCompat) obj;
17529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        if (mInfo == null) {
17539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            if (other.mInfo != null) {
17549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov                return false;
17559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            }
17569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        } else if (!mInfo.equals(other.mInfo)) {
17579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov            return false;
17589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        }
17599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return true;
17609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
17619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov}
1762