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.Build; 209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovimport android.view.accessibility.AccessibilityEvent; 219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov/** 230574ca37da4619afe4e26753f5a1b4de314b6565Svetoslav Ganov * Helper for accessing features in {@link AccessibilityEvent} 240574ca37da4619afe4e26753f5a1b4de314b6565Svetoslav Ganov * introduced after API level 4 in a backwards compatible fashion. 259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 2617f0ca51e84eb8d9f70a64e97de1151739a04406Chris Banespublic final class AccessibilityEventCompat { 279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov static interface AccessibilityEventVersionImpl { 292bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar int getRecordCount(AccessibilityEvent event); 302bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar void appendRecord(AccessibilityEvent event, Object record); 312bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar Object getRecord(AccessibilityEvent event, int index); 322bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar void setContentChangeTypes(AccessibilityEvent event, int types); 332bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar int getContentChangeTypes(AccessibilityEvent event); 349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov static class AccessibilityEventStubImpl implements AccessibilityEventVersionImpl { 379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 38b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv @Override 399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void appendRecord(AccessibilityEvent event, Object record) { 409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 43b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv @Override 449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public Object getRecord(AccessibilityEvent event, int index) { 459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return null; 469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 48b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv @Override 492bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar public void setContentChangeTypes(AccessibilityEvent event, int types) { 502bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar 512bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar } 522bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar 532bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar @Override 549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public int getRecordCount(AccessibilityEvent event) { 559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return 0; 569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 572bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar 582bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar @Override 592bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar public int getContentChangeTypes(AccessibilityEvent event) { 602bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar return 0; 612bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar } 629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov static class AccessibilityEventIcsImpl extends AccessibilityEventStubImpl { 659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void appendRecord(AccessibilityEvent event, Object record) { 689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov AccessibilityEventCompatIcs.appendRecord(event, record); 699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public Object getRecord(AccessibilityEvent event, int index) { 739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return AccessibilityEventCompatIcs.getRecord(event, index); 749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public int getRecordCount(AccessibilityEvent event) { 789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return AccessibilityEventCompatIcs.getRecordCount(event); 799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 822bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar static class AccessibilityEventKitKatImpl extends AccessibilityEventIcsImpl { 832bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar 842bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar @Override 852bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar public void setContentChangeTypes(AccessibilityEvent event, int types) { 862bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar AccessibilityEventCompatKitKat.setContentChangeTypes(event, types); 872bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar } 882bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar 892bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar @Override 902bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar public int getContentChangeTypes(AccessibilityEvent event) { 912bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar return AccessibilityEventCompatKitKat.getContentChangeTypes(event); 922bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar } 932bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar } 942bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar 959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov private final static AccessibilityEventVersionImpl IMPL; 969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov static { 982bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar if (Build.VERSION.SDK_INT >= 19) { // KitKat 992bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar IMPL = new AccessibilityEventKitKatImpl(); 1002bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar } else if (Build.VERSION.SDK_INT >= 14) { // ICS 1019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov IMPL = new AccessibilityEventIcsImpl(); 1029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } else { 1039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov IMPL = new AccessibilityEventStubImpl(); 1049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 1059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 1069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 1079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 1089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Represents the event of a hover enter over a {@link android.view.View}. 1099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 1109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public static final int TYPE_VIEW_HOVER_ENTER = 0x00000080; 1119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 1129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 1139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Represents the event of a hover exit over a {@link android.view.View}. 1149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 1159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public static final int TYPE_VIEW_HOVER_EXIT = 0x00000100; 1169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 1179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 1189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Represents the event of starting a touch exploration gesture. 1199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 1209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public static final int TYPE_TOUCH_EXPLORATION_GESTURE_START = 0x00000200; 1219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 1229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 1239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Represents the event of ending a touch exploration gesture. 1249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 1259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public static final int TYPE_TOUCH_EXPLORATION_GESTURE_END = 0x00000400; 1269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 1279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 1289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Represents the event of changing the content of a window. 1299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 1309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public static final int TYPE_WINDOW_CONTENT_CHANGED = 0x00000800; 1319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 1329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 1339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Represents the event of scrolling a view. 1349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 1359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public static final int TYPE_VIEW_SCROLLED = 0x00001000; 1369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 1379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 1389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Represents the event of changing the selection in an {@link android.widget.EditText}. 1399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 1409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public static final int TYPE_VIEW_TEXT_SELECTION_CHANGED = 0x00002000; 1419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 142b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv /** 143b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv * Represents the event of an application making an announcement. 144b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv */ 145b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv public static final int TYPE_ANNOUNCEMENT = 0x00004000; 146b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv 147b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv /** 148b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv * Represents the event of gaining accessibility focus. 149b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv */ 150b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv public static final int TYPE_VIEW_ACCESSIBILITY_FOCUSED = 0x00008000; 151b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv 152b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv /** 153b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv * Represents the event of clearing accessibility focus. 154b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv */ 155b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv public static final int TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED = 0x00010000; 156b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv 157b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv /** 158b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv * Represents the event of traversing the text of a view at a given movement granularity. 159b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv */ 160b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv public static final int TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY = 0x00020000; 161b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv 162b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv /** 163b047962755c59a9855328ed273bae33a0663e21aCasey Burkhardt * Represents the event of beginning gesture detection. 164b047962755c59a9855328ed273bae33a0663e21aCasey Burkhardt */ 165b047962755c59a9855328ed273bae33a0663e21aCasey Burkhardt public static final int TYPE_GESTURE_DETECTION_START = 0x00040000; 166b047962755c59a9855328ed273bae33a0663e21aCasey Burkhardt 167b047962755c59a9855328ed273bae33a0663e21aCasey Burkhardt /** 168b047962755c59a9855328ed273bae33a0663e21aCasey Burkhardt * Represents the event of ending gesture detection. 169b047962755c59a9855328ed273bae33a0663e21aCasey Burkhardt */ 170b047962755c59a9855328ed273bae33a0663e21aCasey Burkhardt public static final int TYPE_GESTURE_DETECTION_END = 0x00080000; 171b047962755c59a9855328ed273bae33a0663e21aCasey Burkhardt 172b047962755c59a9855328ed273bae33a0663e21aCasey Burkhardt /** 173b047962755c59a9855328ed273bae33a0663e21aCasey Burkhardt * Represents the event of the user starting to touch the screen. 174b047962755c59a9855328ed273bae33a0663e21aCasey Burkhardt */ 175b047962755c59a9855328ed273bae33a0663e21aCasey Burkhardt public static final int TYPE_TOUCH_INTERACTION_START = 0x00100000; 176b047962755c59a9855328ed273bae33a0663e21aCasey Burkhardt 177b047962755c59a9855328ed273bae33a0663e21aCasey Burkhardt /** 178b047962755c59a9855328ed273bae33a0663e21aCasey Burkhardt * Represents the event of the user ending to touch the screen. 179b047962755c59a9855328ed273bae33a0663e21aCasey Burkhardt */ 180b047962755c59a9855328ed273bae33a0663e21aCasey Burkhardt public static final int TYPE_TOUCH_INTERACTION_END = 0x00200000; 181b047962755c59a9855328ed273bae33a0663e21aCasey Burkhardt 182b047962755c59a9855328ed273bae33a0663e21aCasey Burkhardt /** 1832bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar * Change type for {@link #TYPE_WINDOW_CONTENT_CHANGED} event: 1842bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar * The type of change is not defined. 1852bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar */ 1862bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar public static final int CONTENT_CHANGE_TYPE_UNDEFINED = 0x00000000; 1872bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar 1882bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar /** 1892bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar * Change type for {@link #TYPE_WINDOW_CONTENT_CHANGED} event: 1902bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar * A node in the subtree rooted at the source node was added or removed. 1912bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar */ 1922bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar public static final int CONTENT_CHANGE_TYPE_SUBTREE = 0x00000001; 1932bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar 1942bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar /** 1952bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar * Change type for {@link #TYPE_WINDOW_CONTENT_CHANGED} event: 1962bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar * The node's text changed. 1972bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar */ 1982bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar public static final int CONTENT_CHANGE_TYPE_TEXT = 0x00000002; 1992bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar 2002bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar /** 2012bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar * Change type for {@link #TYPE_WINDOW_CONTENT_CHANGED} event: 2022bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar * The node's content description changed. 2032bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar */ 2042bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar public static final int CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION = 0x00000004; 2052bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar 2062bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar /** 207b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv * Mask for {@link AccessibilityEvent} all types. 208b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv * 209b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv * @see AccessibilityEvent#TYPE_VIEW_CLICKED 210b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv * @see AccessibilityEvent#TYPE_VIEW_LONG_CLICKED 211b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv * @see AccessibilityEvent#TYPE_VIEW_SELECTED 212b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv * @see AccessibilityEvent#TYPE_VIEW_FOCUSED 213b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv * @see AccessibilityEvent#TYPE_VIEW_TEXT_CHANGED 214b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv * @see AccessibilityEvent#TYPE_WINDOW_STATE_CHANGED 215b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv * @see AccessibilityEvent#TYPE_NOTIFICATION_STATE_CHANGED 216b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv * @see #TYPE_VIEW_HOVER_ENTER 217b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv * @see #TYPE_VIEW_HOVER_EXIT 218b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv * @see #TYPE_TOUCH_EXPLORATION_GESTURE_START 219b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv * @see #TYPE_TOUCH_EXPLORATION_GESTURE_END 220b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv * @see #TYPE_WINDOW_CONTENT_CHANGED 221b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv * @see #TYPE_VIEW_SCROLLED 222b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv * @see #TYPE_VIEW_TEXT_SELECTION_CHANGED 223b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv * @see #TYPE_ANNOUNCEMENT 224b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv * @see #TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY 225b047962755c59a9855328ed273bae33a0663e21aCasey Burkhardt * @see #TYPE_GESTURE_DETECTION_START 226b047962755c59a9855328ed273bae33a0663e21aCasey Burkhardt * @see #TYPE_GESTURE_DETECTION_END 227b047962755c59a9855328ed273bae33a0663e21aCasey Burkhardt * @see #TYPE_TOUCH_INTERACTION_START 228b047962755c59a9855328ed273bae33a0663e21aCasey Burkhardt * @see #TYPE_TOUCH_INTERACTION_END 229b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv */ 230b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv public static final int TYPES_ALL_MASK = 0xFFFFFFFF; 231b1d4cb28db8b08974b651665bf4d1a7926c17b9calanv 2329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /* 2339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Hide constructor from clients. 2349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 2359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov private AccessibilityEventCompat() { 2369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 2379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 2389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 2399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 2409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Gets the number of records contained in the event. 2419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 2429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @return The number of records. 2439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 2449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public static int getRecordCount(AccessibilityEvent event) { 2459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return IMPL.getRecordCount(event); 2469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 2479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 2489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 2499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Appends an {@link android.view.accessibility.AccessibilityRecord} to the end of 2509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * event records. 2519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 2529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @param record The record to append. 2539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 2549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @throws IllegalStateException If called from an AccessibilityService. 2559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 2569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public static void appendRecord(AccessibilityEvent event, AccessibilityRecordCompat record) { 2579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov IMPL.appendRecord(event, record.getImpl()); 2589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 2599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 2609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 2619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Gets the record at a given index. 2629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 2639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @param index The index. 2649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @return The record at the specified index. 2659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 2669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public static AccessibilityRecordCompat getRecord(AccessibilityEvent event, int index) { 2679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return new AccessibilityRecordCompat(IMPL.getRecord(event, index)); 2689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 2694184a5ee0959c0071eb6eb94878de9c5408d4e5eSvetoslav 2704184a5ee0959c0071eb6eb94878de9c5408d4e5eSvetoslav /** 2714184a5ee0959c0071eb6eb94878de9c5408d4e5eSvetoslav * Creates an {@link AccessibilityRecordCompat} from an {@link AccessibilityEvent} 2724184a5ee0959c0071eb6eb94878de9c5408d4e5eSvetoslav * that can be used to manipulate the event properties defined in 2734184a5ee0959c0071eb6eb94878de9c5408d4e5eSvetoslav * {@link android.view.accessibility.AccessibilityRecord}. 2744184a5ee0959c0071eb6eb94878de9c5408d4e5eSvetoslav * <p> 2758f590dabd4e7d3fa4abfc74c91640690b63fc45aSvetoslav * <strong>Note:</strong> Do not call {@link AccessibilityRecordCompat#recycle()} on the 2768f590dabd4e7d3fa4abfc74c91640690b63fc45aSvetoslav * returned {@link AccessibilityRecordCompat}. Call {@link AccessibilityEvent#recycle()} 2774184a5ee0959c0071eb6eb94878de9c5408d4e5eSvetoslav * in case you want to recycle the event. 2784184a5ee0959c0071eb6eb94878de9c5408d4e5eSvetoslav * </p> 2794184a5ee0959c0071eb6eb94878de9c5408d4e5eSvetoslav * 2804184a5ee0959c0071eb6eb94878de9c5408d4e5eSvetoslav * @param event The from which to create a record. 2814184a5ee0959c0071eb6eb94878de9c5408d4e5eSvetoslav * @return An {@link AccessibilityRecordCompat}. 2824184a5ee0959c0071eb6eb94878de9c5408d4e5eSvetoslav */ 2834184a5ee0959c0071eb6eb94878de9c5408d4e5eSvetoslav public static AccessibilityRecordCompat asRecord(AccessibilityEvent event) { 2844184a5ee0959c0071eb6eb94878de9c5408d4e5eSvetoslav return new AccessibilityRecordCompat(event); 2854184a5ee0959c0071eb6eb94878de9c5408d4e5eSvetoslav } 2862bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar 2872bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar /** 2882bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar * Sets the bit mask of node tree changes signaled by an 2892bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar * {@link #TYPE_WINDOW_CONTENT_CHANGED} event. 2902bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar * 2912bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar * @param changeTypes The bit mask of change types. 2922bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar * @throws IllegalStateException If called from an AccessibilityService. 2932bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar * @see #getContentChangeTypes(AccessibilityEvent) 2942bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar */ 2952bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar public static void setContentChangeTypes(AccessibilityEvent event, int changeTypes) { 2962bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar IMPL.setContentChangeTypes(event, changeTypes); 2972bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar } 2982bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar 2992bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar /** 3002bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar * Gets the bit mask of change types signaled by an 3012bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar * {@link #TYPE_WINDOW_CONTENT_CHANGED} event. A single event may represent 3022bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar * multiple change types. 3032bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar * 3042bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar * @return The bit mask of change types. One or more of: 3052bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar * <ul> 3062bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar * <li>{@link AccessibilityEvent#CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION} 3072bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar * <li>{@link AccessibilityEvent#CONTENT_CHANGE_TYPE_SUBTREE} 3082bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar * <li>{@link AccessibilityEvent#CONTENT_CHANGE_TYPE_TEXT} 3092bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar * <li>{@link AccessibilityEvent#CONTENT_CHANGE_TYPE_UNDEFINED} 3102bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar * </ul> 3112bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar */ 3122bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar public static int getContentChangeTypes(AccessibilityEvent event) { 3132bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar return IMPL.getContentChangeTypes(event); 3142bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar } 3152bf89a9bae2b6110a77cf0b3754b567bb07d12a5Yigit Boyar 3169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov} 317