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.os.Parcelable;
209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovimport android.view.View;
219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovimport android.view.accessibility.AccessibilityRecord;
229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovimport java.util.List;
249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov/**
269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * ICS specific AccessibilityRecord API implementation.
279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */
289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovclass AccessibilityRecordCompatIcs {
299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static Object obtain() {
319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return AccessibilityRecord.obtain();
329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static Object obtain(Object record) {
359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return AccessibilityRecord.obtain((AccessibilityRecord) record);
369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static int getAddedCount(Object record) {
399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityRecord) record).getAddedCount();
409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static CharSequence getBeforeText(Object record) {
439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityRecord) record).getBeforeText();
449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static CharSequence getClassName(Object record) {
479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityRecord) record).getClassName();
489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static CharSequence getContentDescription(Object record) {
519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityRecord) record).getContentDescription();
529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static int getCurrentItemIndex(Object record) {
559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityRecord) record).getCurrentItemIndex();
569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static int getFromIndex(Object record) {
599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityRecord) record).getFromIndex();
609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static int getItemCount(Object record) {
639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityRecord) record).getItemCount();
649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov//  TODO: Uncomment when these APIs become public
679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov//    public static int getMaxScrollX(Object record) {
689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov//        return ((AccessibilityRecord) record).getMaxScrollX();
699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov//    }
709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov//
719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov//    public static int getMaxScrollY(Object record) {
729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov//        return ((AccessibilityRecord) record).getMaxScrollY();
739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov//    }
749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static Parcelable getParcelableData(Object record) {
769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityRecord) record).getParcelableData();
779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static int getRemovedCount(Object record) {
809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityRecord) record).getRemovedCount();
819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static int getScrollX(Object record) {
849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityRecord) record).getScrollX();
859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static int getScrollY(Object record) {
889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityRecord) record).getScrollY();
899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static Object getSource(Object record) {
929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityRecord) record).getSource();
939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static List<CharSequence> getText(Object record) {
969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityRecord) record).getText();
979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static int getToIndex(Object record) {
1009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityRecord) record).getToIndex();
1019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static int getWindowId(Object record) {
1049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityRecord) record).getWindowId();
1059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static boolean isChecked(Object record) {
1089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityRecord) record).isChecked();
1099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static boolean isEnabled(Object record) {
1129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityRecord) record).isEnabled();
1139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static boolean isFullScreen(Object record) {
1169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityRecord) record).isFullScreen();
1179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static boolean isPassword(Object record) {
1209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityRecord) record).isPassword();
1219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static boolean isScrollable(Object record) {
1249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        return ((AccessibilityRecord) record).isScrollable();
1259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void recycle(Object record) {
1289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityRecord) record).recycle();
1299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setAddedCount(Object record, int addedCount) {
1329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityRecord) record).setAddedCount(addedCount);
1339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setBeforeText(Object record, CharSequence beforeText) {
1369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityRecord) record).setBeforeText(beforeText);
1379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setChecked(Object record, boolean isChecked) {
1409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityRecord) record).setChecked(isChecked);
1419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setClassName(Object record, CharSequence className) {
1449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityRecord) record).setClassName(className);
1459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setContentDescription(Object record, CharSequence contentDescription) {
1489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityRecord) record).setContentDescription(contentDescription);
1499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setCurrentItemIndex(Object record, int currentItemIndex) {
1529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityRecord) record).setCurrentItemIndex(currentItemIndex);
1539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setEnabled(Object record, boolean isEnabled) {
1569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityRecord) record).setEnabled(isEnabled);
1579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setFromIndex(Object record, int fromIndex) {
1609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityRecord) record).setFromIndex(fromIndex);
1619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setFullScreen(Object record, boolean isFullScreen) {
1649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityRecord) record).setFullScreen(isFullScreen);
1659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setItemCount(Object record, int itemCount) {
1689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityRecord) record).setItemCount(itemCount);
1699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov//  TODO: Uncomment when these APIs become public
1729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov//    public static void setMaxScrollX(Object record, int maxScrollX) {
1739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov//        ((AccessibilityRecord) record).setMaxScrollX(maxScrollX);
1749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov//    }
1759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov//
1769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov//    public static void setMaxScrollY(Object record, int maxScrollY) {
1779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov//        ((AccessibilityRecord) record).setMaxScrollY(maxScrollY);
1789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov//    }
1799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setParcelableData(Object record, Parcelable parcelableData) {
1819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityRecord) record).setParcelableData(parcelableData);
1829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setPassword(Object record, boolean isPassword) {
1859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityRecord) record).setPassword(isPassword);
1869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setRemovedCount(Object record, int removedCount) {
1899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityRecord) record).setRemovedCount(removedCount);
1909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setScrollX(Object record, int scrollX) {
1939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityRecord) record).setScrollX(scrollX);
1949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
1969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setScrollY(Object record, int scrollY) {
1979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityRecord) record).setScrollY(scrollY);
1989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
1999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setScrollable(Object record, boolean scrollable) {
2019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityRecord) record).setScrollable(scrollable);
2029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
2039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setSource(Object record, View source) {
2059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityRecord) record).setSource(source);
2069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
2079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov
2089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    public static void setToIndex(Object record, int toIndex) {
2099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov        ((AccessibilityRecord) record).setToIndex(toIndex);
2109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov    }
2119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov}
212