Loading api/current.txt +9 −9 Original line number Original line Diff line number Diff line Loading @@ -28688,6 +28688,7 @@ package android.view.accessibility { method public void addAction(int); method public void addAction(int); method public void addChild(android.view.View); method public void addChild(android.view.View); method public void addChild(android.view.View, int); method public void addChild(android.view.View, int); method public boolean canOpenPopup(); method public int describeContents(); method public int describeContents(); method public java.util.List<android.view.accessibility.AccessibilityNodeInfo> findAccessibilityNodeInfosByText(java.lang.String); method public java.util.List<android.view.accessibility.AccessibilityNodeInfo> findAccessibilityNodeInfosByText(java.lang.String); method public java.util.List<android.view.accessibility.AccessibilityNodeInfo> findAccessibilityNodeInfosByViewId(java.lang.String); method public java.util.List<android.view.accessibility.AccessibilityNodeInfo> findAccessibilityNodeInfosByViewId(java.lang.String); Loading @@ -28696,18 +28697,17 @@ package android.view.accessibility { method public int getActions(); method public int getActions(); method public void getBoundsInParent(android.graphics.Rect); method public void getBoundsInParent(android.graphics.Rect); method public void getBoundsInScreen(android.graphics.Rect); method public void getBoundsInScreen(android.graphics.Rect); method public android.os.Bundle getBundle(); method public android.view.accessibility.AccessibilityNodeInfo getChild(int); method public android.view.accessibility.AccessibilityNodeInfo getChild(int); method public int getChildCount(); method public int getChildCount(); method public java.lang.CharSequence getClassName(); method public java.lang.CharSequence getClassName(); method public android.view.accessibility.AccessibilityNodeInfo.CollectionInfo getCollectionInfo(); method public android.view.accessibility.AccessibilityNodeInfo.CollectionInfo getCollectionInfo(); method public android.view.accessibility.AccessibilityNodeInfo.CollectionItemInfo getCollectionItemInfo(); method public android.view.accessibility.AccessibilityNodeInfo.CollectionItemInfo getCollectionItemInfo(); method public java.lang.CharSequence getContentDescription(); method public java.lang.CharSequence getContentDescription(); method public android.os.Bundle getExtras(); method public int getInputType(); method public int getInputType(); method public android.view.accessibility.AccessibilityNodeInfo getLabelFor(); method public android.view.accessibility.AccessibilityNodeInfo getLabelFor(); method public android.view.accessibility.AccessibilityNodeInfo getLabeledBy(); method public android.view.accessibility.AccessibilityNodeInfo getLabeledBy(); method public int getMovementGranularities(); method public int getMovementGranularities(); method public boolean getOpensPopup(); method public java.lang.CharSequence getPackageName(); method public java.lang.CharSequence getPackageName(); method public android.view.accessibility.AccessibilityNodeInfo getParent(); method public android.view.accessibility.AccessibilityNodeInfo getParent(); method public android.view.accessibility.AccessibilityNodeInfo.RangeInfo getRangeInfo(); method public android.view.accessibility.AccessibilityNodeInfo.RangeInfo getRangeInfo(); Loading Loading @@ -28746,6 +28746,7 @@ package android.view.accessibility { method public void setAccessibilityFocused(boolean); method public void setAccessibilityFocused(boolean); method public void setBoundsInParent(android.graphics.Rect); method public void setBoundsInParent(android.graphics.Rect); method public void setBoundsInScreen(android.graphics.Rect); method public void setBoundsInScreen(android.graphics.Rect); method public void setCanOpenPopup(boolean); method public void setCheckable(boolean); method public void setCheckable(boolean); method public void setChecked(boolean); method public void setChecked(boolean); method public void setClassName(java.lang.CharSequence); method public void setClassName(java.lang.CharSequence); Loading @@ -28770,7 +28771,6 @@ package android.view.accessibility { method public void setLongClickable(boolean); method public void setLongClickable(boolean); method public void setMovementGranularities(int); method public void setMovementGranularities(int); method public void setMultiLine(boolean); method public void setMultiLine(boolean); method public void setOpensPopup(boolean); method public void setPackageName(java.lang.CharSequence); method public void setPackageName(java.lang.CharSequence); method public void setParent(android.view.View); method public void setParent(android.view.View); method public void setParent(android.view.View, int); method public void setParent(android.view.View, int); Loading Loading @@ -28822,17 +28822,17 @@ package android.view.accessibility { } } public static final class AccessibilityNodeInfo.CollectionInfo { public static final class AccessibilityNodeInfo.CollectionInfo { method public int getHorizontalSize(); method public int getColumnCount(); method public int getVerticalSize(); method public int getRowCount(); method public boolean isHierarchical(); method public boolean isHierarchical(); method public static android.view.accessibility.AccessibilityNodeInfo.CollectionInfo obtain(int, int, boolean); method public static android.view.accessibility.AccessibilityNodeInfo.CollectionInfo obtain(int, int, boolean); } } public static final class AccessibilityNodeInfo.CollectionItemInfo { public static final class AccessibilityNodeInfo.CollectionItemInfo { method public int getHorizontalPosition(); method public int getColumnIndex(); method public int getHorizontalSpan(); method public int getColumnSpan(); method public int getVerticalPosition(); method public int getRowIndex(); method public int getVerticalSpan(); method public int getRowSpan(); method public boolean isHeading(); method public boolean isHeading(); method public static android.view.accessibility.AccessibilityNodeInfo.CollectionItemInfo obtain(int, int, int, int, boolean); method public static android.view.accessibility.AccessibilityNodeInfo.CollectionItemInfo obtain(int, int, int, int, boolean); } } core/java/android/view/accessibility/AccessibilityNodeInfo.java +115 −91 Original line number Original line Diff line number Diff line Loading @@ -518,7 +518,7 @@ public class AccessibilityNodeInfo implements Parcelable { private int mTextSelectionEnd = UNDEFINED; private int mTextSelectionEnd = UNDEFINED; private int mInputType = InputType.TYPE_NULL; private int mInputType = InputType.TYPE_NULL; private Bundle mBundle; private Bundle mExtras; private int mConnectionId = UNDEFINED; private int mConnectionId = UNDEFINED; Loading Loading @@ -1471,9 +1471,18 @@ public class AccessibilityNodeInfo implements Parcelable { } } /** /** * Gets if the node is a live region for whose changes the user * Gets if the node is a live region. * should be notified. It is the responsibility of the accessibility * <p> * A live region is a node that contains information that is important * for the user and when it changes the user has to be notified. For * example, if the user plays a video and the application shows a * progress indicator with the percentage of buffering, then the progress * indicator should be marked as a live region. * </p> * <p> * It is the responsibility of the accessibility * service to monitor this region and notify the user if it changes. * service to monitor this region and notify the user if it changes. * </p> * * * @return If the node is a live region. * @return If the node is a live region. */ */ Loading Loading @@ -1525,7 +1534,7 @@ public class AccessibilityNodeInfo implements Parcelable { * * * @return If the the node opens a popup. * @return If the the node opens a popup. */ */ public boolean getOpensPopup() { public boolean canOpenPopup() { return getBooleanProperty(BOOLEAN_PROPERTY_OPENS_POPUP); return getBooleanProperty(BOOLEAN_PROPERTY_OPENS_POPUP); } } Loading @@ -1539,7 +1548,8 @@ public class AccessibilityNodeInfo implements Parcelable { * * * @param opensPopup If the the node opens a popup. * @param opensPopup If the the node opens a popup. */ */ public void setOpensPopup(boolean opensPopup) { public void setCanOpenPopup(boolean opensPopup) { enforceNotSealed(); setBooleanProperty(BOOLEAN_PROPERTY_OPENS_POPUP, opensPopup); setBooleanProperty(BOOLEAN_PROPERTY_OPENS_POPUP, opensPopup); } } Loading Loading @@ -1927,7 +1937,7 @@ public class AccessibilityNodeInfo implements Parcelable { } } /** /** * Gets an optional bundle with additional data. The bundle * Gets an optional bundle with extra data. The bundle * is lazily created and never <code>null</code>. * is lazily created and never <code>null</code>. * <p> * <p> * <strong>Note:</strong> It is recommended to use the package * <strong>Note:</strong> It is recommended to use the package Loading @@ -1939,11 +1949,11 @@ public class AccessibilityNodeInfo implements Parcelable { * * * @return The bundle. * @return The bundle. */ */ public Bundle getBundle() { public Bundle getExtras() { if (mBundle == null) { if (mExtras == null) { mBundle = new Bundle(); mExtras = new Bundle(); } } return mBundle; return mExtras; } } /** /** Loading Loading @@ -2194,9 +2204,9 @@ public class AccessibilityNodeInfo implements Parcelable { parcel.writeInt(mTextSelectionEnd); parcel.writeInt(mTextSelectionEnd); parcel.writeInt(mInputType); parcel.writeInt(mInputType); if (mBundle != null) { if (mExtras != null) { parcel.writeInt(1); parcel.writeInt(1); parcel.writeBundle(mBundle); parcel.writeBundle(mExtras); } else { } else { parcel.writeInt(0); parcel.writeInt(0); } } Loading @@ -2213,8 +2223,8 @@ public class AccessibilityNodeInfo implements Parcelable { if (mCollectionInfo != null) { if (mCollectionInfo != null) { parcel.writeInt(1); parcel.writeInt(1); parcel.writeInt(mCollectionInfo.getHorizontalSize()); parcel.writeInt(mCollectionInfo.getRowCount()); parcel.writeInt(mCollectionInfo.getVerticalSize()); parcel.writeInt(mCollectionInfo.getColumnCount()); parcel.writeInt(mCollectionInfo.isHierarchical() ? 1 : 0); parcel.writeInt(mCollectionInfo.isHierarchical() ? 1 : 0); } else { } else { parcel.writeInt(0); parcel.writeInt(0); Loading @@ -2222,10 +2232,10 @@ public class AccessibilityNodeInfo implements Parcelable { if (mCollectionItemInfo != null) { if (mCollectionItemInfo != null) { parcel.writeInt(1); parcel.writeInt(1); parcel.writeInt(mCollectionItemInfo.getHorizontalPosition()); parcel.writeInt(mCollectionItemInfo.getColumnIndex()); parcel.writeInt(mCollectionItemInfo.getHorizontalSpan()); parcel.writeInt(mCollectionItemInfo.getColumnSpan()); parcel.writeInt(mCollectionItemInfo.getVerticalPosition()); parcel.writeInt(mCollectionItemInfo.getRowIndex()); parcel.writeInt(mCollectionItemInfo.getVerticalSpan()); parcel.writeInt(mCollectionItemInfo.getRowSpan()); parcel.writeInt(mCollectionItemInfo.isHeading() ? 1 : 0); parcel.writeInt(mCollectionItemInfo.isHeading() ? 1 : 0); } else { } else { parcel.writeInt(0); parcel.writeInt(0); Loading Loading @@ -2266,8 +2276,8 @@ public class AccessibilityNodeInfo implements Parcelable { mTextSelectionStart = other.mTextSelectionStart; mTextSelectionStart = other.mTextSelectionStart; mTextSelectionEnd = other.mTextSelectionEnd; mTextSelectionEnd = other.mTextSelectionEnd; mInputType = other.mInputType; mInputType = other.mInputType; if (other.mBundle != null && !other.mBundle.isEmpty()) { if (other.mExtras != null && !other.mExtras.isEmpty()) { getBundle().putAll(other.mBundle); getExtras().putAll(other.mExtras); } } mRangeInfo = other.mRangeInfo; mRangeInfo = other.mRangeInfo; mCollectionInfo = other.mCollectionInfo; mCollectionInfo = other.mCollectionInfo; Loading Loading @@ -2323,7 +2333,7 @@ public class AccessibilityNodeInfo implements Parcelable { mInputType = parcel.readInt(); mInputType = parcel.readInt(); if (parcel.readInt() == 1) { if (parcel.readInt() == 1) { getBundle().putAll(parcel.readBundle()); getExtras().putAll(parcel.readBundle()); } } if (parcel.readInt() == 1) { if (parcel.readInt() == 1) { Loading Loading @@ -2376,8 +2386,8 @@ public class AccessibilityNodeInfo implements Parcelable { mTextSelectionStart = UNDEFINED; mTextSelectionStart = UNDEFINED; mTextSelectionEnd = UNDEFINED; mTextSelectionEnd = UNDEFINED; mInputType = InputType.TYPE_NULL; mInputType = InputType.TYPE_NULL; if (mBundle != null) { if (mExtras != null) { mBundle.clear(); mExtras.clear(); } } if (mRangeInfo != null) { if (mRangeInfo != null) { mRangeInfo.recycle(); mRangeInfo.recycle(); Loading Loading @@ -2677,7 +2687,15 @@ public class AccessibilityNodeInfo implements Parcelable { /** /** * Class with information if a node is a collection. Use * Class with information if a node is a collection. Use * {@link CollectionInfo#obtain(int, int, boolean) to an instance. * {@link CollectionInfo#obtain(int, int, boolean)} to get an instance. * <p> * A collection of items has rows and columns and may be hierarchical. * For example, a horizontal list is a collection with one column, as * many rows as the list items, and is not hierarchical; A table is a * collection with several rows, several columns, and is not hierarchical; * A vertical tree is a hierarchical collection with one column and * as many rows as the first level children. * </p> */ */ public static final class CollectionInfo { public static final class CollectionInfo { private static final int MAX_POOL_SIZE = 20; private static final int MAX_POOL_SIZE = 20; Loading @@ -2685,54 +2703,54 @@ public class AccessibilityNodeInfo implements Parcelable { private static final SynchronizedPool<CollectionInfo> sPool = private static final SynchronizedPool<CollectionInfo> sPool = new SynchronizedPool<CollectionInfo>(MAX_POOL_SIZE); new SynchronizedPool<CollectionInfo>(MAX_POOL_SIZE); private int mHorizontalSize; private int mRowCount; private int mVerticalSize; private int mColumnCount; private boolean mHierarchical; private boolean mHierarchical; /** /** * Obtains a pooled instance. * Obtains a pooled instance. * * * @param horizontalSize The horizontal size. * @param rowCount The number of rows. * @param verticalSize The vertical size. * @param columnCount The number of columns. * @param hierarchical Whether the collection is hierarchical. * @param hierarchical Whether the collection is hierarchical. */ */ public static CollectionInfo obtain(int horizontalSize, int verticalSize, public static CollectionInfo obtain(int rowCount, int columnCount, boolean hierarchical) { boolean hierarchical) { CollectionInfo info = sPool.acquire(); CollectionInfo info = sPool.acquire(); return (info != null) ? info : new CollectionInfo(horizontalSize, return (info != null) ? info : new CollectionInfo(rowCount, verticalSize, hierarchical); columnCount, hierarchical); } } /** /** * Creates a new instance. * Creates a new instance. * * * @param horizontalSize The horizontal size. * @param rowCount The number of rows. * @param verticalSize The vertical size. * @param columnCount The number of columns. * @param hierarchical Whether the collection is hierarchical. * @param hierarchical Whether the collection is hierarchical. */ */ private CollectionInfo(int horizontalSize, int verticalSize, private CollectionInfo(int rowCount, int columnCount, boolean hierarchical) { boolean hierarchical) { mHorizontalSize = horizontalSize; mRowCount = rowCount; mVerticalSize = verticalSize; mColumnCount = columnCount; mHierarchical = hierarchical; mHierarchical = hierarchical; } } /** /** * Gets the horizontal size in terms of item positions. * Gets the number of rows. * * * @return The size. * @return The row count. */ */ public int getHorizontalSize() { public int getRowCount() { return mHorizontalSize; return mRowCount; } } /** /** * Gets the vertical size in terms of item positions. * Gets the number of columns. * * * @return The size. * @return The column count. */ */ public int getVerticalSize() { public int getColumnCount() { return mVerticalSize; return mColumnCount; } } /** /** Loading @@ -2753,15 +2771,23 @@ public class AccessibilityNodeInfo implements Parcelable { } } private void clear() { private void clear() { mHorizontalSize = 0; mRowCount = 0; mVerticalSize = 0; mColumnCount = 0; mHierarchical = false; mHierarchical = false; } } } } /** /** * Class with information if a node is a collection item. Use * Class with information if a node is a collection item. Use * {@link CollectionItemInfo#obtain(int, int, int, int, boolean) to get an instance. * {@link CollectionItemInfo#obtain(int, int, int, int, boolean)} * to get an instance. * <p> * A collection item is contained in a collection, it starts at * a given row and column in the collection, and spans one or * more rows and columns. For example, a header of two related * table columns starts at the first row and the first column, * spans one row and two columns. * </p> */ */ public static final class CollectionItemInfo { public static final class CollectionItemInfo { private static final int MAX_POOL_SIZE = 20; private static final int MAX_POOL_SIZE = 20; Loading @@ -2772,79 +2798,77 @@ public class AccessibilityNodeInfo implements Parcelable { /** /** * Obtains a pooled instance. * Obtains a pooled instance. * * * @param horizontalPosition The horizontal item position. * @param rowIndex The row index at which the item is located. * @param horizontalSpan The horizontal item span. * @param rowSpan The number of rows the item spans. * @param verticalPosition The vertical item position. * @param columnIndex The column index at which the item is located. * @param verticalSpan The vertical item span. * @param columnSpan The number of columns the item spans. * @param heading Whether the item is a heading. * @param heading Whether the item is a heading. */ */ public static CollectionItemInfo obtain(int horizontalPosition, int horizontalSpan, public static CollectionItemInfo obtain(int rowIndex, int rowSpan, int verticalPosition, int verticalSpan, boolean heading) { int columnIndex, int columnSpan, boolean heading) { CollectionItemInfo info = sPool.acquire(); CollectionItemInfo info = sPool.acquire(); return (info != null) ? info : new CollectionItemInfo(horizontalPosition, return (info != null) ? info : new CollectionItemInfo(rowIndex, horizontalSpan, verticalPosition, verticalSpan, heading); rowSpan, columnIndex, columnSpan, heading); } } private boolean mHeading; private boolean mHeading; private int mHorizontalPosition; private int mColumnIndex; private int mVerticalPosition; private int mRowIndex; private int mHorizontalSpan; private int mColumnSpan; private int mVerticalSpan; private int mRowSpan; /** /** * Creates a new instance. * Creates a new instance. * * * @param horizontalPosition The horizontal item position. * @param rowIndex The row index at which the item is located. * @param horizontalSpan The horizontal item span. * @param rowSpan The number of rows the item spans. * @param verticalPosition The vertical item position. * @param columnIndex The column index at which the item is located. * @param verticalSpan The vertical item span. * @param columnSpan The number of columns the item spans. * @param heading Whether the item is a heading. * @param heading Whether the item is a heading. */ */ private CollectionItemInfo(int horizontalPosition, int horizontalSpan, private CollectionItemInfo(int rowIndex, int rowSpan, int verticalPosition, int verticalSpan, boolean heading) { int columnIndex, int columnSpan, boolean heading) { mHorizontalPosition = horizontalPosition; mRowIndex = rowIndex; mHorizontalSpan = horizontalSpan; mRowSpan = rowSpan; mVerticalPosition = verticalPosition; mColumnIndex = columnIndex; mVerticalSpan = verticalSpan; mColumnSpan = columnSpan; mHeading = heading; mHeading = heading; } } /** /** * Gets the horizontal item position in the parent collection. * Gets the column index at which the item is located. * * * @return The position. * @return The column index. */ */ public int getHorizontalPosition() { public int getColumnIndex() { return mHorizontalPosition; return mColumnIndex; } } /** /** * Gets the vertical item position in the parent collection. * Gets the row index at which the item is located. * * * @return The position. * @return The row index. */ */ public int getVerticalPosition() { public int getRowIndex() { return mVerticalPosition; return mRowIndex; } } /** /** * Gets the horizontal span in terms of item positions * Gets the number of columns the item spans. * of the parent collection. * * * @return The span. * @return The column span. */ */ public int getHorizontalSpan() { public int getColumnSpan() { return mHorizontalSpan; return mColumnSpan; } } /** /** * Gets the vertical span in terms of item positions * Gets the number of rows the item spans. * of the parent collection. * * * @return The span. * @return The row span. */ */ public int getVerticalSpan() { public int getRowSpan() { return mVerticalSpan; return mRowSpan; } } /** /** Loading @@ -2866,10 +2890,10 @@ public class AccessibilityNodeInfo implements Parcelable { } } private void clear() { private void clear() { mHorizontalPosition = 0; mColumnIndex = 0; mHorizontalSpan = 0; mColumnSpan = 0; mVerticalPosition = 0; mRowIndex = 0; mVerticalSpan = 0; mRowSpan = 0; mHeading = false; mHeading = false; } } } } Loading core/java/android/widget/ActivityChooserView.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -234,7 +234,7 @@ public class ActivityChooserView extends ViewGroup implements ActivityChooserMod @Override @Override public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) { public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(host, info); super.onInitializeAccessibilityNodeInfo(host, info); info.setOpensPopup(true); info.setCanOpenPopup(true); } } }); }); mExpandActivityOverflowButtonImage = mExpandActivityOverflowButtonImage = Loading core/java/android/widget/Spinner.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -675,7 +675,7 @@ public class Spinner extends AbsSpinner implements OnClickListener { info.setClassName(Spinner.class.getName()); info.setClassName(Spinner.class.getName()); if (mAdapter != null) { if (mAdapter != null) { info.setOpensPopup(true); info.setCanOpenPopup(true); } } } } Loading core/java/com/android/internal/view/menu/ActionMenuPresenter.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -630,7 +630,7 @@ public class ActionMenuPresenter extends BaseMenuPresenter @Override @Override public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(info); super.onInitializeAccessibilityNodeInfo(info); info.setOpensPopup(true); info.setCanOpenPopup(true); } } } } Loading Loading
api/current.txt +9 −9 Original line number Original line Diff line number Diff line Loading @@ -28688,6 +28688,7 @@ package android.view.accessibility { method public void addAction(int); method public void addAction(int); method public void addChild(android.view.View); method public void addChild(android.view.View); method public void addChild(android.view.View, int); method public void addChild(android.view.View, int); method public boolean canOpenPopup(); method public int describeContents(); method public int describeContents(); method public java.util.List<android.view.accessibility.AccessibilityNodeInfo> findAccessibilityNodeInfosByText(java.lang.String); method public java.util.List<android.view.accessibility.AccessibilityNodeInfo> findAccessibilityNodeInfosByText(java.lang.String); method public java.util.List<android.view.accessibility.AccessibilityNodeInfo> findAccessibilityNodeInfosByViewId(java.lang.String); method public java.util.List<android.view.accessibility.AccessibilityNodeInfo> findAccessibilityNodeInfosByViewId(java.lang.String); Loading @@ -28696,18 +28697,17 @@ package android.view.accessibility { method public int getActions(); method public int getActions(); method public void getBoundsInParent(android.graphics.Rect); method public void getBoundsInParent(android.graphics.Rect); method public void getBoundsInScreen(android.graphics.Rect); method public void getBoundsInScreen(android.graphics.Rect); method public android.os.Bundle getBundle(); method public android.view.accessibility.AccessibilityNodeInfo getChild(int); method public android.view.accessibility.AccessibilityNodeInfo getChild(int); method public int getChildCount(); method public int getChildCount(); method public java.lang.CharSequence getClassName(); method public java.lang.CharSequence getClassName(); method public android.view.accessibility.AccessibilityNodeInfo.CollectionInfo getCollectionInfo(); method public android.view.accessibility.AccessibilityNodeInfo.CollectionInfo getCollectionInfo(); method public android.view.accessibility.AccessibilityNodeInfo.CollectionItemInfo getCollectionItemInfo(); method public android.view.accessibility.AccessibilityNodeInfo.CollectionItemInfo getCollectionItemInfo(); method public java.lang.CharSequence getContentDescription(); method public java.lang.CharSequence getContentDescription(); method public android.os.Bundle getExtras(); method public int getInputType(); method public int getInputType(); method public android.view.accessibility.AccessibilityNodeInfo getLabelFor(); method public android.view.accessibility.AccessibilityNodeInfo getLabelFor(); method public android.view.accessibility.AccessibilityNodeInfo getLabeledBy(); method public android.view.accessibility.AccessibilityNodeInfo getLabeledBy(); method public int getMovementGranularities(); method public int getMovementGranularities(); method public boolean getOpensPopup(); method public java.lang.CharSequence getPackageName(); method public java.lang.CharSequence getPackageName(); method public android.view.accessibility.AccessibilityNodeInfo getParent(); method public android.view.accessibility.AccessibilityNodeInfo getParent(); method public android.view.accessibility.AccessibilityNodeInfo.RangeInfo getRangeInfo(); method public android.view.accessibility.AccessibilityNodeInfo.RangeInfo getRangeInfo(); Loading Loading @@ -28746,6 +28746,7 @@ package android.view.accessibility { method public void setAccessibilityFocused(boolean); method public void setAccessibilityFocused(boolean); method public void setBoundsInParent(android.graphics.Rect); method public void setBoundsInParent(android.graphics.Rect); method public void setBoundsInScreen(android.graphics.Rect); method public void setBoundsInScreen(android.graphics.Rect); method public void setCanOpenPopup(boolean); method public void setCheckable(boolean); method public void setCheckable(boolean); method public void setChecked(boolean); method public void setChecked(boolean); method public void setClassName(java.lang.CharSequence); method public void setClassName(java.lang.CharSequence); Loading @@ -28770,7 +28771,6 @@ package android.view.accessibility { method public void setLongClickable(boolean); method public void setLongClickable(boolean); method public void setMovementGranularities(int); method public void setMovementGranularities(int); method public void setMultiLine(boolean); method public void setMultiLine(boolean); method public void setOpensPopup(boolean); method public void setPackageName(java.lang.CharSequence); method public void setPackageName(java.lang.CharSequence); method public void setParent(android.view.View); method public void setParent(android.view.View); method public void setParent(android.view.View, int); method public void setParent(android.view.View, int); Loading Loading @@ -28822,17 +28822,17 @@ package android.view.accessibility { } } public static final class AccessibilityNodeInfo.CollectionInfo { public static final class AccessibilityNodeInfo.CollectionInfo { method public int getHorizontalSize(); method public int getColumnCount(); method public int getVerticalSize(); method public int getRowCount(); method public boolean isHierarchical(); method public boolean isHierarchical(); method public static android.view.accessibility.AccessibilityNodeInfo.CollectionInfo obtain(int, int, boolean); method public static android.view.accessibility.AccessibilityNodeInfo.CollectionInfo obtain(int, int, boolean); } } public static final class AccessibilityNodeInfo.CollectionItemInfo { public static final class AccessibilityNodeInfo.CollectionItemInfo { method public int getHorizontalPosition(); method public int getColumnIndex(); method public int getHorizontalSpan(); method public int getColumnSpan(); method public int getVerticalPosition(); method public int getRowIndex(); method public int getVerticalSpan(); method public int getRowSpan(); method public boolean isHeading(); method public boolean isHeading(); method public static android.view.accessibility.AccessibilityNodeInfo.CollectionItemInfo obtain(int, int, int, int, boolean); method public static android.view.accessibility.AccessibilityNodeInfo.CollectionItemInfo obtain(int, int, int, int, boolean); } }
core/java/android/view/accessibility/AccessibilityNodeInfo.java +115 −91 Original line number Original line Diff line number Diff line Loading @@ -518,7 +518,7 @@ public class AccessibilityNodeInfo implements Parcelable { private int mTextSelectionEnd = UNDEFINED; private int mTextSelectionEnd = UNDEFINED; private int mInputType = InputType.TYPE_NULL; private int mInputType = InputType.TYPE_NULL; private Bundle mBundle; private Bundle mExtras; private int mConnectionId = UNDEFINED; private int mConnectionId = UNDEFINED; Loading Loading @@ -1471,9 +1471,18 @@ public class AccessibilityNodeInfo implements Parcelable { } } /** /** * Gets if the node is a live region for whose changes the user * Gets if the node is a live region. * should be notified. It is the responsibility of the accessibility * <p> * A live region is a node that contains information that is important * for the user and when it changes the user has to be notified. For * example, if the user plays a video and the application shows a * progress indicator with the percentage of buffering, then the progress * indicator should be marked as a live region. * </p> * <p> * It is the responsibility of the accessibility * service to monitor this region and notify the user if it changes. * service to monitor this region and notify the user if it changes. * </p> * * * @return If the node is a live region. * @return If the node is a live region. */ */ Loading Loading @@ -1525,7 +1534,7 @@ public class AccessibilityNodeInfo implements Parcelable { * * * @return If the the node opens a popup. * @return If the the node opens a popup. */ */ public boolean getOpensPopup() { public boolean canOpenPopup() { return getBooleanProperty(BOOLEAN_PROPERTY_OPENS_POPUP); return getBooleanProperty(BOOLEAN_PROPERTY_OPENS_POPUP); } } Loading @@ -1539,7 +1548,8 @@ public class AccessibilityNodeInfo implements Parcelable { * * * @param opensPopup If the the node opens a popup. * @param opensPopup If the the node opens a popup. */ */ public void setOpensPopup(boolean opensPopup) { public void setCanOpenPopup(boolean opensPopup) { enforceNotSealed(); setBooleanProperty(BOOLEAN_PROPERTY_OPENS_POPUP, opensPopup); setBooleanProperty(BOOLEAN_PROPERTY_OPENS_POPUP, opensPopup); } } Loading Loading @@ -1927,7 +1937,7 @@ public class AccessibilityNodeInfo implements Parcelable { } } /** /** * Gets an optional bundle with additional data. The bundle * Gets an optional bundle with extra data. The bundle * is lazily created and never <code>null</code>. * is lazily created and never <code>null</code>. * <p> * <p> * <strong>Note:</strong> It is recommended to use the package * <strong>Note:</strong> It is recommended to use the package Loading @@ -1939,11 +1949,11 @@ public class AccessibilityNodeInfo implements Parcelable { * * * @return The bundle. * @return The bundle. */ */ public Bundle getBundle() { public Bundle getExtras() { if (mBundle == null) { if (mExtras == null) { mBundle = new Bundle(); mExtras = new Bundle(); } } return mBundle; return mExtras; } } /** /** Loading Loading @@ -2194,9 +2204,9 @@ public class AccessibilityNodeInfo implements Parcelable { parcel.writeInt(mTextSelectionEnd); parcel.writeInt(mTextSelectionEnd); parcel.writeInt(mInputType); parcel.writeInt(mInputType); if (mBundle != null) { if (mExtras != null) { parcel.writeInt(1); parcel.writeInt(1); parcel.writeBundle(mBundle); parcel.writeBundle(mExtras); } else { } else { parcel.writeInt(0); parcel.writeInt(0); } } Loading @@ -2213,8 +2223,8 @@ public class AccessibilityNodeInfo implements Parcelable { if (mCollectionInfo != null) { if (mCollectionInfo != null) { parcel.writeInt(1); parcel.writeInt(1); parcel.writeInt(mCollectionInfo.getHorizontalSize()); parcel.writeInt(mCollectionInfo.getRowCount()); parcel.writeInt(mCollectionInfo.getVerticalSize()); parcel.writeInt(mCollectionInfo.getColumnCount()); parcel.writeInt(mCollectionInfo.isHierarchical() ? 1 : 0); parcel.writeInt(mCollectionInfo.isHierarchical() ? 1 : 0); } else { } else { parcel.writeInt(0); parcel.writeInt(0); Loading @@ -2222,10 +2232,10 @@ public class AccessibilityNodeInfo implements Parcelable { if (mCollectionItemInfo != null) { if (mCollectionItemInfo != null) { parcel.writeInt(1); parcel.writeInt(1); parcel.writeInt(mCollectionItemInfo.getHorizontalPosition()); parcel.writeInt(mCollectionItemInfo.getColumnIndex()); parcel.writeInt(mCollectionItemInfo.getHorizontalSpan()); parcel.writeInt(mCollectionItemInfo.getColumnSpan()); parcel.writeInt(mCollectionItemInfo.getVerticalPosition()); parcel.writeInt(mCollectionItemInfo.getRowIndex()); parcel.writeInt(mCollectionItemInfo.getVerticalSpan()); parcel.writeInt(mCollectionItemInfo.getRowSpan()); parcel.writeInt(mCollectionItemInfo.isHeading() ? 1 : 0); parcel.writeInt(mCollectionItemInfo.isHeading() ? 1 : 0); } else { } else { parcel.writeInt(0); parcel.writeInt(0); Loading Loading @@ -2266,8 +2276,8 @@ public class AccessibilityNodeInfo implements Parcelable { mTextSelectionStart = other.mTextSelectionStart; mTextSelectionStart = other.mTextSelectionStart; mTextSelectionEnd = other.mTextSelectionEnd; mTextSelectionEnd = other.mTextSelectionEnd; mInputType = other.mInputType; mInputType = other.mInputType; if (other.mBundle != null && !other.mBundle.isEmpty()) { if (other.mExtras != null && !other.mExtras.isEmpty()) { getBundle().putAll(other.mBundle); getExtras().putAll(other.mExtras); } } mRangeInfo = other.mRangeInfo; mRangeInfo = other.mRangeInfo; mCollectionInfo = other.mCollectionInfo; mCollectionInfo = other.mCollectionInfo; Loading Loading @@ -2323,7 +2333,7 @@ public class AccessibilityNodeInfo implements Parcelable { mInputType = parcel.readInt(); mInputType = parcel.readInt(); if (parcel.readInt() == 1) { if (parcel.readInt() == 1) { getBundle().putAll(parcel.readBundle()); getExtras().putAll(parcel.readBundle()); } } if (parcel.readInt() == 1) { if (parcel.readInt() == 1) { Loading Loading @@ -2376,8 +2386,8 @@ public class AccessibilityNodeInfo implements Parcelable { mTextSelectionStart = UNDEFINED; mTextSelectionStart = UNDEFINED; mTextSelectionEnd = UNDEFINED; mTextSelectionEnd = UNDEFINED; mInputType = InputType.TYPE_NULL; mInputType = InputType.TYPE_NULL; if (mBundle != null) { if (mExtras != null) { mBundle.clear(); mExtras.clear(); } } if (mRangeInfo != null) { if (mRangeInfo != null) { mRangeInfo.recycle(); mRangeInfo.recycle(); Loading Loading @@ -2677,7 +2687,15 @@ public class AccessibilityNodeInfo implements Parcelable { /** /** * Class with information if a node is a collection. Use * Class with information if a node is a collection. Use * {@link CollectionInfo#obtain(int, int, boolean) to an instance. * {@link CollectionInfo#obtain(int, int, boolean)} to get an instance. * <p> * A collection of items has rows and columns and may be hierarchical. * For example, a horizontal list is a collection with one column, as * many rows as the list items, and is not hierarchical; A table is a * collection with several rows, several columns, and is not hierarchical; * A vertical tree is a hierarchical collection with one column and * as many rows as the first level children. * </p> */ */ public static final class CollectionInfo { public static final class CollectionInfo { private static final int MAX_POOL_SIZE = 20; private static final int MAX_POOL_SIZE = 20; Loading @@ -2685,54 +2703,54 @@ public class AccessibilityNodeInfo implements Parcelable { private static final SynchronizedPool<CollectionInfo> sPool = private static final SynchronizedPool<CollectionInfo> sPool = new SynchronizedPool<CollectionInfo>(MAX_POOL_SIZE); new SynchronizedPool<CollectionInfo>(MAX_POOL_SIZE); private int mHorizontalSize; private int mRowCount; private int mVerticalSize; private int mColumnCount; private boolean mHierarchical; private boolean mHierarchical; /** /** * Obtains a pooled instance. * Obtains a pooled instance. * * * @param horizontalSize The horizontal size. * @param rowCount The number of rows. * @param verticalSize The vertical size. * @param columnCount The number of columns. * @param hierarchical Whether the collection is hierarchical. * @param hierarchical Whether the collection is hierarchical. */ */ public static CollectionInfo obtain(int horizontalSize, int verticalSize, public static CollectionInfo obtain(int rowCount, int columnCount, boolean hierarchical) { boolean hierarchical) { CollectionInfo info = sPool.acquire(); CollectionInfo info = sPool.acquire(); return (info != null) ? info : new CollectionInfo(horizontalSize, return (info != null) ? info : new CollectionInfo(rowCount, verticalSize, hierarchical); columnCount, hierarchical); } } /** /** * Creates a new instance. * Creates a new instance. * * * @param horizontalSize The horizontal size. * @param rowCount The number of rows. * @param verticalSize The vertical size. * @param columnCount The number of columns. * @param hierarchical Whether the collection is hierarchical. * @param hierarchical Whether the collection is hierarchical. */ */ private CollectionInfo(int horizontalSize, int verticalSize, private CollectionInfo(int rowCount, int columnCount, boolean hierarchical) { boolean hierarchical) { mHorizontalSize = horizontalSize; mRowCount = rowCount; mVerticalSize = verticalSize; mColumnCount = columnCount; mHierarchical = hierarchical; mHierarchical = hierarchical; } } /** /** * Gets the horizontal size in terms of item positions. * Gets the number of rows. * * * @return The size. * @return The row count. */ */ public int getHorizontalSize() { public int getRowCount() { return mHorizontalSize; return mRowCount; } } /** /** * Gets the vertical size in terms of item positions. * Gets the number of columns. * * * @return The size. * @return The column count. */ */ public int getVerticalSize() { public int getColumnCount() { return mVerticalSize; return mColumnCount; } } /** /** Loading @@ -2753,15 +2771,23 @@ public class AccessibilityNodeInfo implements Parcelable { } } private void clear() { private void clear() { mHorizontalSize = 0; mRowCount = 0; mVerticalSize = 0; mColumnCount = 0; mHierarchical = false; mHierarchical = false; } } } } /** /** * Class with information if a node is a collection item. Use * Class with information if a node is a collection item. Use * {@link CollectionItemInfo#obtain(int, int, int, int, boolean) to get an instance. * {@link CollectionItemInfo#obtain(int, int, int, int, boolean)} * to get an instance. * <p> * A collection item is contained in a collection, it starts at * a given row and column in the collection, and spans one or * more rows and columns. For example, a header of two related * table columns starts at the first row and the first column, * spans one row and two columns. * </p> */ */ public static final class CollectionItemInfo { public static final class CollectionItemInfo { private static final int MAX_POOL_SIZE = 20; private static final int MAX_POOL_SIZE = 20; Loading @@ -2772,79 +2798,77 @@ public class AccessibilityNodeInfo implements Parcelable { /** /** * Obtains a pooled instance. * Obtains a pooled instance. * * * @param horizontalPosition The horizontal item position. * @param rowIndex The row index at which the item is located. * @param horizontalSpan The horizontal item span. * @param rowSpan The number of rows the item spans. * @param verticalPosition The vertical item position. * @param columnIndex The column index at which the item is located. * @param verticalSpan The vertical item span. * @param columnSpan The number of columns the item spans. * @param heading Whether the item is a heading. * @param heading Whether the item is a heading. */ */ public static CollectionItemInfo obtain(int horizontalPosition, int horizontalSpan, public static CollectionItemInfo obtain(int rowIndex, int rowSpan, int verticalPosition, int verticalSpan, boolean heading) { int columnIndex, int columnSpan, boolean heading) { CollectionItemInfo info = sPool.acquire(); CollectionItemInfo info = sPool.acquire(); return (info != null) ? info : new CollectionItemInfo(horizontalPosition, return (info != null) ? info : new CollectionItemInfo(rowIndex, horizontalSpan, verticalPosition, verticalSpan, heading); rowSpan, columnIndex, columnSpan, heading); } } private boolean mHeading; private boolean mHeading; private int mHorizontalPosition; private int mColumnIndex; private int mVerticalPosition; private int mRowIndex; private int mHorizontalSpan; private int mColumnSpan; private int mVerticalSpan; private int mRowSpan; /** /** * Creates a new instance. * Creates a new instance. * * * @param horizontalPosition The horizontal item position. * @param rowIndex The row index at which the item is located. * @param horizontalSpan The horizontal item span. * @param rowSpan The number of rows the item spans. * @param verticalPosition The vertical item position. * @param columnIndex The column index at which the item is located. * @param verticalSpan The vertical item span. * @param columnSpan The number of columns the item spans. * @param heading Whether the item is a heading. * @param heading Whether the item is a heading. */ */ private CollectionItemInfo(int horizontalPosition, int horizontalSpan, private CollectionItemInfo(int rowIndex, int rowSpan, int verticalPosition, int verticalSpan, boolean heading) { int columnIndex, int columnSpan, boolean heading) { mHorizontalPosition = horizontalPosition; mRowIndex = rowIndex; mHorizontalSpan = horizontalSpan; mRowSpan = rowSpan; mVerticalPosition = verticalPosition; mColumnIndex = columnIndex; mVerticalSpan = verticalSpan; mColumnSpan = columnSpan; mHeading = heading; mHeading = heading; } } /** /** * Gets the horizontal item position in the parent collection. * Gets the column index at which the item is located. * * * @return The position. * @return The column index. */ */ public int getHorizontalPosition() { public int getColumnIndex() { return mHorizontalPosition; return mColumnIndex; } } /** /** * Gets the vertical item position in the parent collection. * Gets the row index at which the item is located. * * * @return The position. * @return The row index. */ */ public int getVerticalPosition() { public int getRowIndex() { return mVerticalPosition; return mRowIndex; } } /** /** * Gets the horizontal span in terms of item positions * Gets the number of columns the item spans. * of the parent collection. * * * @return The span. * @return The column span. */ */ public int getHorizontalSpan() { public int getColumnSpan() { return mHorizontalSpan; return mColumnSpan; } } /** /** * Gets the vertical span in terms of item positions * Gets the number of rows the item spans. * of the parent collection. * * * @return The span. * @return The row span. */ */ public int getVerticalSpan() { public int getRowSpan() { return mVerticalSpan; return mRowSpan; } } /** /** Loading @@ -2866,10 +2890,10 @@ public class AccessibilityNodeInfo implements Parcelable { } } private void clear() { private void clear() { mHorizontalPosition = 0; mColumnIndex = 0; mHorizontalSpan = 0; mColumnSpan = 0; mVerticalPosition = 0; mRowIndex = 0; mVerticalSpan = 0; mRowSpan = 0; mHeading = false; mHeading = false; } } } } Loading
core/java/android/widget/ActivityChooserView.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -234,7 +234,7 @@ public class ActivityChooserView extends ViewGroup implements ActivityChooserMod @Override @Override public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) { public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(host, info); super.onInitializeAccessibilityNodeInfo(host, info); info.setOpensPopup(true); info.setCanOpenPopup(true); } } }); }); mExpandActivityOverflowButtonImage = mExpandActivityOverflowButtonImage = Loading
core/java/android/widget/Spinner.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -675,7 +675,7 @@ public class Spinner extends AbsSpinner implements OnClickListener { info.setClassName(Spinner.class.getName()); info.setClassName(Spinner.class.getName()); if (mAdapter != null) { if (mAdapter != null) { info.setOpensPopup(true); info.setCanOpenPopup(true); } } } } Loading
core/java/com/android/internal/view/menu/ActionMenuPresenter.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -630,7 +630,7 @@ public class ActionMenuPresenter extends BaseMenuPresenter @Override @Override public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(info); super.onInitializeAccessibilityNodeInfo(info); info.setOpensPopup(true); info.setCanOpenPopup(true); } } } } Loading