1/*
2 * Copyright (C) 2012 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package android.support.v4.view.accessibility;
18
19import android.view.accessibility.AccessibilityNodeInfo;
20
21/**
22 * KitKat-specific AccessibilityNodeInfo API implementation.
23 */
24class AccessibilityNodeInfoCompatKitKat {
25    static int getLiveRegion(Object info) {
26        return ((AccessibilityNodeInfo) info).getLiveRegion();
27    }
28
29    static void setLiveRegion(Object info, int mode) {
30        ((AccessibilityNodeInfo) info).setLiveRegion(mode);
31    }
32
33    static Object getCollectionInfo(Object info) {
34        return ((AccessibilityNodeInfo) info).getCollectionInfo();
35    }
36
37    static Object getCollectionItemInfo(Object info) {
38        return ((AccessibilityNodeInfo) info).getCollectionItemInfo();
39    }
40
41    public static void setCollectionInfo(Object info, Object collectionInfo) {
42        ((AccessibilityNodeInfo) info).setCollectionInfo(
43                (AccessibilityNodeInfo.CollectionInfo)collectionInfo);
44    }
45
46    public static void setCollectionItemInfo(Object info, Object collectionItemInfo) {
47        ((AccessibilityNodeInfo) info).setCollectionItemInfo(
48                (AccessibilityNodeInfo.CollectionItemInfo) collectionItemInfo);
49    }
50
51    static Object getRangeInfo(Object info) {
52        return ((AccessibilityNodeInfo) info).getRangeInfo();
53    }
54
55    public static Object obtainCollectionInfo(int rowCount, int columnCount,
56            boolean hierarchical, int selectionMode) {
57        return AccessibilityNodeInfo.CollectionInfo.obtain(rowCount, columnCount, hierarchical);
58    }
59
60    public static Object obtainCollectionItemInfo(int rowIndex, int rowSpan, int columnIndex,
61            int columnSpan, boolean heading) {
62        return AccessibilityNodeInfo.CollectionItemInfo.obtain(rowIndex, rowSpan, columnIndex,
63                columnSpan, heading);
64    }
65
66    static class CollectionInfo {
67        static int getColumnCount(Object info) {
68            return ((AccessibilityNodeInfo.CollectionInfo) info).getColumnCount();
69        }
70
71        static int getRowCount(Object info) {
72            return ((AccessibilityNodeInfo.CollectionInfo) info).getRowCount();
73        }
74
75        static boolean isHierarchical(Object info) {
76            return ((AccessibilityNodeInfo.CollectionInfo) info).isHierarchical();
77        }
78    }
79
80    static class CollectionItemInfo {
81        static int getColumnIndex(Object info) {
82            return ((AccessibilityNodeInfo.CollectionItemInfo) info).getColumnIndex();
83        }
84
85        static int getColumnSpan(Object info) {
86            return ((AccessibilityNodeInfo.CollectionItemInfo) info).getColumnSpan();
87        }
88
89        static int getRowIndex(Object info) {
90            return ((AccessibilityNodeInfo.CollectionItemInfo) info).getRowIndex();
91        }
92
93        static int getRowSpan(Object info) {
94            return ((AccessibilityNodeInfo.CollectionItemInfo) info).getRowSpan();
95        }
96
97        static boolean isHeading(Object info) {
98            return ((AccessibilityNodeInfo.CollectionItemInfo) info).isHeading();
99        }
100    }
101
102    static class RangeInfo {
103        static float getCurrent(Object info) {
104            return ((AccessibilityNodeInfo.RangeInfo) info).getCurrent();
105        }
106
107        static float getMax(Object info) {
108            return ((AccessibilityNodeInfo.RangeInfo) info).getMax();
109        }
110
111        static float getMin(Object info) {
112            return ((AccessibilityNodeInfo.RangeInfo) info).getMin();
113        }
114
115        static int getType(Object info) {
116            return ((AccessibilityNodeInfo.RangeInfo) info).getType();
117        }
118    }
119}
120