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.view.View;
219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovimport android.view.accessibility.AccessibilityNodeInfo;
229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovimport java.util.List;
249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov/**
269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * ICS specific AccessibilityNodeInfo API implementation.
279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */
289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovclass AccessibilityNodeInfoCompatIcs {
299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static Object obtain() {
319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return AccessibilityNodeInfo.obtain();
329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static Object obtain(View source) {
359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return AccessibilityNodeInfo.obtain(source);
369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static Object obtain(Object info) {
399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return AccessibilityNodeInfo.obtain((AccessibilityNodeInfo) info);
409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void addAction(Object info, int action) {
439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityNodeInfo) info).addAction(action);
449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void addChild(Object info, View child) {
479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityNodeInfo) info).addChild(child);
489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    @SuppressWarnings("unchecked")
519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static List<Object> findAccessibilityNodeInfosByText(Object info, String text) {
529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        Object result = ((AccessibilityNodeInfo) info).findAccessibilityNodeInfosByText(text);
539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return (List<Object>) result;
549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static int getActions(Object info) {
579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityNodeInfo) info).getActions();
589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void getBoundsInParent(Object info, Rect outBounds) {
619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityNodeInfo) info).getBoundsInParent(outBounds);
629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void getBoundsInScreen(Object info, Rect outBounds) {
659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityNodeInfo) info).getBoundsInScreen(outBounds);
669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static Object getChild(Object info, int index) {
699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityNodeInfo) info).getChild(index);
709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static int getChildCount(Object info) {
739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityNodeInfo) info).getChildCount();
749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static CharSequence getClassName(Object info) {
779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityNodeInfo) info).getClassName();
789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static CharSequence getContentDescription(Object info) {
819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityNodeInfo) info).getContentDescription();
829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static CharSequence getPackageName(Object info) {
859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityNodeInfo) info).getPackageName();
869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static Object getParent(Object info) {
899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityNodeInfo) info).getParent();
909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static CharSequence getText(Object info) {
939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityNodeInfo) info).getText();
949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static int getWindowId(Object info) {
979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityNodeInfo) info).getWindowId();
989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static boolean isCheckable(Object info) {
1019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityNodeInfo) info).isCheckable();
1029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static boolean isChecked(Object info) {
1059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityNodeInfo) info).isChecked();
1069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static boolean isClickable(Object info) {
1099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityNodeInfo) info).isClickable();
1109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static boolean isEnabled(Object info) {
1139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityNodeInfo) info).isEnabled();
1149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static boolean isFocusable(Object info) {
1179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityNodeInfo) info).isFocusable();
1189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static boolean isFocused(Object info) {
1219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityNodeInfo) info).isFocused();
1229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static boolean isLongClickable(Object info) {
1259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityNodeInfo) info).isLongClickable();
1269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static boolean isPassword(Object info) {
1299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityNodeInfo) info).isPassword();
1309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static boolean isScrollable(Object info) {
1339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityNodeInfo) info).isScrollable();
1349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static boolean isSelected(Object info) {
1379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityNodeInfo) info).isSelected();
1389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static boolean performAction(Object info, int action) {
1419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityNodeInfo) info).performAction(action);
1429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setBoundsInParent(Object info, Rect bounds) {
1459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityNodeInfo) info).setBoundsInParent(bounds);
1469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setBoundsInScreen(Object info, Rect bounds) {
1499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityNodeInfo) info).setBoundsInScreen(bounds);
1509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setCheckable(Object info, boolean checkable) {
1539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityNodeInfo) info).setCheckable(checkable);
1549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setChecked(Object info, boolean checked) {
1579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityNodeInfo) info).setChecked(checked);
1589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setClassName(Object info, CharSequence className) {
1619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityNodeInfo) info).setClassName(className);
1629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setClickable(Object info, boolean clickable) {
1659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityNodeInfo) info).setClickable(clickable);
1669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setContentDescription(Object info, CharSequence contentDescription) {
1699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityNodeInfo) info).setContentDescription(contentDescription);
1709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setEnabled(Object info, boolean enabled) {
1739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityNodeInfo) info).setEnabled(enabled);
1749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setFocusable(Object info, boolean focusable) {
1779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityNodeInfo) info).setFocusable(focusable);
1789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setFocused(Object info, boolean focused) {
1819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityNodeInfo) info).setFocused(focused);
1829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setLongClickable(Object info, boolean longClickable) {
1859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityNodeInfo) info).setLongClickable(longClickable);
1869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setPackageName(Object info, CharSequence packageName) {
1899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityNodeInfo) info).setPackageName(packageName);
1909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setParent(Object info, View parent) {
1939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityNodeInfo) info).setParent(parent);
1949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setPassword(Object info, boolean password) {
1979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityNodeInfo) info).setPassword(password);
1989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setScrollable(Object info, boolean scrollable) {
2019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityNodeInfo) info).setScrollable(scrollable);
2029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
2039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setSelected(Object info, boolean selected) {
2059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityNodeInfo) info).setSelected(selected);
2069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
2079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setSource(Object info, View source) {
2099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityNodeInfo) info).setSource(source);
2109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
2119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setText(Object info, CharSequence text) {
2139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityNodeInfo) info).setText(text);
2149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
2159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void recycle(Object info) {
2179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityNodeInfo) info).recycle();
2189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
2199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov}
220