private AccessibilityNodeInfoCompat populateNodeForItemInternal( T item, AccessibilityNodeInfoCompat node) { final int virtualDescendantId = getIdForItem(item); // Ensure the client has good defaults. node.setEnabled(true); // Allow the client to populate the node. populateNodeForItem(item, node); if (TextUtils.isEmpty(node.getText()) && TextUtils.isEmpty(node.getContentDescription())) { throw new RuntimeException( "You must add text or a content description in populateNodeForItem()"); } // Don't allow the client to override these properties. node.setPackageName(mParentView.getContext().getPackageName()); node.setClassName(item.getClass().getName()); node.setParent(mParentView); node.setSource(mParentView, virtualDescendantId); if (mFocusedItemId == virtualDescendantId) { node.addAction(AccessibilityNodeInfoCompat.ACTION_CLEAR_ACCESSIBILITY_FOCUS); } else { node.addAction(AccessibilityNodeInfoCompat.ACTION_ACCESSIBILITY_FOCUS); } node.getBoundsInParent(mTempParentRect); if (mTempParentRect.isEmpty()) { throw new RuntimeException("You must set parent bounds in populateNodeForItem()"); } // Set the visibility based on the parent bound. if (intersectVisibleToUser(mTempParentRect)) { node.setVisibleToUser(true); node.setBoundsInParent(mTempParentRect); } // Calculate screen-relative bound. mParentView.getLocationOnScreen(mTempGlobalRect); final int offsetX = mTempGlobalRect[0]; final int offsetY = mTempGlobalRect[1]; mTempScreenRect.set(mTempParentRect); mTempScreenRect.offset(offsetX, offsetY); node.setBoundsInScreen(mTempScreenRect); return node; }
private AccessibilityNodeInfoCompat createNodeForChild(int i) { AccessibilityNodeInfoCompat accessibilitynodeinfocompat = AccessibilityNodeInfoCompat.obtain(); accessibilitynodeinfocompat.setEnabled(true); accessibilitynodeinfocompat.setClassName(DEFAULT_CLASS_NAME); onPopulateNodeForVirtualView(i, accessibilitynodeinfocompat); if (accessibilitynodeinfocompat.getText() == null && accessibilitynodeinfocompat.getContentDescription() == null) { throw new RuntimeException( "Callbacks must add text or a content description in populateNodeForVirtualViewId()"); } accessibilitynodeinfocompat.getBoundsInParent(mTempParentRect); if (mTempParentRect.isEmpty()) { throw new RuntimeException( "Callbacks must set parent bounds in populateNodeForVirtualViewId()"); } int j = accessibilitynodeinfocompat.getActions(); if ((j & 0x40) != 0) { throw new RuntimeException( "Callbacks must not add ACTION_ACCESSIBILITY_FOCUS in populateNodeForVirtualViewId()"); } if ((j & 0x80) != 0) { throw new RuntimeException( "Callbacks must not add ACTION_CLEAR_ACCESSIBILITY_FOCUS in populateNodeForVirtualViewId()"); } accessibilitynodeinfocompat.setPackageName(mView.getContext().getPackageName()); accessibilitynodeinfocompat.setSource(mView, i); accessibilitynodeinfocompat.setParent(mView); if (mFocusedVirtualViewId == i) { accessibilitynodeinfocompat.setAccessibilityFocused(true); accessibilitynodeinfocompat.addAction(128); } else { accessibilitynodeinfocompat.setAccessibilityFocused(false); accessibilitynodeinfocompat.addAction(64); } if (intersectVisibleToUser(mTempParentRect)) { accessibilitynodeinfocompat.setVisibleToUser(true); accessibilitynodeinfocompat.setBoundsInParent(mTempParentRect); } mView.getLocationOnScreen(mTempGlobalRect); i = mTempGlobalRect[0]; j = mTempGlobalRect[1]; mTempScreenRect.set(mTempParentRect); mTempScreenRect.offset(i, j); accessibilitynodeinfocompat.setBoundsInScreen(mTempScreenRect); return accessibilitynodeinfocompat; }
public void onInitializeAccessibilityNodeInfo(View var1, AccessibilityNodeInfoCompat var2) { super.onInitializeAccessibilityNodeInfo(var1, var2); NestedScrollView var4 = (NestedScrollView) var1; var2.setClassName(ScrollView.class.getName()); if (var4.isEnabled()) { int var3 = var4.getScrollRange(); if (var3 > 0) { var2.setScrollable(true); if (var4.getScrollY() > 0) { var2.addAction(8192); } if (var4.getScrollY() < var3) { var2.addAction(4096); } } } }
@Override protected void onPopulateNodeForVirtualView( int virtualViewId, AccessibilityNodeInfoCompat node) { if (mVirtualViews == null || mVirtualViews.size() <= virtualViewId) { // TODO(clholgat): Remove this work around when the Android bug is fixed. // crbug.com/420177 node.setBoundsInParent(mPlaceHolderRect); node.setContentDescription(PLACE_HOLDER_STRING); return; } VirtualView view = mVirtualViews.get(virtualViewId); view.getTouchTarget(mTouchTarget); node.setBoundsInParent(rectToPx(mTouchTarget)); node.setContentDescription(view.getAccessibilityDescription()); node.addAction(AccessibilityNodeInfoCompat.ACTION_CLICK); node.addAction(AccessibilityNodeInfoCompat.ACTION_FOCUS); node.addAction(AccessibilityNodeInfoCompat.ACTION_LONG_CLICK); }
@Override protected void onPopulateNodeForVirtualView( int virtualViewId, AccessibilityNodeInfoCompat node) { getItemBounds(virtualViewId, mTempRect); node.setContentDescription(getItemDescription(virtualViewId)); node.setBoundsInParent(mTempRect); node.addAction(AccessibilityNodeInfo.ACTION_CLICK); if (virtualViewId == mSelectedDay) { node.setSelected(true); } }
private void copyNodeInfoNoChildren(AccessibilityNodeInfoCompat accessibilityNodeInfoCompat, AccessibilityNodeInfoCompat accessibilityNodeInfoCompat2) { Rect rect = this.mTmpRect; accessibilityNodeInfoCompat2.getBoundsInParent(rect); accessibilityNodeInfoCompat.setBoundsInParent(rect); accessibilityNodeInfoCompat2.getBoundsInScreen(rect); accessibilityNodeInfoCompat.setBoundsInScreen(rect); accessibilityNodeInfoCompat.setVisibleToUser(accessibilityNodeInfoCompat2.isVisibleToUser()); accessibilityNodeInfoCompat.setPackageName(accessibilityNodeInfoCompat2.getPackageName()); accessibilityNodeInfoCompat.setClassName(accessibilityNodeInfoCompat2.getClassName()); accessibilityNodeInfoCompat.setContentDescription(accessibilityNodeInfoCompat2.getContentDescription()); accessibilityNodeInfoCompat.setEnabled(accessibilityNodeInfoCompat2.isEnabled()); accessibilityNodeInfoCompat.setClickable(accessibilityNodeInfoCompat2.isClickable()); accessibilityNodeInfoCompat.setFocusable(accessibilityNodeInfoCompat2.isFocusable()); accessibilityNodeInfoCompat.setFocused(accessibilityNodeInfoCompat2.isFocused()); accessibilityNodeInfoCompat.setAccessibilityFocused(accessibilityNodeInfoCompat2.isAccessibilityFocused()); accessibilityNodeInfoCompat.setSelected(accessibilityNodeInfoCompat2.isSelected()); accessibilityNodeInfoCompat.setLongClickable(accessibilityNodeInfoCompat2.isLongClickable()); accessibilityNodeInfoCompat.addAction(accessibilityNodeInfoCompat2.getActions()); accessibilityNodeInfoCompat.setMovementGranularities(accessibilityNodeInfoCompat2.getMovementGranularities()); }
public final void onInitializeAccessibilityNodeInfo( View view, AccessibilityNodeInfoCompat accessibilitynodeinfocompat) { AccessibilityNodeInfoCompat accessibilitynodeinfocompat1 = AccessibilityNodeInfoCompat.obtain(accessibilitynodeinfocompat); super.onInitializeAccessibilityNodeInfo(view, accessibilitynodeinfocompat1); accessibilitynodeinfocompat.setClassName( com / roidapp / baselib / view / FixedDrawerLayout.getName()); accessibilitynodeinfocompat.setSource(view); Object obj = ViewCompat.getParentForAccessibility(view); if (obj instanceof View) { accessibilitynodeinfocompat.setParent((View) obj); } obj = b; accessibilitynodeinfocompat1.getBoundsInParent(((Rect) (obj))); accessibilitynodeinfocompat.setBoundsInParent(((Rect) (obj))); accessibilitynodeinfocompat1.getBoundsInScreen(((Rect) (obj))); accessibilitynodeinfocompat.setBoundsInScreen(((Rect) (obj))); accessibilitynodeinfocompat.setVisibleToUser(accessibilitynodeinfocompat1.isVisibleToUser()); accessibilitynodeinfocompat.setPackageName(accessibilitynodeinfocompat1.getPackageName()); accessibilitynodeinfocompat.setClassName(accessibilitynodeinfocompat1.getClassName()); accessibilitynodeinfocompat.setContentDescription( accessibilitynodeinfocompat1.getContentDescription()); accessibilitynodeinfocompat.setEnabled(accessibilitynodeinfocompat1.isEnabled()); accessibilitynodeinfocompat.setClickable(accessibilitynodeinfocompat1.isClickable()); accessibilitynodeinfocompat.setFocusable(accessibilitynodeinfocompat1.isFocusable()); accessibilitynodeinfocompat.setFocused(accessibilitynodeinfocompat1.isFocused()); accessibilitynodeinfocompat.setAccessibilityFocused( accessibilitynodeinfocompat1.isAccessibilityFocused()); accessibilitynodeinfocompat.setSelected(accessibilitynodeinfocompat1.isSelected()); accessibilitynodeinfocompat.setLongClickable(accessibilitynodeinfocompat1.isLongClickable()); accessibilitynodeinfocompat.addAction(accessibilitynodeinfocompat1.getActions()); accessibilitynodeinfocompat1.recycle(); view = (ViewGroup) view; int j = view.getChildCount(); for (int i = 0; i < j; i++) { View view1 = view.getChildAt(i); if (FixedDrawerLayout.h(view1)) { accessibilitynodeinfocompat.addChild(view1); } } }