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 17 package android.support.v4.view.accessibility; 18 19 import android.os.Bundle; 20 import android.view.accessibility.AccessibilityNodeInfo; 21 22 /** 23 * KitKat-specific AccessibilityNodeInfo API implementation. 24 */ 25 class AccessibilityNodeInfoCompatKitKat { 26 static int getLiveRegion(Object info) { 27 return ((AccessibilityNodeInfo) info).getLiveRegion(); 28 } 29 30 static void setLiveRegion(Object info, int mode) { 31 ((AccessibilityNodeInfo) info).setLiveRegion(mode); 32 } 33 34 static Object getCollectionInfo(Object info) { 35 return ((AccessibilityNodeInfo) info).getCollectionInfo(); 36 } 37 38 static Object getCollectionItemInfo(Object info) { 39 return ((AccessibilityNodeInfo) info).getCollectionItemInfo(); 40 } 41 42 public static void setCollectionInfo(Object info, Object collectionInfo) { 43 ((AccessibilityNodeInfo) info).setCollectionInfo( 44 (AccessibilityNodeInfo.CollectionInfo)collectionInfo); 45 } 46 47 public static void setCollectionItemInfo(Object info, Object collectionItemInfo) { 48 ((AccessibilityNodeInfo) info).setCollectionItemInfo( 49 (AccessibilityNodeInfo.CollectionItemInfo) collectionItemInfo); 50 } 51 52 static Object getRangeInfo(Object info) { 53 return ((AccessibilityNodeInfo) info).getRangeInfo(); 54 } 55 56 public static void setRangeInfo(Object info, Object rangeInfo) { 57 ((AccessibilityNodeInfo) info).setRangeInfo((AccessibilityNodeInfo.RangeInfo) rangeInfo); 58 } 59 60 public static Object obtainCollectionInfo(int rowCount, int columnCount, 61 boolean hierarchical, int selectionMode) { 62 return AccessibilityNodeInfo.CollectionInfo.obtain(rowCount, columnCount, hierarchical); 63 } 64 65 public static Object obtainCollectionItemInfo(int rowIndex, int rowSpan, int columnIndex, 66 int columnSpan, boolean heading) { 67 return AccessibilityNodeInfo.CollectionItemInfo.obtain(rowIndex, rowSpan, columnIndex, 68 columnSpan, heading); 69 } 70 71 public static void setContentInvalid(Object info, boolean contentInvalid) { 72 ((AccessibilityNodeInfo) info).setContentInvalid(contentInvalid); 73 } 74 75 public static boolean isContentInvalid(Object info) { 76 return ((AccessibilityNodeInfo) info).isContentInvalid(); 77 } 78 79 public static boolean canOpenPopup(Object info) { 80 return ((AccessibilityNodeInfo) info).canOpenPopup(); 81 } 82 83 public static void setCanOpenPopup(Object info, boolean opensPopup) { 84 ((AccessibilityNodeInfo) info).setCanOpenPopup(opensPopup); 85 } 86 87 public static Bundle getExtras(Object info) { 88 return ((AccessibilityNodeInfo) info).getExtras(); 89 } 90 91 public static int getInputType(Object info) { 92 return ((AccessibilityNodeInfo) info).getInputType(); 93 } 94 95 public static void setInputType(Object info, int inputType) { 96 ((AccessibilityNodeInfo) info).setInputType(inputType); 97 } 98 99 public static boolean isDismissable(Object info) { 100 return ((AccessibilityNodeInfo) info).isDismissable(); 101 } 102 103 public static void setDismissable(Object info, boolean dismissable) { 104 ((AccessibilityNodeInfo) info).setDismissable(dismissable); 105 } 106 107 public static boolean isMultiLine(Object info) { 108 return ((AccessibilityNodeInfo) info).isMultiLine(); 109 } 110 111 public static void setMultiLine(Object info, boolean multiLine) { 112 ((AccessibilityNodeInfo) info).setMultiLine(multiLine); 113 } 114 115 static class CollectionInfo { 116 static int getColumnCount(Object info) { 117 return ((AccessibilityNodeInfo.CollectionInfo) info).getColumnCount(); 118 } 119 120 static int getRowCount(Object info) { 121 return ((AccessibilityNodeInfo.CollectionInfo) info).getRowCount(); 122 } 123 124 static boolean isHierarchical(Object info) { 125 return ((AccessibilityNodeInfo.CollectionInfo) info).isHierarchical(); 126 } 127 } 128 129 static class CollectionItemInfo { 130 static int getColumnIndex(Object info) { 131 return ((AccessibilityNodeInfo.CollectionItemInfo) info).getColumnIndex(); 132 } 133 134 static int getColumnSpan(Object info) { 135 return ((AccessibilityNodeInfo.CollectionItemInfo) info).getColumnSpan(); 136 } 137 138 static int getRowIndex(Object info) { 139 return ((AccessibilityNodeInfo.CollectionItemInfo) info).getRowIndex(); 140 } 141 142 static int getRowSpan(Object info) { 143 return ((AccessibilityNodeInfo.CollectionItemInfo) info).getRowSpan(); 144 } 145 146 static boolean isHeading(Object info) { 147 return ((AccessibilityNodeInfo.CollectionItemInfo) info).isHeading(); 148 } 149 } 150 151 static class RangeInfo { 152 static float getCurrent(Object info) { 153 return ((AccessibilityNodeInfo.RangeInfo) info).getCurrent(); 154 } 155 156 static float getMax(Object info) { 157 return ((AccessibilityNodeInfo.RangeInfo) info).getMax(); 158 } 159 160 static float getMin(Object info) { 161 return ((AccessibilityNodeInfo.RangeInfo) info).getMin(); 162 } 163 164 static int getType(Object info) { 165 return ((AccessibilityNodeInfo.RangeInfo) info).getType(); 166 } 167 } 168 } 169