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.os.Build; 2170e96ebf69f91da84681a6263b3862c63d53ab11alanvimport android.os.Bundle; 220fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslavimport android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat; 23086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viveretteimport android.support.v4.view.ViewCompat; 249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovimport android.view.View; 25086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viveretteimport android.view.accessibility.AccessibilityEvent; 269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovimport java.util.ArrayList; 28f9c2277244722eca88c784b9cfdcc78df7f94781Svetoslav Ganovimport java.util.Collections; 299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovimport java.util.List; 309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov/** 320574ca37da4619afe4e26753f5a1b4de314b6565Svetoslav Ganov * Helper for accessing {@link android.view.accessibility.AccessibilityNodeInfo} 330574ca37da4619afe4e26753f5a1b4de314b6565Svetoslav Ganov * introduced after API level 4 in a backwards compatible fashion. 349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganovpublic class AccessibilityNodeInfoCompat { 369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov static interface AccessibilityNodeInfoImpl { 389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public Object obtain(); 399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public Object obtain(View source); 409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public Object obtain(Object info); 4170e96ebf69f91da84681a6263b3862c63d53ab11alanv public Object obtain(View root, int virtualDescendantId); 429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setSource(Object info, View source); 433a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov public void setSource(Object info, View root, int virtualDescendantId); 4470e96ebf69f91da84681a6263b3862c63d53ab11alanv public Object findFocus(Object info, int focus); 4570e96ebf69f91da84681a6263b3862c63d53ab11alanv public Object focusSearch(Object info, int direction); 469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public int getWindowId(Object info); 479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public int getChildCount(Object info); 4870e96ebf69f91da84681a6263b3862c63d53ab11alanv public Object getChild(Object info, int index); 499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void addChild(Object info, View child); 503a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov public void addChild(Object info, View child, int virtualDescendantId); 519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public int getActions(Object info); 529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void addAction(Object info, int action); 539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean performAction(Object info, int action); 5470e96ebf69f91da84681a6263b3862c63d53ab11alanv public boolean performAction(Object info, int action, Bundle arguments); 5570e96ebf69f91da84681a6263b3862c63d53ab11alanv public void setMovementGranularities(Object info, int granularities); 5670e96ebf69f91da84681a6263b3862c63d53ab11alanv public int getMovementGranularities(Object info); 579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public List<Object> findAccessibilityNodeInfosByText(Object info, String text); 5870e96ebf69f91da84681a6263b3862c63d53ab11alanv public Object getParent(Object info); 5970e96ebf69f91da84681a6263b3862c63d53ab11alanv public void setParent(Object info, View root, int virtualDescendantId); 609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setParent(Object info, View parent); 619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void getBoundsInParent(Object info, Rect outBounds); 629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setBoundsInParent(Object info, Rect bounds); 639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void getBoundsInScreen(Object info, Rect outBounds); 649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setBoundsInScreen(Object info, Rect bounds); 659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isCheckable(Object info); 669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setCheckable(Object info, boolean checkable); 679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isChecked(Object info); 689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setChecked(Object info, boolean checked); 699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isFocusable(Object info); 709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setFocusable(Object info, boolean focusable); 719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isFocused(Object info); 729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setFocused(Object info, boolean focused); 7370e96ebf69f91da84681a6263b3862c63d53ab11alanv public boolean isVisibleToUser(Object info); 7470e96ebf69f91da84681a6263b3862c63d53ab11alanv public void setVisibleToUser(Object info, boolean visibleToUser); 7570e96ebf69f91da84681a6263b3862c63d53ab11alanv public boolean isAccessibilityFocused(Object info); 7670e96ebf69f91da84681a6263b3862c63d53ab11alanv public void setAccessibilityFocused(Object info, boolean focused); 779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isSelected(Object info); 789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setSelected(Object info, boolean selected); 799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isClickable(Object info); 809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setClickable(Object info, boolean clickable); 819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isLongClickable(Object info); 829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setLongClickable(Object info, boolean longClickable); 839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isEnabled(Object info); 849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setEnabled(Object info, boolean enabled); 859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isPassword(Object info); 869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setPassword(Object info, boolean password); 879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isScrollable(Object info); 889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setScrollable(Object info, boolean scrollable); 899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public CharSequence getPackageName(Object info); 909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setPackageName(Object info, CharSequence packageName); 919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public CharSequence getClassName(Object info); 929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setClassName(Object info, CharSequence className); 939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public CharSequence getText(Object info); 949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setText(Object info, CharSequence text); 959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public CharSequence getContentDescription(Object info); 969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setContentDescription(Object info, CharSequence contentDescription); 979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void recycle(Object info); 98071eca0f490d88fc51cea8f739780c7c92b920c3Svetoslav public String getViewIdResourceName(Object info); 99071eca0f490d88fc51cea8f739780c7c92b920c3Svetoslav public void setViewIdResourceName(Object info, String viewId); 100086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette public int getLiveRegion(Object info); 101086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette public void setLiveRegion(Object info, int mode); 1029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 1039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 1049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov static class AccessibilityNodeInfoStubImpl implements AccessibilityNodeInfoImpl { 10570e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 1069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public Object obtain() { 1079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return null; 1089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 1099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 11070e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 1119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public Object obtain(View source) { 1129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return null; 1139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 1149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 11570e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 11670e96ebf69f91da84681a6263b3862c63d53ab11alanv public Object obtain(View root, int virtualDescendantId) { 11770e96ebf69f91da84681a6263b3862c63d53ab11alanv return null; 11870e96ebf69f91da84681a6263b3862c63d53ab11alanv } 11970e96ebf69f91da84681a6263b3862c63d53ab11alanv 12070e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 1219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public Object obtain(Object info) { 1229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return null; 1239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 1249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 12570e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 1269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void addAction(Object info, int action) { 1279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 1289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 1299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 13070e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 1319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void addChild(Object info, View child) { 1329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 1339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 1349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 13570e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 1363a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov public void addChild(Object info, View child, int virtualDescendantId) { 1373a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov 1383a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov } 1393a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov 14070e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 1419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public List<Object> findAccessibilityNodeInfosByText(Object info, String text) { 142f9c2277244722eca88c784b9cfdcc78df7f94781Svetoslav Ganov return Collections.emptyList(); 1439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 1449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 14570e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 1469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public int getActions(Object info) { 1479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return 0; 1489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 1499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 15070e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 1519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void getBoundsInParent(Object info, Rect outBounds) { 1529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 1539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 1549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 15570e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 1569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void getBoundsInScreen(Object info, Rect outBounds) { 1579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 1589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 1599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 16070e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 16170e96ebf69f91da84681a6263b3862c63d53ab11alanv public Object getChild(Object info, int index) { 1629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return null; 1639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 1649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 16570e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 1669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public int getChildCount(Object info) { 1679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return 0; 1689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 1699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 17070e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 1719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public CharSequence getClassName(Object info) { 1729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return null; 1739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 1749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 17570e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 1769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public CharSequence getContentDescription(Object info) { 1779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return null; 1789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 1799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 18070e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 1819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public CharSequence getPackageName(Object info) { 1829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return null; 1839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 1849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 18570e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 18670e96ebf69f91da84681a6263b3862c63d53ab11alanv public Object getParent(Object info) { 1879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return null; 1889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 1899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 19070e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 1919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public CharSequence getText(Object info) { 1929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return null; 1939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 1949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 19570e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 1969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public int getWindowId(Object info) { 1979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return 0; 1989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 1999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 20070e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 2019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isCheckable(Object info) { 2029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return false; 2039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 2049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 20570e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 2069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isChecked(Object info) { 2079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return false; 2089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 2099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 21070e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 2119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isClickable(Object info) { 2129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return false; 2139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 2149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 21570e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 2169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isEnabled(Object info) { 2179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return false; 2189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 2199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 22070e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 2219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isFocusable(Object info) { 2229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return false; 2239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 2249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 22570e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 2269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isFocused(Object info) { 2279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return false; 2289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 2299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 23070e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 23170e96ebf69f91da84681a6263b3862c63d53ab11alanv public boolean isVisibleToUser(Object info) { 23270e96ebf69f91da84681a6263b3862c63d53ab11alanv return false; 23370e96ebf69f91da84681a6263b3862c63d53ab11alanv } 23470e96ebf69f91da84681a6263b3862c63d53ab11alanv 23570e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 23670e96ebf69f91da84681a6263b3862c63d53ab11alanv public boolean isAccessibilityFocused(Object info) { 23770e96ebf69f91da84681a6263b3862c63d53ab11alanv return false; 23870e96ebf69f91da84681a6263b3862c63d53ab11alanv } 23970e96ebf69f91da84681a6263b3862c63d53ab11alanv 24070e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 2419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isLongClickable(Object info) { 2429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return false; 2439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 2449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 24570e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 2469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isPassword(Object info) { 2479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return false; 2489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 2499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 25070e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 2519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isScrollable(Object info) { 2529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return false; 2539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 2549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 25570e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 2569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isSelected(Object info) { 2579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return false; 2589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 2599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 26070e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 2619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean performAction(Object info, int action) { 2629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return false; 2639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 2649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 26570e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 26670e96ebf69f91da84681a6263b3862c63d53ab11alanv public boolean performAction(Object info, int action, Bundle arguments) { 26770e96ebf69f91da84681a6263b3862c63d53ab11alanv return false; 26870e96ebf69f91da84681a6263b3862c63d53ab11alanv } 26970e96ebf69f91da84681a6263b3862c63d53ab11alanv 27070e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 27170e96ebf69f91da84681a6263b3862c63d53ab11alanv public void setMovementGranularities(Object info, int granularities) { 27270e96ebf69f91da84681a6263b3862c63d53ab11alanv 27370e96ebf69f91da84681a6263b3862c63d53ab11alanv } 27470e96ebf69f91da84681a6263b3862c63d53ab11alanv 27570e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 27670e96ebf69f91da84681a6263b3862c63d53ab11alanv public int getMovementGranularities(Object info) { 27770e96ebf69f91da84681a6263b3862c63d53ab11alanv return 0; 27870e96ebf69f91da84681a6263b3862c63d53ab11alanv } 27970e96ebf69f91da84681a6263b3862c63d53ab11alanv 28070e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 2819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setBoundsInParent(Object info, Rect bounds) { 2829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 2839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 2849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 28570e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 2869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setBoundsInScreen(Object info, Rect bounds) { 2879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 2889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 2899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 29070e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 2919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setCheckable(Object info, boolean checkable) { 2929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 2939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 2949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 29570e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 2969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setChecked(Object info, boolean checked) { 2979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 2989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 2999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 30070e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 3019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setClassName(Object info, CharSequence className) { 3029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 3039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 3049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 30570e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 3069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setClickable(Object info, boolean clickable) { 3079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 3089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 3099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 31070e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 3119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setContentDescription(Object info, CharSequence contentDescription) { 3129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 3139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 3149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 31570e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 3169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setEnabled(Object info, boolean enabled) { 3179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 3189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 3199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 32070e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 3219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setFocusable(Object info, boolean focusable) { 3229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 3239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 3249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 32570e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 3269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setFocused(Object info, boolean focused) { 3279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 3289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 3299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 33070e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 33170e96ebf69f91da84681a6263b3862c63d53ab11alanv public void setVisibleToUser(Object info, boolean visibleToUser) { 33270e96ebf69f91da84681a6263b3862c63d53ab11alanv 33370e96ebf69f91da84681a6263b3862c63d53ab11alanv } 33470e96ebf69f91da84681a6263b3862c63d53ab11alanv 33570e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 33670e96ebf69f91da84681a6263b3862c63d53ab11alanv public void setAccessibilityFocused(Object info, boolean focused) { 33770e96ebf69f91da84681a6263b3862c63d53ab11alanv 33870e96ebf69f91da84681a6263b3862c63d53ab11alanv } 33970e96ebf69f91da84681a6263b3862c63d53ab11alanv 34070e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 3419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setLongClickable(Object info, boolean longClickable) { 3429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 3439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 3449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 34570e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 3469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setPackageName(Object info, CharSequence packageName) { 3479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 3489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 3499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 35070e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 3519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setParent(Object info, View parent) { 3529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 3539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 3549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 35570e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 3569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setPassword(Object info, boolean password) { 3579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 3589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 3599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 36070e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 3619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setScrollable(Object info, boolean scrollable) { 3629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 3639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 3649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 36570e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 3669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setSelected(Object info, boolean selected) { 3679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 3689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 3699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 37070e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 3719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setSource(Object info, View source) { 3729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 3739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 3749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 37570e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 3763a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov public void setSource(Object info, View root, int virtualDescendantId) { 3773a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov 3783a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov } 3793a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov 38070e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 38170e96ebf69f91da84681a6263b3862c63d53ab11alanv public Object findFocus(Object info, int focus) { 38270e96ebf69f91da84681a6263b3862c63d53ab11alanv return null; 38370e96ebf69f91da84681a6263b3862c63d53ab11alanv } 38470e96ebf69f91da84681a6263b3862c63d53ab11alanv 38570e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 38670e96ebf69f91da84681a6263b3862c63d53ab11alanv public Object focusSearch(Object info, int direction) { 38770e96ebf69f91da84681a6263b3862c63d53ab11alanv return null; 38870e96ebf69f91da84681a6263b3862c63d53ab11alanv } 38970e96ebf69f91da84681a6263b3862c63d53ab11alanv 39070e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 3919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setText(Object info, CharSequence text) { 3929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 3939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 3949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 39570e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 3969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void recycle(Object info) { 3979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 3989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 39970e96ebf69f91da84681a6263b3862c63d53ab11alanv 40070e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 40170e96ebf69f91da84681a6263b3862c63d53ab11alanv public void setParent(Object info, View root, int virtualDescendantId) { 40270e96ebf69f91da84681a6263b3862c63d53ab11alanv 40370e96ebf69f91da84681a6263b3862c63d53ab11alanv } 4040fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav 4050fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav @Override 406071eca0f490d88fc51cea8f739780c7c92b920c3Svetoslav public String getViewIdResourceName(Object info) { 4070fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav return null; 4080fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav } 4090fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav 4100fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav @Override 411071eca0f490d88fc51cea8f739780c7c92b920c3Svetoslav public void setViewIdResourceName(Object info, String viewId) { 4120fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav 4130fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav } 414086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette 415086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette @Override 416086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette public int getLiveRegion(Object info) { 417086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette return ViewCompat.ACCESSIBILITY_LIVE_REGION_NONE; 418086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette } 419086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette 420086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette @Override 421086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette public void setLiveRegion(Object info, int mode) { 422086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette // No-op 423086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette } 4249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 4259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 4269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov static class AccessibilityNodeInfoIcsImpl extends AccessibilityNodeInfoStubImpl { 4279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 4289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public Object obtain() { 4299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return AccessibilityNodeInfoCompatIcs.obtain(); 4309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 4319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 4329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 4339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public Object obtain(View source) { 4349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return AccessibilityNodeInfoCompatIcs.obtain(source); 4359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 4369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 4379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 4389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public Object obtain(Object info) { 4399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return AccessibilityNodeInfoCompatIcs.obtain(info); 4409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 4419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 4429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 4439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void addAction(Object info, int action) { 4449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov AccessibilityNodeInfoCompatIcs.addAction(info, action); 4459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 4469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 4479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 4489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void addChild(Object info, View child) { 4499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov AccessibilityNodeInfoCompatIcs.addChild(info, child); 4509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 4519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 4529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 4539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public List<Object> findAccessibilityNodeInfosByText(Object info, String text) { 4549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return AccessibilityNodeInfoCompatIcs.findAccessibilityNodeInfosByText(info, text); 4559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 4569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 4579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 4589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public int getActions(Object info) { 4599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return AccessibilityNodeInfoCompatIcs.getActions(info); 4609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 4619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 4629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 4639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void getBoundsInParent(Object info, Rect outBounds) { 4649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov AccessibilityNodeInfoCompatIcs.getBoundsInParent(info, outBounds); 4659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 4669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 4679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 4689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void getBoundsInScreen(Object info, Rect outBounds) { 4699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov AccessibilityNodeInfoCompatIcs.getBoundsInScreen(info, outBounds); 4709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 4719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 4729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 47370e96ebf69f91da84681a6263b3862c63d53ab11alanv public Object getChild(Object info, int index) { 47470e96ebf69f91da84681a6263b3862c63d53ab11alanv return AccessibilityNodeInfoCompatIcs.getChild(info, index); 4759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 4769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 4779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 4789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public int getChildCount(Object info) { 4799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return AccessibilityNodeInfoCompatIcs.getChildCount(info); 4809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 4819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 4829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 4839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public CharSequence getClassName(Object info) { 4849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return AccessibilityNodeInfoCompatIcs.getClassName(info); 4859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 4869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 4879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 4889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public CharSequence getContentDescription(Object info) { 4899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return AccessibilityNodeInfoCompatIcs.getContentDescription(info); 4909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 4919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 4929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 4939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public CharSequence getPackageName(Object info) { 4949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return AccessibilityNodeInfoCompatIcs.getPackageName(info); 4959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 4969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 4979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 49870e96ebf69f91da84681a6263b3862c63d53ab11alanv public Object getParent(Object info) { 49970e96ebf69f91da84681a6263b3862c63d53ab11alanv return AccessibilityNodeInfoCompatIcs.getParent(info); 5009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 5019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 5029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 5039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public CharSequence getText(Object info) { 5049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return AccessibilityNodeInfoCompatIcs.getText(info); 5059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 5069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 5079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 5089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public int getWindowId(Object info) { 5099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return AccessibilityNodeInfoCompatIcs.getWindowId(info); 5109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 5119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 5129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 5139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isCheckable(Object info) { 5149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return AccessibilityNodeInfoCompatIcs.isCheckable(info); 5159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 5169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 5179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 5189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isChecked(Object info) { 5199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return AccessibilityNodeInfoCompatIcs.isChecked(info); 5209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 5219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 5229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 5239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isClickable(Object info) { 5249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return AccessibilityNodeInfoCompatIcs.isClickable(info); 5259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 5269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 5279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 5289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isEnabled(Object info) { 5299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return AccessibilityNodeInfoCompatIcs.isEnabled(info); 5309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 5319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 5329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 5339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isFocusable(Object info) { 5349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return AccessibilityNodeInfoCompatIcs.isFocusable(info); 5359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 5369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 5379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 5389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isFocused(Object info) { 5399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return AccessibilityNodeInfoCompatIcs.isFocused(info); 5409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 5419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 5429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 5439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isLongClickable(Object info) { 5449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return AccessibilityNodeInfoCompatIcs.isLongClickable(info); 5459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 5469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 5479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 5489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isPassword(Object info) { 5499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return AccessibilityNodeInfoCompatIcs.isPassword(info); 5509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 5519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 5529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 5539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isScrollable(Object info) { 5549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return AccessibilityNodeInfoCompatIcs.isScrollable(info); 5559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 5569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 5579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 5589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isSelected(Object info) { 5599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return AccessibilityNodeInfoCompatIcs.isSelected(info); 5609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 5619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 5629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 5639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean performAction(Object info, int action) { 5649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return AccessibilityNodeInfoCompatIcs.performAction(info, action); 5659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 5669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 5679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 5689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setBoundsInParent(Object info, Rect bounds) { 5699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov AccessibilityNodeInfoCompatIcs.setBoundsInParent(info, bounds); 5709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 5719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 5729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 5739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setBoundsInScreen(Object info, Rect bounds) { 5749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov AccessibilityNodeInfoCompatIcs.setBoundsInScreen(info, bounds); 5759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 5769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 5779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 5789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setCheckable(Object info, boolean checkable) { 5799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov AccessibilityNodeInfoCompatIcs.setCheckable(info, checkable); 5809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 5819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 5829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 5839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setChecked(Object info, boolean checked) { 5849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov AccessibilityNodeInfoCompatIcs.setChecked(info, checked); 5859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 5869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 5879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 5889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setClassName(Object info, CharSequence className) { 5899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov AccessibilityNodeInfoCompatIcs.setClassName(info, className); 5909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 5919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 5929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 5939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setClickable(Object info, boolean clickable) { 5949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov AccessibilityNodeInfoCompatIcs.setClickable(info, clickable); 5959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 5969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 5979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 5989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setContentDescription(Object info, CharSequence contentDescription) { 5999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov AccessibilityNodeInfoCompatIcs.setContentDescription(info, contentDescription); 6009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 6019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 6029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 6039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setEnabled(Object info, boolean enabled) { 6049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov AccessibilityNodeInfoCompatIcs.setEnabled(info, enabled); 6059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 6069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 6079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 6089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setFocusable(Object info, boolean focusable) { 6099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov AccessibilityNodeInfoCompatIcs.setFocusable(info, focusable); 6109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 6119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 6129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 6139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setFocused(Object info, boolean focused) { 6149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov AccessibilityNodeInfoCompatIcs.setFocused(info, focused); 6159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 6169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 6179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 6189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setLongClickable(Object info, boolean longClickable) { 6199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov AccessibilityNodeInfoCompatIcs.setLongClickable(info, longClickable); 6209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 6219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 6229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 6239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setPackageName(Object info, CharSequence packageName) { 6249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov AccessibilityNodeInfoCompatIcs.setPackageName(info, packageName); 6259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 6269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 6279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 6289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setParent(Object info, View parent) { 6299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov AccessibilityNodeInfoCompatIcs.setParent(info, parent); 6309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 6319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 6329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 6339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setPassword(Object info, boolean password) { 6349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov AccessibilityNodeInfoCompatIcs.setPassword(info, password); 6359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 6369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 6379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 6389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setScrollable(Object info, boolean scrollable) { 6399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov AccessibilityNodeInfoCompatIcs.setScrollable(info, scrollable); 6409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 6419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 6429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 6439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setSelected(Object info, boolean selected) { 6449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov AccessibilityNodeInfoCompatIcs.setSelected(info, selected); 6459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 6469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 6479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 6489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setSource(Object info, View source) { 6499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov AccessibilityNodeInfoCompatIcs.setSource(info, source); 6509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 6519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 6529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 6539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setText(Object info, CharSequence text) { 6549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov AccessibilityNodeInfoCompatIcs.setText(info, text); 6559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 6569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 6579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 6589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void recycle(Object info) { 6599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov AccessibilityNodeInfoCompatIcs.recycle(info); 6609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 6619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 6629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 6633a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov static class AccessibilityNodeInfoJellybeanImpl extends AccessibilityNodeInfoIcsImpl { 6643a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov @Override 66570e96ebf69f91da84681a6263b3862c63d53ab11alanv public Object obtain(View root, int virtualDescendantId) { 66670e96ebf69f91da84681a6263b3862c63d53ab11alanv return AccessibilityNodeInfoCompatJellyBean.obtain(root, virtualDescendantId); 66770e96ebf69f91da84681a6263b3862c63d53ab11alanv } 66870e96ebf69f91da84681a6263b3862c63d53ab11alanv 66970e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 67070e96ebf69f91da84681a6263b3862c63d53ab11alanv public Object findFocus(Object info, int focus) { 67170e96ebf69f91da84681a6263b3862c63d53ab11alanv return AccessibilityNodeInfoCompatJellyBean.findFocus(info, focus); 67270e96ebf69f91da84681a6263b3862c63d53ab11alanv } 67370e96ebf69f91da84681a6263b3862c63d53ab11alanv 67470e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 67570e96ebf69f91da84681a6263b3862c63d53ab11alanv public Object focusSearch(Object info, int direction) { 67670e96ebf69f91da84681a6263b3862c63d53ab11alanv return AccessibilityNodeInfoCompatJellyBean.focusSearch(info, direction); 67770e96ebf69f91da84681a6263b3862c63d53ab11alanv } 67870e96ebf69f91da84681a6263b3862c63d53ab11alanv 67970e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 6803a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov public void addChild(Object info, View child, int virtualDescendantId) { 6813a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov AccessibilityNodeInfoCompatJellyBean.addChild(info, child, virtualDescendantId); 6823a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov } 6833a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov 6843a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov @Override 6853a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov public void setSource(Object info, View root, int virtualDescendantId) { 6863a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov AccessibilityNodeInfoCompatJellyBean.setSource(info, root, virtualDescendantId); 6873a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov } 68870e96ebf69f91da84681a6263b3862c63d53ab11alanv 68970e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 69070e96ebf69f91da84681a6263b3862c63d53ab11alanv public boolean isVisibleToUser(Object info) { 69170e96ebf69f91da84681a6263b3862c63d53ab11alanv return AccessibilityNodeInfoCompatJellyBean.isVisibleToUser(info); 69270e96ebf69f91da84681a6263b3862c63d53ab11alanv } 69370e96ebf69f91da84681a6263b3862c63d53ab11alanv 69470e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 69570e96ebf69f91da84681a6263b3862c63d53ab11alanv public void setVisibleToUser(Object info, boolean visibleToUser) { 69670e96ebf69f91da84681a6263b3862c63d53ab11alanv AccessibilityNodeInfoCompatJellyBean.setVisibleToUser(info, visibleToUser); 69770e96ebf69f91da84681a6263b3862c63d53ab11alanv } 69870e96ebf69f91da84681a6263b3862c63d53ab11alanv 69970e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 70070e96ebf69f91da84681a6263b3862c63d53ab11alanv public boolean isAccessibilityFocused(Object info) { 70170e96ebf69f91da84681a6263b3862c63d53ab11alanv return AccessibilityNodeInfoCompatJellyBean.isAccessibilityFocused(info); 70270e96ebf69f91da84681a6263b3862c63d53ab11alanv } 70370e96ebf69f91da84681a6263b3862c63d53ab11alanv 70470e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 70570e96ebf69f91da84681a6263b3862c63d53ab11alanv public void setAccessibilityFocused(Object info, boolean focused) { 70670e96ebf69f91da84681a6263b3862c63d53ab11alanv AccessibilityNodeInfoCompatJellyBean.setAccesibilityFocused(info, focused); 70770e96ebf69f91da84681a6263b3862c63d53ab11alanv } 70870e96ebf69f91da84681a6263b3862c63d53ab11alanv 70970e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 71070e96ebf69f91da84681a6263b3862c63d53ab11alanv public boolean performAction(Object info, int action, Bundle arguments) { 71170e96ebf69f91da84681a6263b3862c63d53ab11alanv return AccessibilityNodeInfoCompatJellyBean.performAction(info, action, arguments); 71270e96ebf69f91da84681a6263b3862c63d53ab11alanv } 71370e96ebf69f91da84681a6263b3862c63d53ab11alanv 71470e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 71570e96ebf69f91da84681a6263b3862c63d53ab11alanv public void setMovementGranularities(Object info, int granularities) { 71670e96ebf69f91da84681a6263b3862c63d53ab11alanv AccessibilityNodeInfoCompatJellyBean.setMovementGranularities(info, granularities); 71770e96ebf69f91da84681a6263b3862c63d53ab11alanv } 71870e96ebf69f91da84681a6263b3862c63d53ab11alanv 71970e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 72070e96ebf69f91da84681a6263b3862c63d53ab11alanv public int getMovementGranularities(Object info) { 72170e96ebf69f91da84681a6263b3862c63d53ab11alanv return AccessibilityNodeInfoCompatJellyBean.getMovementGranularities(info); 72270e96ebf69f91da84681a6263b3862c63d53ab11alanv } 72370e96ebf69f91da84681a6263b3862c63d53ab11alanv 72470e96ebf69f91da84681a6263b3862c63d53ab11alanv @Override 72570e96ebf69f91da84681a6263b3862c63d53ab11alanv public void setParent(Object info, View root, int virtualDescendantId) { 72670e96ebf69f91da84681a6263b3862c63d53ab11alanv AccessibilityNodeInfoCompatJellyBean.setParent(info, root, virtualDescendantId); 72770e96ebf69f91da84681a6263b3862c63d53ab11alanv } 7283a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov } 7293a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov 7300fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav static class AccessibilityNodeInfoJellybeanMr2Impl extends AccessibilityNodeInfoJellybeanImpl { 7310fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav 7320fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav @Override 733071eca0f490d88fc51cea8f739780c7c92b920c3Svetoslav public String getViewIdResourceName(Object info) { 7340fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav return AccessibilityNodeInfoCompatJellybeanMr2.getViewIdResourceName(info); 7350fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav } 7360fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav 7370fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav @Override 738071eca0f490d88fc51cea8f739780c7c92b920c3Svetoslav public void setViewIdResourceName(Object info, String viewId) { 7390fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav AccessibilityNodeInfoCompatJellybeanMr2.setViewIdResourceName(info, viewId); 7400fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav } 7410fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav } 7420fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav 743086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette static class AccessibilityNodeInfoKitKatImpl extends AccessibilityNodeInfoJellybeanMr2Impl { 744086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette @Override 745086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette public int getLiveRegion(Object info) { 746086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette return AccessibilityNodeInfoCompatKitKat.getLiveRegion(info); 747086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette } 748086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette 749086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette @Override 750086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette public void setLiveRegion(Object info, int mode) { 751086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette AccessibilityNodeInfoCompatKitKat.setLiveRegion(info, mode); 752086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette } 753086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette } 754086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette 7559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov static { 756086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette if (Build.VERSION.SDK_INT >= 19) { // KitKat 757086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette IMPL = new AccessibilityNodeInfoKitKatImpl(); 758086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette } else if (Build.VERSION.SDK_INT >= 18) { // JellyBean MR2 7590fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav IMPL = new AccessibilityNodeInfoJellybeanMr2Impl(); 7600fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav } else if (Build.VERSION.SDK_INT >= 16) { // JellyBean 7613a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov IMPL = new AccessibilityNodeInfoJellybeanImpl(); 7623a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov } else if (Build.VERSION.SDK_INT >= 14) { // ICS 7639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov IMPL = new AccessibilityNodeInfoIcsImpl(); 7649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } else { 7659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov IMPL = new AccessibilityNodeInfoStubImpl(); 7669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 7679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 7689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 7699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov private static final AccessibilityNodeInfoImpl IMPL; 7709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 7719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov private final Object mInfo; 7729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 7730fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav // Actions introduced in IceCreamSandwich 7749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 7759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 7769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Action that focuses the node. 7779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 7789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public static final int ACTION_FOCUS = 0x00000001; 7799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 7809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 7819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Action that unfocuses the node. 7829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 7839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public static final int ACTION_CLEAR_FOCUS = 0x00000002; 7849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 7859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 7869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Action that selects the node. 7879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 7889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public static final int ACTION_SELECT = 0x00000004; 7899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 7909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 7919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Action that unselects the node. 7929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 7939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public static final int ACTION_CLEAR_SELECTION = 0x00000008; 7949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 795c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov /** 79670e96ebf69f91da84681a6263b3862c63d53ab11alanv * Action that clicks on the node info. 79770e96ebf69f91da84681a6263b3862c63d53ab11alanv */ 79870e96ebf69f91da84681a6263b3862c63d53ab11alanv public static final int ACTION_CLICK = 0x00000010; 79970e96ebf69f91da84681a6263b3862c63d53ab11alanv 80070e96ebf69f91da84681a6263b3862c63d53ab11alanv /** 80170e96ebf69f91da84681a6263b3862c63d53ab11alanv * Action that long clicks on the node. 80270e96ebf69f91da84681a6263b3862c63d53ab11alanv */ 80370e96ebf69f91da84681a6263b3862c63d53ab11alanv public static final int ACTION_LONG_CLICK = 0x00000020; 80470e96ebf69f91da84681a6263b3862c63d53ab11alanv 8050fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav // Actions introduced in JellyBean 8060fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav 80770e96ebf69f91da84681a6263b3862c63d53ab11alanv /** 80870e96ebf69f91da84681a6263b3862c63d53ab11alanv * Action that gives accessibility focus to the node. 80970e96ebf69f91da84681a6263b3862c63d53ab11alanv */ 81070e96ebf69f91da84681a6263b3862c63d53ab11alanv public static final int ACTION_ACCESSIBILITY_FOCUS = 0x00000040; 81170e96ebf69f91da84681a6263b3862c63d53ab11alanv 81270e96ebf69f91da84681a6263b3862c63d53ab11alanv /** 81370e96ebf69f91da84681a6263b3862c63d53ab11alanv * Action that clears accessibility focus of the node. 81470e96ebf69f91da84681a6263b3862c63d53ab11alanv */ 81570e96ebf69f91da84681a6263b3862c63d53ab11alanv public static final int ACTION_CLEAR_ACCESSIBILITY_FOCUS = 0x00000080; 81670e96ebf69f91da84681a6263b3862c63d53ab11alanv 81770e96ebf69f91da84681a6263b3862c63d53ab11alanv /** 81870e96ebf69f91da84681a6263b3862c63d53ab11alanv * Action that requests to go to the next entity in this node's text 81970e96ebf69f91da84681a6263b3862c63d53ab11alanv * at a given movement granularity. For example, move to the next character, 82070e96ebf69f91da84681a6263b3862c63d53ab11alanv * word, etc. 82170e96ebf69f91da84681a6263b3862c63d53ab11alanv * <p> 8220fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * <strong>Arguments:</strong> {@link #ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT}<, 8230fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * {@link #ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN}<br> 8240fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * <strong>Example:</strong> Move to the previous character and do not extend selection. 82570e96ebf69f91da84681a6263b3862c63d53ab11alanv * <code><pre><p> 82670e96ebf69f91da84681a6263b3862c63d53ab11alanv * Bundle arguments = new Bundle(); 82770e96ebf69f91da84681a6263b3862c63d53ab11alanv * arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT, 82870e96ebf69f91da84681a6263b3862c63d53ab11alanv * AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER); 8290fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * arguments.putBoolean(AccessibilityNodeInfo.ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN, 8300fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * false); 83170e96ebf69f91da84681a6263b3862c63d53ab11alanv * info.performAction(AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY, arguments); 83270e96ebf69f91da84681a6263b3862c63d53ab11alanv * </code></pre></p> 83370e96ebf69f91da84681a6263b3862c63d53ab11alanv * </p> 83470e96ebf69f91da84681a6263b3862c63d53ab11alanv * 8350fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * @see #ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT 8360fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * @see #ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN 8370fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * 83870e96ebf69f91da84681a6263b3862c63d53ab11alanv * @see #setMovementGranularities(int) 83970e96ebf69f91da84681a6263b3862c63d53ab11alanv * @see #getMovementGranularities() 84070e96ebf69f91da84681a6263b3862c63d53ab11alanv * 84170e96ebf69f91da84681a6263b3862c63d53ab11alanv * @see #MOVEMENT_GRANULARITY_CHARACTER 84270e96ebf69f91da84681a6263b3862c63d53ab11alanv * @see #MOVEMENT_GRANULARITY_WORD 84370e96ebf69f91da84681a6263b3862c63d53ab11alanv * @see #MOVEMENT_GRANULARITY_LINE 84470e96ebf69f91da84681a6263b3862c63d53ab11alanv * @see #MOVEMENT_GRANULARITY_PARAGRAPH 84570e96ebf69f91da84681a6263b3862c63d53ab11alanv * @see #MOVEMENT_GRANULARITY_PAGE 84670e96ebf69f91da84681a6263b3862c63d53ab11alanv */ 84770e96ebf69f91da84681a6263b3862c63d53ab11alanv public static final int ACTION_NEXT_AT_MOVEMENT_GRANULARITY = 0x00000100; 84870e96ebf69f91da84681a6263b3862c63d53ab11alanv 84970e96ebf69f91da84681a6263b3862c63d53ab11alanv /** 85070e96ebf69f91da84681a6263b3862c63d53ab11alanv * Action that requests to go to the previous entity in this node's text 85170e96ebf69f91da84681a6263b3862c63d53ab11alanv * at a given movement granularity. For example, move to the next character, 85270e96ebf69f91da84681a6263b3862c63d53ab11alanv * word, etc. 85370e96ebf69f91da84681a6263b3862c63d53ab11alanv * <p> 8540fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * <strong>Arguments:</strong> {@link #ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT}<, 8550fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * {@link #ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN}<br> 8560fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * <strong>Example:</strong> Move to the next character and do not extend selection. 85770e96ebf69f91da84681a6263b3862c63d53ab11alanv * <code><pre><p> 85870e96ebf69f91da84681a6263b3862c63d53ab11alanv * Bundle arguments = new Bundle(); 85970e96ebf69f91da84681a6263b3862c63d53ab11alanv * arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT, 86070e96ebf69f91da84681a6263b3862c63d53ab11alanv * AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER); 8610fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * arguments.putBoolean(AccessibilityNodeInfo.ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN, 8620fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * false); 86370e96ebf69f91da84681a6263b3862c63d53ab11alanv * info.performAction(AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY, 86470e96ebf69f91da84681a6263b3862c63d53ab11alanv * arguments); 86570e96ebf69f91da84681a6263b3862c63d53ab11alanv * </code></pre></p> 86670e96ebf69f91da84681a6263b3862c63d53ab11alanv * </p> 86770e96ebf69f91da84681a6263b3862c63d53ab11alanv * 8680fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * @see #ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT 8690fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * @see #ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN 8700fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * 87170e96ebf69f91da84681a6263b3862c63d53ab11alanv * @see #setMovementGranularities(int) 87270e96ebf69f91da84681a6263b3862c63d53ab11alanv * @see #getMovementGranularities() 87370e96ebf69f91da84681a6263b3862c63d53ab11alanv * 87470e96ebf69f91da84681a6263b3862c63d53ab11alanv * @see #MOVEMENT_GRANULARITY_CHARACTER 87570e96ebf69f91da84681a6263b3862c63d53ab11alanv * @see #MOVEMENT_GRANULARITY_WORD 87670e96ebf69f91da84681a6263b3862c63d53ab11alanv * @see #MOVEMENT_GRANULARITY_LINE 87770e96ebf69f91da84681a6263b3862c63d53ab11alanv * @see #MOVEMENT_GRANULARITY_PARAGRAPH 87870e96ebf69f91da84681a6263b3862c63d53ab11alanv * @see #MOVEMENT_GRANULARITY_PAGE 87970e96ebf69f91da84681a6263b3862c63d53ab11alanv */ 88070e96ebf69f91da84681a6263b3862c63d53ab11alanv public static final int ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY = 0x00000200; 88170e96ebf69f91da84681a6263b3862c63d53ab11alanv 88270e96ebf69f91da84681a6263b3862c63d53ab11alanv /** 88370e96ebf69f91da84681a6263b3862c63d53ab11alanv * Action to move to the next HTML element of a given type. For example, move 88470e96ebf69f91da84681a6263b3862c63d53ab11alanv * to the BUTTON, INPUT, TABLE, etc. 88570e96ebf69f91da84681a6263b3862c63d53ab11alanv * <p> 88670e96ebf69f91da84681a6263b3862c63d53ab11alanv * <strong>Arguments:</strong> {@link #ACTION_ARGUMENT_HTML_ELEMENT_STRING}<br> 88770e96ebf69f91da84681a6263b3862c63d53ab11alanv * <strong>Example:</strong> 88870e96ebf69f91da84681a6263b3862c63d53ab11alanv * <code><pre><p> 88970e96ebf69f91da84681a6263b3862c63d53ab11alanv * Bundle arguments = new Bundle(); 89070e96ebf69f91da84681a6263b3862c63d53ab11alanv * arguments.putString(AccessibilityNodeInfo.ACTION_ARGUMENT_HTML_ELEMENT_STRING, "BUTTON"); 89170e96ebf69f91da84681a6263b3862c63d53ab11alanv * info.performAction(AccessibilityNodeInfo.ACTION_NEXT_HTML_ELEMENT, arguments); 89270e96ebf69f91da84681a6263b3862c63d53ab11alanv * </code></pre></p> 89370e96ebf69f91da84681a6263b3862c63d53ab11alanv * </p> 89470e96ebf69f91da84681a6263b3862c63d53ab11alanv */ 89570e96ebf69f91da84681a6263b3862c63d53ab11alanv public static final int ACTION_NEXT_HTML_ELEMENT = 0x00000400; 89670e96ebf69f91da84681a6263b3862c63d53ab11alanv 89770e96ebf69f91da84681a6263b3862c63d53ab11alanv /** 89870e96ebf69f91da84681a6263b3862c63d53ab11alanv * Action to move to the previous HTML element of a given type. For example, move 89970e96ebf69f91da84681a6263b3862c63d53ab11alanv * to the BUTTON, INPUT, TABLE, etc. 90070e96ebf69f91da84681a6263b3862c63d53ab11alanv * <p> 90170e96ebf69f91da84681a6263b3862c63d53ab11alanv * <strong>Arguments:</strong> {@link #ACTION_ARGUMENT_HTML_ELEMENT_STRING}<br> 90270e96ebf69f91da84681a6263b3862c63d53ab11alanv * <strong>Example:</strong> 90370e96ebf69f91da84681a6263b3862c63d53ab11alanv * <code><pre><p> 90470e96ebf69f91da84681a6263b3862c63d53ab11alanv * Bundle arguments = new Bundle(); 90570e96ebf69f91da84681a6263b3862c63d53ab11alanv * arguments.putString(AccessibilityNodeInfo.ACTION_ARGUMENT_HTML_ELEMENT_STRING, "BUTTON"); 90670e96ebf69f91da84681a6263b3862c63d53ab11alanv * info.performAction(AccessibilityNodeInfo.ACTION_PREVIOUS_HTML_ELEMENT, arguments); 90770e96ebf69f91da84681a6263b3862c63d53ab11alanv * </code></pre></p> 90870e96ebf69f91da84681a6263b3862c63d53ab11alanv * </p> 90970e96ebf69f91da84681a6263b3862c63d53ab11alanv */ 91070e96ebf69f91da84681a6263b3862c63d53ab11alanv public static final int ACTION_PREVIOUS_HTML_ELEMENT = 0x00000800; 91170e96ebf69f91da84681a6263b3862c63d53ab11alanv 91270e96ebf69f91da84681a6263b3862c63d53ab11alanv /** 91370e96ebf69f91da84681a6263b3862c63d53ab11alanv * Action to scroll the node content forward. 91470e96ebf69f91da84681a6263b3862c63d53ab11alanv */ 91570e96ebf69f91da84681a6263b3862c63d53ab11alanv public static final int ACTION_SCROLL_FORWARD = 0x00001000; 91670e96ebf69f91da84681a6263b3862c63d53ab11alanv 91770e96ebf69f91da84681a6263b3862c63d53ab11alanv /** 91870e96ebf69f91da84681a6263b3862c63d53ab11alanv * Action to scroll the node content backward. 91970e96ebf69f91da84681a6263b3862c63d53ab11alanv */ 92070e96ebf69f91da84681a6263b3862c63d53ab11alanv public static final int ACTION_SCROLL_BACKWARD = 0x00002000; 92170e96ebf69f91da84681a6263b3862c63d53ab11alanv 9220fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav // Actions introduced in JellyBeanMr2 9230fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav 9240fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav /** 9250fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * Action to copy the current selection to the clipboard. 9260fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav */ 9270fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav public static final int ACTION_COPY = 0x00004000; 9280fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav 9290fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav /** 9300fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * Action to paste the current clipboard content. 9310fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav */ 9320fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav public static final int ACTION_PASTE = 0x00008000; 9330fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav 9340fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav /** 9350fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * Action to cut the current selection and place it to the clipboard. 9360fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav */ 9370fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav public static final int ACTION_CUT = 0x00010000; 9380fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav 9390fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav /** 9400fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * Action to set the selection. Performing this action with no arguments 9410fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * clears the selection. 9420fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * <p> 9430fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * <strong>Arguments:</strong> {@link #ACTION_ARGUMENT_SELECTION_START_INT}, 9440fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * {@link #ACTION_ARGUMENT_SELECTION_END_INT}<br> 9450fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * <strong>Example:</strong> 9460fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * <code><pre><p> 9470fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * Bundle arguments = new Bundle(); 9480fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_START_INT, 1); 9490fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_END_INT, 2); 9500fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * info.performAction(AccessibilityNodeInfo.ACTION_SET_SELECTION, arguments); 9510fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * </code></pre></p> 9520fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * </p> 9530fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * 9540fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * @see #ACTION_ARGUMENT_SELECTION_START_INT 9550fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * @see #ACTION_ARGUMENT_SELECTION_END_INT 9560fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav */ 9570fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav public static final int ACTION_SET_SELECTION = 0x00020000; 9580fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav 9590fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav // Action arguments 9600fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav 96170e96ebf69f91da84681a6263b3862c63d53ab11alanv /** 96270e96ebf69f91da84681a6263b3862c63d53ab11alanv * Argument for which movement granularity to be used when traversing the node text. 96370e96ebf69f91da84681a6263b3862c63d53ab11alanv * <p> 96470e96ebf69f91da84681a6263b3862c63d53ab11alanv * <strong>Type:</strong> int<br> 96570e96ebf69f91da84681a6263b3862c63d53ab11alanv * <strong>Actions:</strong> {@link #ACTION_NEXT_AT_MOVEMENT_GRANULARITY}, 96670e96ebf69f91da84681a6263b3862c63d53ab11alanv * {@link #ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY} 96770e96ebf69f91da84681a6263b3862c63d53ab11alanv * </p> 96870e96ebf69f91da84681a6263b3862c63d53ab11alanv */ 96970e96ebf69f91da84681a6263b3862c63d53ab11alanv public static final String ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT = 97070e96ebf69f91da84681a6263b3862c63d53ab11alanv "ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT"; 97170e96ebf69f91da84681a6263b3862c63d53ab11alanv 97270e96ebf69f91da84681a6263b3862c63d53ab11alanv /** 97370e96ebf69f91da84681a6263b3862c63d53ab11alanv * Argument for which HTML element to get moving to the next/previous HTML element. 97470e96ebf69f91da84681a6263b3862c63d53ab11alanv * <p> 97570e96ebf69f91da84681a6263b3862c63d53ab11alanv * <strong>Type:</strong> String<br> 97670e96ebf69f91da84681a6263b3862c63d53ab11alanv * <strong>Actions:</strong> {@link #ACTION_NEXT_HTML_ELEMENT}, 97770e96ebf69f91da84681a6263b3862c63d53ab11alanv * {@link #ACTION_PREVIOUS_HTML_ELEMENT} 97870e96ebf69f91da84681a6263b3862c63d53ab11alanv * </p> 97970e96ebf69f91da84681a6263b3862c63d53ab11alanv */ 98070e96ebf69f91da84681a6263b3862c63d53ab11alanv public static final String ACTION_ARGUMENT_HTML_ELEMENT_STRING = 98170e96ebf69f91da84681a6263b3862c63d53ab11alanv "ACTION_ARGUMENT_HTML_ELEMENT_STRING"; 98270e96ebf69f91da84681a6263b3862c63d53ab11alanv 98370e96ebf69f91da84681a6263b3862c63d53ab11alanv /** 9840fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * Argument for whether when moving at granularity to extend the selection 9850fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * or to move it otherwise. 9860fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * <p> 9870fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * <strong>Type:</strong> boolean<br> 9880fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * <strong>Actions:</strong> {@link #ACTION_NEXT_AT_MOVEMENT_GRANULARITY}, 9890fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * {@link #ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY} 9900fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * </p> 9910fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * 9920fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * @see #ACTION_NEXT_AT_MOVEMENT_GRANULARITY 9930fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * @see #ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY 9940fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav */ 9950fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav public static final String ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN = 9960fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav "ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN"; 9970fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav 9980fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav /** 9990fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * Argument for specifying the selection start. 10000fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * <p> 10010fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * <strong>Type:</strong> int<br> 10020fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * <strong>Actions:</strong> {@link #ACTION_SET_SELECTION} 10030fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * </p> 10040fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * 10050fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * @see #ACTION_SET_SELECTION 10060fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav */ 10070fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav public static final String ACTION_ARGUMENT_SELECTION_START_INT = 10080fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav "ACTION_ARGUMENT_SELECTION_START_INT"; 10090fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav 10100fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav /** 10110fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * Argument for specifying the selection end. 10120fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * <p> 10130fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * <strong>Type:</strong> int<br> 10140fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * <strong>Actions:</strong> {@link #ACTION_SET_SELECTION} 10150fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * </p> 10160fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * 10170fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * @see #ACTION_SET_SELECTION 10180fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav */ 10190fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav public static final String ACTION_ARGUMENT_SELECTION_END_INT = 10200fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav "ACTION_ARGUMENT_SELECTION_END_INT"; 10210fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav 10220fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav // Focus types 10230fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav 10240fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav /** 102570e96ebf69f91da84681a6263b3862c63d53ab11alanv * The input focus. 102670e96ebf69f91da84681a6263b3862c63d53ab11alanv */ 102770e96ebf69f91da84681a6263b3862c63d53ab11alanv public static final int FOCUS_INPUT = 1; 102870e96ebf69f91da84681a6263b3862c63d53ab11alanv 102970e96ebf69f91da84681a6263b3862c63d53ab11alanv /** 103070e96ebf69f91da84681a6263b3862c63d53ab11alanv * The accessibility focus. 103170e96ebf69f91da84681a6263b3862c63d53ab11alanv */ 103270e96ebf69f91da84681a6263b3862c63d53ab11alanv public static final int FOCUS_ACCESSIBILITY = 2; 103370e96ebf69f91da84681a6263b3862c63d53ab11alanv 103470e96ebf69f91da84681a6263b3862c63d53ab11alanv // Movement granularities 103570e96ebf69f91da84681a6263b3862c63d53ab11alanv 103670e96ebf69f91da84681a6263b3862c63d53ab11alanv /** 103770e96ebf69f91da84681a6263b3862c63d53ab11alanv * Movement granularity bit for traversing the text of a node by character. 103870e96ebf69f91da84681a6263b3862c63d53ab11alanv */ 103970e96ebf69f91da84681a6263b3862c63d53ab11alanv public static final int MOVEMENT_GRANULARITY_CHARACTER = 0x00000001; 104070e96ebf69f91da84681a6263b3862c63d53ab11alanv 104170e96ebf69f91da84681a6263b3862c63d53ab11alanv /** 104270e96ebf69f91da84681a6263b3862c63d53ab11alanv * Movement granularity bit for traversing the text of a node by word. 104370e96ebf69f91da84681a6263b3862c63d53ab11alanv */ 104470e96ebf69f91da84681a6263b3862c63d53ab11alanv public static final int MOVEMENT_GRANULARITY_WORD = 0x00000002; 104570e96ebf69f91da84681a6263b3862c63d53ab11alanv 104670e96ebf69f91da84681a6263b3862c63d53ab11alanv /** 104770e96ebf69f91da84681a6263b3862c63d53ab11alanv * Movement granularity bit for traversing the text of a node by line. 104870e96ebf69f91da84681a6263b3862c63d53ab11alanv */ 104970e96ebf69f91da84681a6263b3862c63d53ab11alanv public static final int MOVEMENT_GRANULARITY_LINE = 0x00000004; 105070e96ebf69f91da84681a6263b3862c63d53ab11alanv 105170e96ebf69f91da84681a6263b3862c63d53ab11alanv /** 105270e96ebf69f91da84681a6263b3862c63d53ab11alanv * Movement granularity bit for traversing the text of a node by paragraph. 105370e96ebf69f91da84681a6263b3862c63d53ab11alanv */ 105470e96ebf69f91da84681a6263b3862c63d53ab11alanv public static final int MOVEMENT_GRANULARITY_PARAGRAPH = 0x00000008; 105570e96ebf69f91da84681a6263b3862c63d53ab11alanv 105670e96ebf69f91da84681a6263b3862c63d53ab11alanv /** 105770e96ebf69f91da84681a6263b3862c63d53ab11alanv * Movement granularity bit for traversing the text of a node by page. 105870e96ebf69f91da84681a6263b3862c63d53ab11alanv */ 105970e96ebf69f91da84681a6263b3862c63d53ab11alanv public static final int MOVEMENT_GRANULARITY_PAGE = 0x00000010; 106070e96ebf69f91da84681a6263b3862c63d53ab11alanv 106170e96ebf69f91da84681a6263b3862c63d53ab11alanv /** 1062c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov * Creates a wrapper for info implementation. 1063c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov * 1064c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov * @param object The info to wrap. 1065c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov * @return A wrapper for if the object is not null, null otherwise. 1066c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov */ 1067c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov static AccessibilityNodeInfoCompat wrapNonNullInstance(Object object) { 1068c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov if (object != null) { 1069c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov return new AccessibilityNodeInfoCompat(object); 1070c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov } 1071c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov return null; 1072c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov } 1073c64858f808c159a8b144d22e3168459074cdc181Svetoslav Ganov 1074956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov /** 1075956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov * Creates a new instance wrapping an 1076956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov * {@link android.view.accessibility.AccessibilityNodeInfo}. 1077956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov * 1078956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov * @param info The info. 10799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 10809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public AccessibilityNodeInfoCompat(Object info) { 10819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov mInfo = info; 10829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 10839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 10849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 1085956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov * @return The wrapped {@link android.view.accessibility.AccessibilityNodeInfo}. 10869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 1087956b013dfda37760b0232ed6d448900a546d2903Svetoslav Ganov public Object getInfo() { 10889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return mInfo; 10899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 10909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 10919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 10929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Returns a cached instance if such is available otherwise a new one and 10939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * sets the source. 10949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 10959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @return An instance. 10969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @see #setSource(View) 10979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 10989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public static AccessibilityNodeInfoCompat obtain(View source) { 109970e96ebf69f91da84681a6263b3862c63d53ab11alanv return AccessibilityNodeInfoCompat.wrapNonNullInstance(IMPL.obtain(source)); 110070e96ebf69f91da84681a6263b3862c63d53ab11alanv } 110170e96ebf69f91da84681a6263b3862c63d53ab11alanv 110270e96ebf69f91da84681a6263b3862c63d53ab11alanv /** 110370e96ebf69f91da84681a6263b3862c63d53ab11alanv * Returns a cached instance if such is available otherwise a new one 110470e96ebf69f91da84681a6263b3862c63d53ab11alanv * and sets the source. 110570e96ebf69f91da84681a6263b3862c63d53ab11alanv * 110670e96ebf69f91da84681a6263b3862c63d53ab11alanv * @param root The root of the virtual subtree. 110770e96ebf69f91da84681a6263b3862c63d53ab11alanv * @param virtualDescendantId The id of the virtual descendant. 110870e96ebf69f91da84681a6263b3862c63d53ab11alanv * @return An instance. 110970e96ebf69f91da84681a6263b3862c63d53ab11alanv * 111070e96ebf69f91da84681a6263b3862c63d53ab11alanv * @see #setSource(View, int) 111170e96ebf69f91da84681a6263b3862c63d53ab11alanv */ 111270e96ebf69f91da84681a6263b3862c63d53ab11alanv public static AccessibilityNodeInfoCompat obtain(View root, int virtualDescendantId) { 111370e96ebf69f91da84681a6263b3862c63d53ab11alanv return AccessibilityNodeInfoCompat.wrapNonNullInstance( 111470e96ebf69f91da84681a6263b3862c63d53ab11alanv IMPL.obtain(root, virtualDescendantId)); 11159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 11169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 11179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 11189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Returns a cached instance if such is available otherwise a new one. 11199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 11209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @return An instance. 11219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 11229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public static AccessibilityNodeInfoCompat obtain() { 112370e96ebf69f91da84681a6263b3862c63d53ab11alanv return AccessibilityNodeInfoCompat.wrapNonNullInstance(IMPL.obtain()); 11249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 11259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 11269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 11279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Returns a cached instance if such is available or a new one is create. 11289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * The returned instance is initialized from the given <code>info</code>. 11299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 11309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @param info The other info. 11319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @return An instance. 11329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 11339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public static AccessibilityNodeInfoCompat obtain(AccessibilityNodeInfoCompat info) { 113470e96ebf69f91da84681a6263b3862c63d53ab11alanv return AccessibilityNodeInfoCompat.wrapNonNullInstance(IMPL.obtain(info.mInfo)); 11359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 11369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 11379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 11389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Sets the source. 11399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 11409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @param source The info source. 11419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 11429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setSource(View source) { 11439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov IMPL.setSource(mInfo, source); 11449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 11459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 11469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 11473a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * Sets the source to be a virtual descendant of the given <code>root</code>. 11483a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * If <code>virtualDescendantId</code> is {@link View#NO_ID} the root 11493a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * is set as the source. 11503a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * <p> 11513a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * A virtual descendant is an imaginary View that is reported as a part of the view 11523a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * hierarchy for accessibility purposes. This enables custom views that draw complex 11533a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * content to report themselves as a tree of virtual views, thus conveying their 11543a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * logical structure. 11553a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * </p> 11563a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * <p> 11573a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * <strong>Note:</strong> Cannot be called from an 11583a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * {@link android.accessibilityservice.AccessibilityService}. 11593a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * This class is made immutable before being delivered to an AccessibilityService. 11603a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * </p> 11613a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * 11623a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * @param root The root of the virtual subtree. 11633a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * @param virtualDescendantId The id of the virtual descendant. 11643a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov */ 11653a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov public void setSource(View root, int virtualDescendantId) { 11663a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov IMPL.setSource(mInfo, root, virtualDescendantId); 11673a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov } 11683a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov 11693a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov /** 117070e96ebf69f91da84681a6263b3862c63d53ab11alanv * Find the view that has the specified focus type. The search starts from 117170e96ebf69f91da84681a6263b3862c63d53ab11alanv * the view represented by this node info. 117270e96ebf69f91da84681a6263b3862c63d53ab11alanv * 117370e96ebf69f91da84681a6263b3862c63d53ab11alanv * @param focus The focus to find. One of {@link #FOCUS_INPUT} or 117470e96ebf69f91da84681a6263b3862c63d53ab11alanv * {@link #FOCUS_ACCESSIBILITY}. 117570e96ebf69f91da84681a6263b3862c63d53ab11alanv * @return The node info of the focused view or null. 117670e96ebf69f91da84681a6263b3862c63d53ab11alanv * 117770e96ebf69f91da84681a6263b3862c63d53ab11alanv * @see #FOCUS_INPUT 117870e96ebf69f91da84681a6263b3862c63d53ab11alanv * @see #FOCUS_ACCESSIBILITY 117970e96ebf69f91da84681a6263b3862c63d53ab11alanv */ 118070e96ebf69f91da84681a6263b3862c63d53ab11alanv public AccessibilityNodeInfoCompat findFocus(int focus) { 118170e96ebf69f91da84681a6263b3862c63d53ab11alanv return AccessibilityNodeInfoCompat.wrapNonNullInstance(IMPL.findFocus(mInfo, focus)); 118270e96ebf69f91da84681a6263b3862c63d53ab11alanv } 118370e96ebf69f91da84681a6263b3862c63d53ab11alanv 118470e96ebf69f91da84681a6263b3862c63d53ab11alanv /** 118570e96ebf69f91da84681a6263b3862c63d53ab11alanv * Searches for the nearest view in the specified direction that can take 118676ca3a4abf437c04003bacff72491409f8898a18Svetoslav Ganov * input focus. 118770e96ebf69f91da84681a6263b3862c63d53ab11alanv * 118870e96ebf69f91da84681a6263b3862c63d53ab11alanv * @param direction The direction. Can be one of: 118970e96ebf69f91da84681a6263b3862c63d53ab11alanv * {@link View#FOCUS_DOWN}, 119070e96ebf69f91da84681a6263b3862c63d53ab11alanv * {@link View#FOCUS_UP}, 119170e96ebf69f91da84681a6263b3862c63d53ab11alanv * {@link View#FOCUS_LEFT}, 119270e96ebf69f91da84681a6263b3862c63d53ab11alanv * {@link View#FOCUS_RIGHT}, 119370e96ebf69f91da84681a6263b3862c63d53ab11alanv * {@link View#FOCUS_FORWARD}, 119476ca3a4abf437c04003bacff72491409f8898a18Svetoslav Ganov * {@link View#FOCUS_BACKWARD}. 119570e96ebf69f91da84681a6263b3862c63d53ab11alanv * 119670e96ebf69f91da84681a6263b3862c63d53ab11alanv * @return The node info for the view that can take accessibility focus. 119770e96ebf69f91da84681a6263b3862c63d53ab11alanv */ 119870e96ebf69f91da84681a6263b3862c63d53ab11alanv public AccessibilityNodeInfoCompat focusSearch(int direction) { 119970e96ebf69f91da84681a6263b3862c63d53ab11alanv return AccessibilityNodeInfoCompat.wrapNonNullInstance(IMPL.focusSearch(mInfo, direction)); 120070e96ebf69f91da84681a6263b3862c63d53ab11alanv } 120170e96ebf69f91da84681a6263b3862c63d53ab11alanv 120270e96ebf69f91da84681a6263b3862c63d53ab11alanv /** 12039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Gets the id of the window from which the info comes from. 12049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 12059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @return The window id. 12069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 12079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public int getWindowId() { 12089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return IMPL.getWindowId(mInfo); 12099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 12109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 12119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 12129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Gets the number of children. 12139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 12149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @return The child count. 12159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 12169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public int getChildCount() { 12179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return IMPL.getChildCount(mInfo); 12189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 12199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 12209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 12219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Get the child at given index. 12229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <p> 12239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <strong>Note:</strong> It is a client responsibility to recycle the 12249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * received info by calling {@link AccessibilityNodeInfoCompat#recycle()} to 12259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * avoid creating of multiple instances. 12269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * </p> 12279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 12289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @param index The child index. 12299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @return The child node. 12309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @throws IllegalStateException If called outside of an 12319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * AccessibilityService. 12329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 12339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public AccessibilityNodeInfoCompat getChild(int index) { 123470e96ebf69f91da84681a6263b3862c63d53ab11alanv return AccessibilityNodeInfoCompat.wrapNonNullInstance(IMPL.getChild(mInfo, index)); 12359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 12369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 12379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 12389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Adds a child. 12399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <p> 12409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <strong>Note:</strong> Cannot be called from an 12419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * {@link android.accessibilityservice.AccessibilityService}. This class is 12429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * made immutable before being delivered to an AccessibilityService. 12439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * </p> 12449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 12459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @param child The child. 12469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @throws IllegalStateException If called from an AccessibilityService. 12479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 12489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void addChild(View child) { 12499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov IMPL.addChild(mInfo, child); 12509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 12519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 12529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 12533a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * Adds a virtual child which is a descendant of the given <code>root</code>. 12543a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * If <code>virtualDescendantId</code> is {@link View#NO_ID} the root 12553a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * is added as a child. 12563a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * <p> 12573a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * A virtual descendant is an imaginary View that is reported as a part of the view 12583a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * hierarchy for accessibility purposes. This enables custom views that draw complex 12593a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * content to report them selves as a tree of virtual views, thus conveying their 12603a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * logical structure. 12613a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * </p> 12623a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * 12633a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * @param root The root of the virtual subtree. 12643a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov * @param virtualDescendantId The id of the virtual child. 12653a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov */ 12663a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov public void addChild(View root, int virtualDescendantId) { 12673a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov IMPL.addChild(mInfo, root, virtualDescendantId); 12683a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov } 12693a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov 12703a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov /** 12719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Gets the actions that can be performed on the node. 12729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 12739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @return The bit mask of with actions. 12749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @see android.view.accessibility.AccessibilityNodeInfo#ACTION_FOCUS 12759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @see android.view.accessibility.AccessibilityNodeInfo#ACTION_CLEAR_FOCUS 12769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @see android.view.accessibility.AccessibilityNodeInfo#ACTION_SELECT 12779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @see android.view.accessibility.AccessibilityNodeInfo#ACTION_CLEAR_SELECTION 12789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 12799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public int getActions() { 12809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return IMPL.getActions(mInfo); 12819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 12829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 12839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 12849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Adds an action that can be performed on the node. 12859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <p> 12869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <strong>Note:</strong> Cannot be called from an 12879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * {@link android.accessibilityservice.AccessibilityService}. This class is 12889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * made immutable before being delivered to an AccessibilityService. 12899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * </p> 12909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 12919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @param action The action. 12929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @throws IllegalStateException If called from an AccessibilityService. 12939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 12949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void addAction(int action) { 12959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov IMPL.addAction(mInfo, action); 12969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 12979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 12989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 12999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Performs an action on the node. 13009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <p> 13019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <strong>Note:</strong> An action can be performed only if the request is 13029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * made from an {@link android.accessibilityservice.AccessibilityService}. 13039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * </p> 13049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 13059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @param action The action to perform. 13069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @return True if the action was performed. 13079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @throws IllegalStateException If called outside of an 13089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * AccessibilityService. 13099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 13109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean performAction(int action) { 13119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return IMPL.performAction(mInfo, action); 13129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 13139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 13149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 131570e96ebf69f91da84681a6263b3862c63d53ab11alanv * Performs an action on the node. 131670e96ebf69f91da84681a6263b3862c63d53ab11alanv * <p> 131770e96ebf69f91da84681a6263b3862c63d53ab11alanv * <strong>Note:</strong> An action can be performed only if the request is made 131870e96ebf69f91da84681a6263b3862c63d53ab11alanv * from an {@link android.accessibilityservice.AccessibilityService}. 131970e96ebf69f91da84681a6263b3862c63d53ab11alanv * </p> 132070e96ebf69f91da84681a6263b3862c63d53ab11alanv * 132170e96ebf69f91da84681a6263b3862c63d53ab11alanv * @param action The action to perform. 132270e96ebf69f91da84681a6263b3862c63d53ab11alanv * @param arguments A bundle with additional arguments. 132370e96ebf69f91da84681a6263b3862c63d53ab11alanv * @return True if the action was performed. 132470e96ebf69f91da84681a6263b3862c63d53ab11alanv * 132570e96ebf69f91da84681a6263b3862c63d53ab11alanv * @throws IllegalStateException If called outside of an AccessibilityService. 132670e96ebf69f91da84681a6263b3862c63d53ab11alanv */ 132770e96ebf69f91da84681a6263b3862c63d53ab11alanv public boolean performAction(int action, Bundle arguments) { 132870e96ebf69f91da84681a6263b3862c63d53ab11alanv return IMPL.performAction(mInfo, action, arguments); 132970e96ebf69f91da84681a6263b3862c63d53ab11alanv } 133070e96ebf69f91da84681a6263b3862c63d53ab11alanv 133170e96ebf69f91da84681a6263b3862c63d53ab11alanv /** 133270e96ebf69f91da84681a6263b3862c63d53ab11alanv * Sets the movement granularities for traversing the text of this node. 133370e96ebf69f91da84681a6263b3862c63d53ab11alanv * <p> 133470e96ebf69f91da84681a6263b3862c63d53ab11alanv * <strong>Note:</strong> Cannot be called from an 133570e96ebf69f91da84681a6263b3862c63d53ab11alanv * {@link android.accessibilityservice.AccessibilityService}. 133670e96ebf69f91da84681a6263b3862c63d53ab11alanv * This class is made immutable before being delivered to an AccessibilityService. 133770e96ebf69f91da84681a6263b3862c63d53ab11alanv * </p> 133870e96ebf69f91da84681a6263b3862c63d53ab11alanv * 133970e96ebf69f91da84681a6263b3862c63d53ab11alanv * @param granularities The bit mask with granularities. 134070e96ebf69f91da84681a6263b3862c63d53ab11alanv * 134170e96ebf69f91da84681a6263b3862c63d53ab11alanv * @throws IllegalStateException If called from an AccessibilityService. 134270e96ebf69f91da84681a6263b3862c63d53ab11alanv */ 134370e96ebf69f91da84681a6263b3862c63d53ab11alanv public void setMovementGranularities(int granularities) { 134470e96ebf69f91da84681a6263b3862c63d53ab11alanv IMPL.setMovementGranularities(mInfo, granularities); 134570e96ebf69f91da84681a6263b3862c63d53ab11alanv } 134670e96ebf69f91da84681a6263b3862c63d53ab11alanv 134770e96ebf69f91da84681a6263b3862c63d53ab11alanv /** 134870e96ebf69f91da84681a6263b3862c63d53ab11alanv * Gets the movement granularities for traversing the text of this node. 134970e96ebf69f91da84681a6263b3862c63d53ab11alanv * 135070e96ebf69f91da84681a6263b3862c63d53ab11alanv * @return The bit mask with granularities. 135170e96ebf69f91da84681a6263b3862c63d53ab11alanv */ 135270e96ebf69f91da84681a6263b3862c63d53ab11alanv public int getMovementGranularities() { 135370e96ebf69f91da84681a6263b3862c63d53ab11alanv return IMPL.getMovementGranularities(mInfo); 135470e96ebf69f91da84681a6263b3862c63d53ab11alanv } 135570e96ebf69f91da84681a6263b3862c63d53ab11alanv 135670e96ebf69f91da84681a6263b3862c63d53ab11alanv /** 13579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Finds {@link android.view.accessibility.AccessibilityNodeInfo}s by text. The match 13589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * is case insensitive containment. The search is relative to this info i.e. this 13599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * info is the root of the traversed tree. 13609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <p> 13619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <strong>Note:</strong> It is a client responsibility to recycle the 13629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * received info by calling {@link android.view.accessibility.AccessibilityNodeInfo#recycle()} 13639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * to avoid creating of multiple instances. 13649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * </p> 13659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 13669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @param text The searched text. 13679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @return A list of node info. 13689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 13699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public List<AccessibilityNodeInfoCompat> findAccessibilityNodeInfosByText(String text) { 13709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov List<AccessibilityNodeInfoCompat> result = new ArrayList<AccessibilityNodeInfoCompat>(); 13719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov List<Object> infos = IMPL.findAccessibilityNodeInfosByText(mInfo, text); 13729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov final int infoCount = infos.size(); 13739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov for (int i = 0; i < infoCount; i++) { 13749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov Object info = infos.get(i); 13759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov result.add(new AccessibilityNodeInfoCompat(info)); 13769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 13779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return result; 13789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 13799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 13809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 13819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Gets the parent. 13829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <p> 13839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <strong>Note:</strong> It is a client responsibility to recycle the 13849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * received info by calling {@link android.view.accessibility.AccessibilityNodeInfo#recycle()} 13859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * to avoid creating of multiple instances. 13869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * </p> 13879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 13889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @return The parent. 13899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 13909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public AccessibilityNodeInfoCompat getParent() { 139170e96ebf69f91da84681a6263b3862c63d53ab11alanv return AccessibilityNodeInfoCompat.wrapNonNullInstance(IMPL.getParent(mInfo)); 13929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 13939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 13949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 13959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Sets the parent. 13969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <p> 13979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <strong>Note:</strong> Cannot be called from an 13989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * {@link android.accessibilityservice.AccessibilityService}. This class is 13999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * made immutable before being delivered to an AccessibilityService. 14009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * </p> 14019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 14029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @param parent The parent. 14039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @throws IllegalStateException If called from an AccessibilityService. 14049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 14059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setParent(View parent) { 14069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov IMPL.setParent(mInfo, parent); 14079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 14089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 14099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 141070e96ebf69f91da84681a6263b3862c63d53ab11alanv * Sets the parent to be a virtual descendant of the given <code>root</code>. 141170e96ebf69f91da84681a6263b3862c63d53ab11alanv * If <code>virtualDescendantId</code> equals to {@link View#NO_ID} the root 141270e96ebf69f91da84681a6263b3862c63d53ab11alanv * is set as the parent. 141370e96ebf69f91da84681a6263b3862c63d53ab11alanv * <p> 141470e96ebf69f91da84681a6263b3862c63d53ab11alanv * A virtual descendant is an imaginary View that is reported as a part of the view 141570e96ebf69f91da84681a6263b3862c63d53ab11alanv * hierarchy for accessibility purposes. This enables custom views that draw complex 141670e96ebf69f91da84681a6263b3862c63d53ab11alanv * content to report them selves as a tree of virtual views, thus conveying their 141770e96ebf69f91da84681a6263b3862c63d53ab11alanv * logical structure. 141870e96ebf69f91da84681a6263b3862c63d53ab11alanv * </p> 141970e96ebf69f91da84681a6263b3862c63d53ab11alanv * <p> 142070e96ebf69f91da84681a6263b3862c63d53ab11alanv * <strong>Note:</strong> Cannot be called from an 142170e96ebf69f91da84681a6263b3862c63d53ab11alanv * {@link android.accessibilityservice.AccessibilityService}. 142270e96ebf69f91da84681a6263b3862c63d53ab11alanv * This class is made immutable before being delivered to an AccessibilityService. 142370e96ebf69f91da84681a6263b3862c63d53ab11alanv * </p> 142470e96ebf69f91da84681a6263b3862c63d53ab11alanv * 142570e96ebf69f91da84681a6263b3862c63d53ab11alanv * @param root The root of the virtual subtree. 142670e96ebf69f91da84681a6263b3862c63d53ab11alanv * @param virtualDescendantId The id of the virtual descendant. 142770e96ebf69f91da84681a6263b3862c63d53ab11alanv */ 142870e96ebf69f91da84681a6263b3862c63d53ab11alanv public void setParent(View root, int virtualDescendantId) { 142970e96ebf69f91da84681a6263b3862c63d53ab11alanv IMPL.setParent(mInfo, root, virtualDescendantId); 143070e96ebf69f91da84681a6263b3862c63d53ab11alanv } 143170e96ebf69f91da84681a6263b3862c63d53ab11alanv 143270e96ebf69f91da84681a6263b3862c63d53ab11alanv /** 14339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Gets the node bounds in parent coordinates. 14349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 14359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @param outBounds The output node bounds. 14369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 14379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void getBoundsInParent(Rect outBounds) { 14389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov IMPL.getBoundsInParent(mInfo, outBounds); 14399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 14409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 14419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 14429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Sets the node bounds in parent coordinates. 14439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <p> 14449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <strong>Note:</strong> Cannot be called from an 14459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * {@link android.accessibilityservice.AccessibilityService}. This class is 14469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * made immutable before being delivered to an AccessibilityService. 14479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * </p> 14489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 14499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @param bounds The node bounds. 14509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov *@throws IllegalStateException If called from an AccessibilityService. 14519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 14529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setBoundsInParent(Rect bounds) { 14539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov IMPL.setBoundsInParent(mInfo, bounds); 14549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 14559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 14569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 14579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Gets the node bounds in screen coordinates. 14589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 14599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @param outBounds The output node bounds. 14609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 14619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void getBoundsInScreen(Rect outBounds) { 14629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov IMPL.getBoundsInScreen(mInfo, outBounds); 14639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 14649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 14659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 14669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Sets the node bounds in screen coordinates. 14679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <p> 14689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <strong>Note:</strong> Cannot be called from an 14699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * {@link android.accessibilityservice.AccessibilityService}. This class is 14709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * made immutable before being delivered to an AccessibilityService. 14719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * </p> 14729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 14739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @param bounds The node bounds. 14749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @throws IllegalStateException If called from an AccessibilityService. 14759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 14769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setBoundsInScreen(Rect bounds) { 14773a137cd495b313a047b5e800d02a925dea707fa0Svetoslav Ganov IMPL.setBoundsInScreen(mInfo, bounds); 14789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 14799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 14809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 14819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Gets whether this node is checkable. 14829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 14839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @return True if the node is checkable. 14849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 14859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isCheckable() { 14869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return IMPL.isCheckable(mInfo); 14879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 14889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 14899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 14909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Sets whether this node is checkable. 14919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <p> 14929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <strong>Note:</strong> Cannot be called from an 14939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * {@link android.accessibilityservice.AccessibilityService}. This class is 14949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * made immutable before being delivered to an AccessibilityService. 14959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * </p> 14969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 14979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @param checkable True if the node is checkable. 14989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @throws IllegalStateException If called from an AccessibilityService. 14999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 15009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setCheckable(boolean checkable) { 15019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov IMPL.setCheckable(mInfo, checkable); 15029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 15039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 15049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 15059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Gets whether this node is checked. 15069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 15079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @return True if the node is checked. 15089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 15099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isChecked() { 15109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return IMPL.isChecked(mInfo); 15119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 15129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 15139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 15149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Sets whether this node is checked. 15159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <p> 15169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <strong>Note:</strong> Cannot be called from an 15179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * {@link android.accessibilityservice.AccessibilityService}. This class is 15189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * made immutable before being delivered to an AccessibilityService. 15199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * </p> 15209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 15219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @param checked True if the node is checked. 15229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @throws IllegalStateException If called from an AccessibilityService. 15239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 15249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setChecked(boolean checked) { 15259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov IMPL.setChecked(mInfo, checked); 15269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 15279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 15289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 15299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Gets whether this node is focusable. 15309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 15319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @return True if the node is focusable. 15329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 15339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isFocusable() { 15349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return IMPL.isFocusable(mInfo); 15359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 15369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 15379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 15389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Sets whether this node is focusable. 15399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <p> 15409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <strong>Note:</strong> Cannot be called from an 15419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * {@link android.accessibilityservice.AccessibilityService}. This class is 15429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * made immutable before being delivered to an AccessibilityService. 15439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * </p> 15449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 15459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @param focusable True if the node is focusable. 15469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @throws IllegalStateException If called from an AccessibilityService. 15479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 15489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setFocusable(boolean focusable) { 15499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov IMPL.setFocusable(mInfo, focusable); 15509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 15519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 15529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 15539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Gets whether this node is focused. 15549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 15559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @return True if the node is focused. 15569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 15579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isFocused() { 15589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return IMPL.isFocused(mInfo); 15599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 15609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 15619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 15629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Sets whether this node is focused. 15639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <p> 15649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <strong>Note:</strong> Cannot be called from an 15659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * {@link android.accessibilityservice.AccessibilityService}. This class is 15669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * made immutable before being delivered to an AccessibilityService. 15679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * </p> 15689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 15699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @param focused True if the node is focused. 15709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @throws IllegalStateException If called from an AccessibilityService. 15719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 15729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setFocused(boolean focused) { 15739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov IMPL.setFocused(mInfo, focused); 15749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 15759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 15769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 157770e96ebf69f91da84681a6263b3862c63d53ab11alanv * Sets whether this node is visible to the user. 157870e96ebf69f91da84681a6263b3862c63d53ab11alanv * 157970e96ebf69f91da84681a6263b3862c63d53ab11alanv * @return Whether the node is visible to the user. 158070e96ebf69f91da84681a6263b3862c63d53ab11alanv */ 158170e96ebf69f91da84681a6263b3862c63d53ab11alanv public boolean isVisibleToUser() { 158270e96ebf69f91da84681a6263b3862c63d53ab11alanv return IMPL.isVisibleToUser(mInfo); 158370e96ebf69f91da84681a6263b3862c63d53ab11alanv } 158470e96ebf69f91da84681a6263b3862c63d53ab11alanv 158570e96ebf69f91da84681a6263b3862c63d53ab11alanv /** 158670e96ebf69f91da84681a6263b3862c63d53ab11alanv * Sets whether this node is visible to the user. 158770e96ebf69f91da84681a6263b3862c63d53ab11alanv * <p> 158870e96ebf69f91da84681a6263b3862c63d53ab11alanv * <strong>Note:</strong> Cannot be called from an 158970e96ebf69f91da84681a6263b3862c63d53ab11alanv * {@link android.accessibilityservice.AccessibilityService}. 159070e96ebf69f91da84681a6263b3862c63d53ab11alanv * This class is made immutable before being delivered to an AccessibilityService. 159170e96ebf69f91da84681a6263b3862c63d53ab11alanv * </p> 159270e96ebf69f91da84681a6263b3862c63d53ab11alanv * 159370e96ebf69f91da84681a6263b3862c63d53ab11alanv * @param visibleToUser Whether the node is visible to the user. 159470e96ebf69f91da84681a6263b3862c63d53ab11alanv * 159570e96ebf69f91da84681a6263b3862c63d53ab11alanv * @throws IllegalStateException If called from an AccessibilityService. 159670e96ebf69f91da84681a6263b3862c63d53ab11alanv */ 159770e96ebf69f91da84681a6263b3862c63d53ab11alanv public void setVisibleToUser(boolean visibleToUser) { 159870e96ebf69f91da84681a6263b3862c63d53ab11alanv IMPL.setVisibleToUser(mInfo, visibleToUser); 159970e96ebf69f91da84681a6263b3862c63d53ab11alanv } 160070e96ebf69f91da84681a6263b3862c63d53ab11alanv 160170e96ebf69f91da84681a6263b3862c63d53ab11alanv /** 160270e96ebf69f91da84681a6263b3862c63d53ab11alanv * Gets whether this node is accessibility focused. 160370e96ebf69f91da84681a6263b3862c63d53ab11alanv * 160470e96ebf69f91da84681a6263b3862c63d53ab11alanv * @return True if the node is accessibility focused. 160570e96ebf69f91da84681a6263b3862c63d53ab11alanv */ 160670e96ebf69f91da84681a6263b3862c63d53ab11alanv public boolean isAccessibilityFocused() { 160770e96ebf69f91da84681a6263b3862c63d53ab11alanv return IMPL.isAccessibilityFocused(mInfo); 160870e96ebf69f91da84681a6263b3862c63d53ab11alanv } 160970e96ebf69f91da84681a6263b3862c63d53ab11alanv 161070e96ebf69f91da84681a6263b3862c63d53ab11alanv /** 161170e96ebf69f91da84681a6263b3862c63d53ab11alanv * Sets whether this node is accessibility focused. 161270e96ebf69f91da84681a6263b3862c63d53ab11alanv * <p> 161370e96ebf69f91da84681a6263b3862c63d53ab11alanv * <strong>Note:</strong> Cannot be called from an 161470e96ebf69f91da84681a6263b3862c63d53ab11alanv * {@link android.accessibilityservice.AccessibilityService}. 161570e96ebf69f91da84681a6263b3862c63d53ab11alanv * This class is made immutable before being delivered to an AccessibilityService. 161670e96ebf69f91da84681a6263b3862c63d53ab11alanv * </p> 161770e96ebf69f91da84681a6263b3862c63d53ab11alanv * 161870e96ebf69f91da84681a6263b3862c63d53ab11alanv * @param focused True if the node is accessibility focused. 161970e96ebf69f91da84681a6263b3862c63d53ab11alanv * 162070e96ebf69f91da84681a6263b3862c63d53ab11alanv * @throws IllegalStateException If called from an AccessibilityService. 162170e96ebf69f91da84681a6263b3862c63d53ab11alanv */ 162270e96ebf69f91da84681a6263b3862c63d53ab11alanv public void setAccessibilityFocused(boolean focused) { 162370e96ebf69f91da84681a6263b3862c63d53ab11alanv IMPL.setAccessibilityFocused(mInfo, focused); 162470e96ebf69f91da84681a6263b3862c63d53ab11alanv } 162570e96ebf69f91da84681a6263b3862c63d53ab11alanv 162670e96ebf69f91da84681a6263b3862c63d53ab11alanv /** 16279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Gets whether this node is selected. 16289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 16299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @return True if the node is selected. 16309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 16319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isSelected() { 16329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return IMPL.isSelected(mInfo); 16339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 16349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 16359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 16369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Sets whether this node is selected. 16379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <p> 16389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <strong>Note:</strong> Cannot be called from an 16399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * {@link android.accessibilityservice.AccessibilityService}. This class is 16409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * made immutable before being delivered to an AccessibilityService. 16419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * </p> 16429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 16439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @param selected True if the node is selected. 16449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @throws IllegalStateException If called from an AccessibilityService. 16459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 16469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setSelected(boolean selected) { 16479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov IMPL.setSelected(mInfo, selected); 16489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 16499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 16509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 16519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Gets whether this node is clickable. 16529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 16539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @return True if the node is clickable. 16549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 16559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isClickable() { 16569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return IMPL.isClickable(mInfo); 16579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 16589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 16599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 16609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Sets whether this node is clickable. 16619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <p> 16629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <strong>Note:</strong> Cannot be called from an 16639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * {@link android.accessibilityservice.AccessibilityService}. This class is 16649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * made immutable before being delivered to an AccessibilityService. 16659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * </p> 16669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 16679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @param clickable True if the node is clickable. 16689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @throws IllegalStateException If called from an AccessibilityService. 16699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 16709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setClickable(boolean clickable) { 16719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov IMPL.setClickable(mInfo, clickable); 16729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 16739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 16749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 16759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Gets whether this node is long clickable. 16769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 16779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @return True if the node is long clickable. 16789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 16799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isLongClickable() { 16809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return IMPL.isLongClickable(mInfo); 16819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 16829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 16839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 16849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Sets whether this node is long clickable. 16859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <p> 16869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <strong>Note:</strong> Cannot be called from an 16879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * {@link android.accessibilityservice.AccessibilityService}. This class is 16889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * made immutable before being delivered to an AccessibilityService. 16899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * </p> 16909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 16919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @param longClickable True if the node is long clickable. 16929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @throws IllegalStateException If called from an AccessibilityService. 16939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 16949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setLongClickable(boolean longClickable) { 16959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov IMPL.setLongClickable(mInfo, longClickable); 16969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 16979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 16989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 16999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Gets whether this node is enabled. 17009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 17019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @return True if the node is enabled. 17029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 17039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isEnabled() { 17049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return IMPL.isEnabled(mInfo); 17059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 17069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 17079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 17089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Sets whether this node is enabled. 17099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <p> 17109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <strong>Note:</strong> Cannot be called from an 17119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * {@link android.accessibilityservice.AccessibilityService}. This class is 17129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * made immutable before being delivered to an AccessibilityService. 17139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * </p> 17149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 17159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @param enabled True if the node is enabled. 17169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @throws IllegalStateException If called from an AccessibilityService. 17179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 17189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setEnabled(boolean enabled) { 17199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov IMPL.setEnabled(mInfo, enabled); 17209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 17219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 17229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 17239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Gets whether this node is a password. 17249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 17259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @return True if the node is a password. 17269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 17279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isPassword() { 17289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return IMPL.isPassword(mInfo); 17299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 17309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 17319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 17329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Sets whether this node is a password. 17339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <p> 17349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <strong>Note:</strong> Cannot be called from an 17359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * {@link android.accessibilityservice.AccessibilityService}. This class is 17369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * made immutable before being delivered to an AccessibilityService. 17379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * </p> 17389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 17399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @param password True if the node is a password. 17409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @throws IllegalStateException If called from an AccessibilityService. 17419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 17429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setPassword(boolean password) { 17439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov IMPL.setPassword(mInfo, password); 17449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 17459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 17469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 17479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Gets if the node is scrollable. 17489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 17499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @return True if the node is scrollable, false otherwise. 17509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 17519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean isScrollable() { 17529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return IMPL.isScrollable(mInfo); 17539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 17549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 17559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 17569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Sets if the node is scrollable. 17579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <p> 17589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <strong>Note:</strong> Cannot be called from an 17599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * {@link android.accessibilityservice.AccessibilityService}. This class is 17609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * made immutable before being delivered to an AccessibilityService. 17619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * </p> 17629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 17639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @param scrollable True if the node is scrollable, false otherwise. 17649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @throws IllegalStateException If called from an AccessibilityService. 17659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 17669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setScrollable(boolean scrollable) { 17679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov IMPL.setScrollable(mInfo, scrollable); 17689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 17699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 17709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 17719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Gets the package this node comes from. 17729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 17739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @return The package name. 17749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 17759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public CharSequence getPackageName() { 17769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return IMPL.getPackageName(mInfo); 17779648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 17789648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 17799648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 17809648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Sets the package this node comes from. 17819648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <p> 17829648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <strong>Note:</strong> Cannot be called from an 17839648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * {@link android.accessibilityservice.AccessibilityService}. This class is 17849648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * made immutable before being delivered to an AccessibilityService. 17859648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * </p> 17869648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 17879648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @param packageName The package name. 17889648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @throws IllegalStateException If called from an AccessibilityService. 17899648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 17909648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setPackageName(CharSequence packageName) { 17919648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov IMPL.setPackageName(mInfo, packageName); 17929648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 17939648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 17949648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 17959648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Gets the class this node comes from. 17969648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 17979648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @return The class name. 17989648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 17999648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public CharSequence getClassName() { 18009648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return IMPL.getClassName(mInfo); 18019648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 18029648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 18039648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 18049648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Sets the class this node comes from. 18059648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <p> 18069648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <strong>Note:</strong> Cannot be called from an 18079648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * {@link android.accessibilityservice.AccessibilityService}. This class is 18089648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * made immutable before being delivered to an AccessibilityService. 18099648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * </p> 18109648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 18119648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @param className The class name. 18129648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @throws IllegalStateException If called from an AccessibilityService. 18139648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 18149648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setClassName(CharSequence className) { 18159648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov IMPL.setClassName(mInfo, className); 18169648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 18179648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 18189648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 18199648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Gets the text of this node. 18209648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 18219648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @return The text. 18229648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 18239648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public CharSequence getText() { 18249648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return IMPL.getText(mInfo); 18259648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 18269648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 18279648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 18289648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Sets the text of this node. 18299648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <p> 18309648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <strong>Note:</strong> Cannot be called from an 18319648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * {@link android.accessibilityservice.AccessibilityService}. This class is 18329648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * made immutable before being delivered to an AccessibilityService. 18339648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * </p> 18349648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 18359648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @param text The text. 18369648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @throws IllegalStateException If called from an AccessibilityService. 18379648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 18389648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setText(CharSequence text) { 18399648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov IMPL.setText(mInfo, text); 18409648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 18419648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 18429648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 18439648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Gets the content description of this node. 18449648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 18459648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @return The content description. 18469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 18479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public CharSequence getContentDescription() { 18489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return IMPL.getContentDescription(mInfo); 18499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 18509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 18519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 18529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Sets the content description of this node. 18539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <p> 18549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <strong>Note:</strong> Cannot be called from an 18559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * {@link android.accessibilityservice.AccessibilityService}. This class is 18569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * made immutable before being delivered to an AccessibilityService. 18579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * </p> 18589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 18599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @param contentDescription The content description. 18609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @throws IllegalStateException If called from an AccessibilityService. 18619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 18629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void setContentDescription(CharSequence contentDescription) { 18639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov IMPL.setContentDescription(mInfo, contentDescription); 18649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 18659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 18669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov /** 18679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * Return an instance back to be reused. 18689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <p> 18699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * <strong>Note:</strong> You must not touch the object after calling this function. 18709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * 18719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov * @throws IllegalStateException If the info is already recycled. 18729648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov */ 18739648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public void recycle() { 18749648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov IMPL.recycle(mInfo); 18759648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 18769648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 18770fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav /** 18780fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * Sets the fully qualified resource name of the source view's id. 18790fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * 18800fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * <p> 18810fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * <strong>Note:</strong> Cannot be called from an 18820fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * {@link android.accessibilityservice.AccessibilityService}. 18830fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * This class is made immutable before being delivered to an AccessibilityService. 18840fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * </p> 18850fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * 18860fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * @param viewId The id resource name. 18870fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav */ 1888071eca0f490d88fc51cea8f739780c7c92b920c3Svetoslav public void setViewIdResourceName(String viewId) { 18890fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav IMPL.setViewIdResourceName(mInfo, viewId); 18900fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav } 18910fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav 18920fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav /** 18930fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * Gets the fully qualified resource name of the source view's id. 18940fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * 18950fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * <p> 18960fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * <strong>Note:</strong> The primary usage of this API is for UI test automation 18970fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * and in order to report the source view id of an {@link AccessibilityNodeInfoCompat} 18980fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * the client has to set the {@link AccessibilityServiceInfoCompat#FLAG_REPORT_VIEW_IDS} 18990fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * flag when configuring his {@link android.accessibilityservice.AccessibilityService}. 19000fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * </p> 19010fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * 19020fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav * @return The id resource name. 19030fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav */ 1904071eca0f490d88fc51cea8f739780c7c92b920c3Svetoslav public String getViewIdResourceName() { 19050fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav return IMPL.getViewIdResourceName(mInfo); 19060fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav } 19070fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav 1908086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette /** 1909086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette * Gets the node's live region mode. 1910086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette * <p> 1911086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette * A live region is a node that contains information that is important for 1912086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette * the user and when it changes the user should be notified. For example, 1913086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette * in a login screen with a TextView that displays an "incorrect password" 1914086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette * notification, that view should be marked as a live region with mode 1915086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette * {@link ViewCompat#ACCESSIBILITY_LIVE_REGION_POLITE}. 1916086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette * <p> 1917086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette * It is the responsibility of the accessibility service to monitor 1918086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette * {@link AccessibilityEventCompat#TYPE_WINDOW_CONTENT_CHANGED} events 1919086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette * indicating changes to live region nodes and their children. 1920086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette * 1921086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette * @return The live region mode, or 1922086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette * {@link ViewCompat#ACCESSIBILITY_LIVE_REGION_NONE} if the view is 1923086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette * not a live region. 1924086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette * @see ViewCompat#getAccessibilityLiveRegion(View) 1925086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette */ 1926086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette public int getLiveRegion() { 1927086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette return IMPL.getLiveRegion(mInfo); 1928086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette } 1929086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette 1930086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette /** 1931086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette * Sets the node's live region mode. 1932086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette * <p> 1933086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette * <strong>Note:</strong> Cannot be called from an 1934086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette * {@link android.accessibilityservice.AccessibilityService}. This class is 1935086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette * made immutable before being delivered to an AccessibilityService. 1936086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette * 1937086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette * @param mode The live region mode, or 1938086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette * {@link ViewCompat#ACCESSIBILITY_LIVE_REGION_NONE} if the view is 1939086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette * not a live region. 1940086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette * @see ViewCompat#setAccessibilityLiveRegion(View, int) 1941086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette */ 1942086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette public void setLiveRegion(int mode) { 1943086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette IMPL.setLiveRegion(mInfo, mode); 1944086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette } 1945086e7db1ab6ef49b4b7974c471b70f81b2d13aefAlan Viverette 19469648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 19479648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public int hashCode() { 19489648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return (mInfo == null) ? 0 : mInfo.hashCode(); 19499648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 19509648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov 19519648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov @Override 19529648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov public boolean equals(Object obj) { 19539648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov if (this == obj) { 19549648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return true; 19559648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 19569648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov if (obj == null) { 19579648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return false; 19589648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 19599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov if (getClass() != obj.getClass()) { 19609648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return false; 19619648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 19629648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov AccessibilityNodeInfoCompat other = (AccessibilityNodeInfoCompat) obj; 19639648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov if (mInfo == null) { 19649648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov if (other.mInfo != null) { 19659648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return false; 19669648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 19679648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } else if (!mInfo.equals(other.mInfo)) { 19689648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return false; 19699648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 19709648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov return true; 19719648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov } 19720fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav 19730fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav @Override 19740fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav public String toString() { 19750fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav StringBuilder builder = new StringBuilder(); 19760fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav builder.append(super.toString()); 19770fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav 19780fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav Rect bounds = new Rect(); 19790fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav 19800fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav getBoundsInParent(bounds); 19810fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav builder.append("; boundsInParent: " + bounds); 19820fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav 19830fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav getBoundsInScreen(bounds); 19840fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav builder.append("; boundsInScreen: " + bounds); 19850fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav 19860fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav builder.append("; packageName: ").append(getPackageName()); 19870fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav builder.append("; className: ").append(getClassName()); 19880fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav builder.append("; text: ").append(getText()); 19890fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav builder.append("; contentDescription: ").append(getContentDescription()); 19900fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav builder.append("; viewId: ").append(getViewIdResourceName()); 19910fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav 19920fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav builder.append("; checkable: ").append(isCheckable()); 19930fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav builder.append("; checked: ").append(isChecked()); 19940fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav builder.append("; focusable: ").append(isFocusable()); 19950fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav builder.append("; focused: ").append(isFocused()); 19960fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav builder.append("; selected: ").append(isSelected()); 19970fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav builder.append("; clickable: ").append(isClickable()); 19980fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav builder.append("; longClickable: ").append(isLongClickable()); 19990fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav builder.append("; enabled: ").append(isEnabled()); 20000fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav builder.append("; password: ").append(isPassword()); 20010fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav builder.append("; scrollable: " + isScrollable()); 20020fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav 20030fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav builder.append("; ["); 20040fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav for (int actionBits = getActions(); actionBits != 0;) { 20050fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav final int action = 1 << Integer.numberOfTrailingZeros(actionBits); 20060fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav actionBits &= ~action; 20070fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav builder.append(getActionSymbolicName(action)); 20080fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav if (actionBits != 0) { 20090fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav builder.append(", "); 20100fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav } 20110fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav } 20120fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav builder.append("]"); 20130fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav 20140fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav return builder.toString(); 20150fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav } 20160fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav 20170fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav private static String getActionSymbolicName(int action) { 20180fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav switch (action) { 20190fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav case ACTION_FOCUS: 20200fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav return "ACTION_FOCUS"; 20210fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav case ACTION_CLEAR_FOCUS: 20220fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav return "ACTION_CLEAR_FOCUS"; 20230fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav case ACTION_SELECT: 20240fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav return "ACTION_SELECT"; 20250fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav case ACTION_CLEAR_SELECTION: 20260fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav return "ACTION_CLEAR_SELECTION"; 20270fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav case ACTION_CLICK: 20280fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav return "ACTION_CLICK"; 20290fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav case ACTION_LONG_CLICK: 20300fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav return "ACTION_LONG_CLICK"; 20310fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav case ACTION_ACCESSIBILITY_FOCUS: 20320fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav return "ACTION_ACCESSIBILITY_FOCUS"; 20330fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav case ACTION_CLEAR_ACCESSIBILITY_FOCUS: 20340fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav return "ACTION_CLEAR_ACCESSIBILITY_FOCUS"; 20350fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav case ACTION_NEXT_AT_MOVEMENT_GRANULARITY: 20360fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav return "ACTION_NEXT_AT_MOVEMENT_GRANULARITY"; 20370fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav case ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY: 20380fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav return "ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY"; 20390fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav case ACTION_NEXT_HTML_ELEMENT: 20400fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav return "ACTION_NEXT_HTML_ELEMENT"; 20410fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav case ACTION_PREVIOUS_HTML_ELEMENT: 20420fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav return "ACTION_PREVIOUS_HTML_ELEMENT"; 20430fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav case ACTION_SCROLL_FORWARD: 20440fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav return "ACTION_SCROLL_FORWARD"; 20450fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav case ACTION_SCROLL_BACKWARD: 20460fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav return "ACTION_SCROLL_BACKWARD"; 20470fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav case ACTION_CUT: 20480fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav return "ACTION_CUT"; 20490fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav case ACTION_COPY: 20500fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav return "ACTION_COPY"; 20510fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav case ACTION_PASTE: 20520fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav return "ACTION_PASTE"; 20530fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav case ACTION_SET_SELECTION: 20540fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav return "ACTION_SET_SELECTION"; 20550fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav default: 20560fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav return"ACTION_UNKNOWN"; 20570fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav } 20580fc5bd7644f7563f7b59bd1017df9c938857e794Svetoslav } 20599648c538bac4f04145c118cc41168d1d7a536312Svetoslav Ganov} 2060