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