diff options
| author | 2023-03-02 18:40:48 +0000 | |
|---|---|---|
| committer | 2023-03-02 18:40:48 +0000 | |
| commit | 4c68e35d46eef693bf59df747326101fb37f1010 (patch) | |
| tree | d50e92630b28383fc57a63b72b8d41858677fc8e | |
| parent | fab84db78f0bcdb222f7f6c8cdd58070cb439b42 (diff) | |
| parent | 7ea7d33ca267085abfab22bc2096e7b203cb6b58 (diff) | |
Merge "Rename AccessibilityDataPrivate -> AccessibilityDataSensitive" into udc-dev
12 files changed, 116 insertions, 83 deletions
diff --git a/core/api/current.txt b/core/api/current.txt index 5af80797c91f..dc2cec0f2dfd 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -375,7 +375,7 @@ package android { public static final class R.attr { ctor public R.attr(); field public static final int absListViewStyle = 16842858; // 0x101006a - field public static final int accessibilityDataPrivate; + field public static final int accessibilityDataSensitive; field public static final int accessibilityEventTypes = 16843648; // 0x1010380 field public static final int accessibilityFeedbackType = 16843650; // 0x1010382 field public static final int accessibilityFlags = 16843652; // 0x1010384 @@ -52218,7 +52218,7 @@ package android.view { method public void invalidate(); method public void invalidateDrawable(@NonNull android.graphics.drawable.Drawable); method public void invalidateOutline(); - method public boolean isAccessibilityDataPrivate(); + method public boolean isAccessibilityDataSensitive(); method public boolean isAccessibilityFocused(); method public boolean isAccessibilityHeading(); method public boolean isActivated(); @@ -52398,7 +52398,7 @@ package android.view { method public void scrollTo(int, int); method public void sendAccessibilityEvent(int); method public void sendAccessibilityEventUnchecked(android.view.accessibility.AccessibilityEvent); - method public void setAccessibilityDataPrivate(int); + method public void setAccessibilityDataSensitive(int); method public void setAccessibilityDelegate(@Nullable android.view.View.AccessibilityDelegate); method public void setAccessibilityHeading(boolean); method public void setAccessibilityLiveRegion(int); @@ -52584,9 +52584,9 @@ package android.view { method @CallSuper protected boolean verifyDrawable(@NonNull android.graphics.drawable.Drawable); method @Deprecated public boolean willNotCacheDrawing(); method public boolean willNotDraw(); - field public static final int ACCESSIBILITY_DATA_PRIVATE_AUTO = 0; // 0x0 - field public static final int ACCESSIBILITY_DATA_PRIVATE_NO = 2; // 0x2 - field public static final int ACCESSIBILITY_DATA_PRIVATE_YES = 1; // 0x1 + field public static final int ACCESSIBILITY_DATA_SENSITIVE_AUTO = 0; // 0x0 + field public static final int ACCESSIBILITY_DATA_SENSITIVE_NO = 2; // 0x2 + field public static final int ACCESSIBILITY_DATA_SENSITIVE_YES = 1; // 0x1 field public static final int ACCESSIBILITY_LIVE_REGION_ASSERTIVE = 2; // 0x2 field public static final int ACCESSIBILITY_LIVE_REGION_NONE = 0; // 0x0 field public static final int ACCESSIBILITY_LIVE_REGION_POLITE = 1; // 0x1 @@ -54056,11 +54056,11 @@ package android.view.accessibility { method public int getSpeechStateChangeTypes(); method public int getWindowChanges(); method public void initFromParcel(android.os.Parcel); - method public boolean isAccessibilityDataPrivate(); + method public boolean isAccessibilityDataSensitive(); method @Deprecated public static android.view.accessibility.AccessibilityEvent obtain(int); method @Deprecated public static android.view.accessibility.AccessibilityEvent obtain(android.view.accessibility.AccessibilityEvent); method @Deprecated public static android.view.accessibility.AccessibilityEvent obtain(); - method public void setAccessibilityDataPrivate(boolean); + method public void setAccessibilityDataSensitive(boolean); method public void setAction(int); method public void setContentChangeTypes(int); method public void setEventTime(long); @@ -54251,6 +54251,7 @@ package android.view.accessibility { method public int getWindowId(); method public boolean hasRequestInitialAccessibilityFocus(); method public boolean hasRequestTouchPassthrough(); + method public boolean isAccessibilityDataSensitive(); method public boolean isAccessibilityFocused(); method public boolean isCheckable(); method public boolean isChecked(); @@ -54287,6 +54288,7 @@ package android.view.accessibility { method public boolean removeAction(android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction); method public boolean removeChild(android.view.View); method public boolean removeChild(android.view.View, int); + method public void setAccessibilityDataSensitive(boolean); method public void setAccessibilityFocused(boolean); method public void setAvailableExtraData(java.util.List<java.lang.String>); method @Deprecated public void setBoundsInParent(android.graphics.Rect); diff --git a/core/java/android/view/AccessibilityInteractionController.java b/core/java/android/view/AccessibilityInteractionController.java index 3cf56c0668c8..6804c5ca3e4f 100644 --- a/core/java/android/view/AccessibilityInteractionController.java +++ b/core/java/android/view/AccessibilityInteractionController.java @@ -172,7 +172,7 @@ public final class AccessibilityInteractionController { private boolean isVisibleToAccessibilityService(View view) { return view != null && (mA11yManager.isRequestFromAccessibilityTool() - || !view.isAccessibilityDataPrivate()); + || !view.isAccessibilityDataSensitive()); } public void findAccessibilityNodeInfoByAccessibilityIdClientThread( diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index df6589e98da6..869efc69872e 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -3114,33 +3114,33 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * Accessibility interactions from services without {@code isAccessibilityTool} set to true are * disallowed for any of the following conditions: * <li>this view sets {@link #getFilterTouchesWhenObscured()}.</li> - * <li>any parent of this view returns true from {@link #isAccessibilityDataPrivate()}.</li> + * <li>any parent of this view returns true from {@link #isAccessibilityDataSensitive()}.</li> * </p> */ - public static final int ACCESSIBILITY_DATA_PRIVATE_AUTO = 0x00000000; + public static final int ACCESSIBILITY_DATA_SENSITIVE_AUTO = 0x00000000; /** * Only allow interactions from {@link android.accessibilityservice.AccessibilityService}s * with the {@link android.accessibilityservice.AccessibilityServiceInfo#isAccessibilityTool} * property set to true. */ - public static final int ACCESSIBILITY_DATA_PRIVATE_YES = 0x00000001; + public static final int ACCESSIBILITY_DATA_SENSITIVE_YES = 0x00000001; /** * Allow interactions from all {@link android.accessibilityservice.AccessibilityService}s, * regardless of their * {@link android.accessibilityservice.AccessibilityServiceInfo#isAccessibilityTool} property. */ - public static final int ACCESSIBILITY_DATA_PRIVATE_NO = 0x00000002; + public static final int ACCESSIBILITY_DATA_SENSITIVE_NO = 0x00000002; /** @hide */ - @IntDef(prefix = { "ACCESSIBILITY_DATA_PRIVATE_" }, value = { - ACCESSIBILITY_DATA_PRIVATE_AUTO, - ACCESSIBILITY_DATA_PRIVATE_YES, - ACCESSIBILITY_DATA_PRIVATE_NO, + @IntDef(prefix = { "ACCESSIBILITY_DATA_SENSITIVE_" }, value = { + ACCESSIBILITY_DATA_SENSITIVE_AUTO, + ACCESSIBILITY_DATA_SENSITIVE_YES, + ACCESSIBILITY_DATA_SENSITIVE_NO, }) @Retention(RetentionPolicy.SOURCE) - public @interface AccessibilityDataPrivate {} + public @interface AccessibilityDataSensitive {} /** * Mask for obtaining the bits which specify how to determine @@ -4611,9 +4611,9 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * {@link android.accessibilityservice.AccessibilityServiceInfo#isAccessibilityTool} property * set to true. */ - private int mExplicitAccessibilityDataPrivate = ACCESSIBILITY_DATA_PRIVATE_AUTO; - /** Used to calculate and cache {@link #isAccessibilityDataPrivate()}. */ - private int mInferredAccessibilityDataPrivate = ACCESSIBILITY_DATA_PRIVATE_AUTO; + private int mExplicitAccessibilityDataSensitive = ACCESSIBILITY_DATA_SENSITIVE_AUTO; + /** Used to calculate and cache {@link #isAccessibilityDataSensitive()}. */ + private int mInferredAccessibilityDataSensitive = ACCESSIBILITY_DATA_SENSITIVE_AUTO; /** * Specifies the id of a view for which this view serves as a label for @@ -6016,9 +6016,9 @@ public class View implements Drawable.Callback, KeyEvent.Callback, setImportantForAccessibility(a.getInt(attr, IMPORTANT_FOR_ACCESSIBILITY_DEFAULT)); break; - case R.styleable.View_accessibilityDataPrivate: - setAccessibilityDataPrivate(a.getInt(attr, - ACCESSIBILITY_DATA_PRIVATE_AUTO)); + case R.styleable.View_accessibilityDataSensitive: + setAccessibilityDataSensitive(a.getInt(attr, + ACCESSIBILITY_DATA_SENSITIVE_AUTO)); break; case R.styleable.View_accessibilityLiveRegion: setAccessibilityLiveRegion(a.getInt(attr, ACCESSIBILITY_LIVE_REGION_DEFAULT)); @@ -8660,9 +8660,9 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * is responsible for handling this call. * </p> * <p> - * If this view sets {@link #isAccessibilityDataPrivate()} then this view should only append + * If this view sets {@link #isAccessibilityDataSensitive()} then this view should only append * sensitive information to an event that also sets - * {@link AccessibilityEvent#isAccessibilityDataPrivate()}. + * {@link AccessibilityEvent#isAccessibilityDataSensitive()}. * </p> * <p> * <em>Note:</em> Accessibility events of certain types are not dispatched for @@ -10697,6 +10697,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, info.setVisibleToUser(isVisibleToUser()); info.setImportantForAccessibility(isImportantForAccessibility()); + info.setAccessibilityDataSensitive(isAccessibilityDataSensitive()); info.setPackageName(mContext.getPackageName()); info.setClassName(getAccessibilityClassName()); info.setStateDescription(getStateDescription()); @@ -13581,7 +13582,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, public void setFilterTouchesWhenObscured(boolean enabled) { setFlags(enabled ? FILTER_TOUCHES_WHEN_OBSCURED : 0, FILTER_TOUCHES_WHEN_OBSCURED); - calculateAccessibilityDataPrivate(); + calculateAccessibilityDataSensitive(); } /** @@ -14817,7 +14818,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, // source View's AccessibilityDataPrivate value, and then filtering is done when // AccessibilityManagerService propagates events to each recipient AccessibilityService. if (!AccessibilityManager.getInstance(mContext).isRequestFromAccessibilityTool() - && isAccessibilityDataPrivate()) { + && isAccessibilityDataSensitive()) { return false; } } @@ -14833,43 +14834,43 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * set to true. * * <p> - * See default behavior provided by {@link #ACCESSIBILITY_DATA_PRIVATE_AUTO}. Otherwise, - * returns true for {@link #ACCESSIBILITY_DATA_PRIVATE_YES} or false for {@link - * #ACCESSIBILITY_DATA_PRIVATE_NO}. + * See default behavior provided by {@link #ACCESSIBILITY_DATA_SENSITIVE_AUTO}. Otherwise, + * returns true for {@link #ACCESSIBILITY_DATA_SENSITIVE_YES} or false for {@link + * #ACCESSIBILITY_DATA_SENSITIVE_NO}. * </p> * * @return True if this view should restrict accessibility service access to services that have * the isAccessibilityTool property. */ @ViewDebug.ExportedProperty(category = "accessibility") - public boolean isAccessibilityDataPrivate() { - if (mInferredAccessibilityDataPrivate == ACCESSIBILITY_DATA_PRIVATE_AUTO) { - calculateAccessibilityDataPrivate(); + public boolean isAccessibilityDataSensitive() { + if (mInferredAccessibilityDataSensitive == ACCESSIBILITY_DATA_SENSITIVE_AUTO) { + calculateAccessibilityDataSensitive(); } - return mInferredAccessibilityDataPrivate == ACCESSIBILITY_DATA_PRIVATE_YES; + return mInferredAccessibilityDataSensitive == ACCESSIBILITY_DATA_SENSITIVE_YES; } /** - * Calculate and cache the inferred value for {@link #isAccessibilityDataPrivate()}. + * Calculate and cache the inferred value for {@link #isAccessibilityDataSensitive()}. * * <p> * <strong>Note:</strong> This method needs to be called any time one of the below conditions * changes, to recalculate the new value. * </p> */ - void calculateAccessibilityDataPrivate() { + void calculateAccessibilityDataSensitive() { // Use the explicit value if set. - if (mExplicitAccessibilityDataPrivate != ACCESSIBILITY_DATA_PRIVATE_AUTO) { - mInferredAccessibilityDataPrivate = mExplicitAccessibilityDataPrivate; + if (mExplicitAccessibilityDataSensitive != ACCESSIBILITY_DATA_SENSITIVE_AUTO) { + mInferredAccessibilityDataSensitive = mExplicitAccessibilityDataSensitive; } else if (getFilterTouchesWhenObscured()) { - // Views that set filterTouchesWhenObscured default to accessibilityDataPrivate. - mInferredAccessibilityDataPrivate = ACCESSIBILITY_DATA_PRIVATE_YES; - } else if (mParent instanceof View && ((View) mParent).isAccessibilityDataPrivate()) { - // Descendants of an accessibilityDataPrivate View are also accessibilityDataPrivate. - mInferredAccessibilityDataPrivate = ACCESSIBILITY_DATA_PRIVATE_YES; + // Views that set filterTouchesWhenObscured default to accessibilityDataSensitive. + mInferredAccessibilityDataSensitive = ACCESSIBILITY_DATA_SENSITIVE_YES; + } else if (mParent instanceof View && ((View) mParent).isAccessibilityDataSensitive()) { + // Descendants of accessibilityDataSensitive Views are also accessibilityDataSensitive. + mInferredAccessibilityDataSensitive = ACCESSIBILITY_DATA_SENSITIVE_YES; } else { - // Otherwise, default to not accessibilityDataPrivate. - mInferredAccessibilityDataPrivate = ACCESSIBILITY_DATA_PRIVATE_NO; + // Otherwise, default to not accessibilityDataSensitive. + mInferredAccessibilityDataSensitive = ACCESSIBILITY_DATA_SENSITIVE_NO; } } @@ -14879,10 +14880,10 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * {@link android.accessibilityservice.AccessibilityServiceInfo#isAccessibilityTool} property * set to true. */ - public void setAccessibilityDataPrivate( - @AccessibilityDataPrivate int accessibilityDataPrivate) { - mExplicitAccessibilityDataPrivate = accessibilityDataPrivate; - calculateAccessibilityDataPrivate(); + public void setAccessibilityDataSensitive( + @AccessibilityDataSensitive int accessibilityDataSensitive) { + mExplicitAccessibilityDataSensitive = accessibilityDataSensitive; + calculateAccessibilityDataSensitive(); } /** diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java index 73d447141cc1..46ae3ea21890 100644 --- a/core/java/android/view/ViewGroup.java +++ b/core/java/android/view/ViewGroup.java @@ -3921,10 +3921,10 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager } @Override - void calculateAccessibilityDataPrivate() { - super.calculateAccessibilityDataPrivate(); + void calculateAccessibilityDataSensitive() { + super.calculateAccessibilityDataSensitive(); for (int i = 0; i < mChildrenCount; i++) { - mChildren[i].calculateAccessibilityDataPrivate(); + mChildren[i].calculateAccessibilityDataSensitive(); } } diff --git a/core/java/android/view/accessibility/AccessibilityEvent.java b/core/java/android/view/accessibility/AccessibilityEvent.java index 33b763bbf0c0..0acc0228ade4 100644 --- a/core/java/android/view/accessibility/AccessibilityEvent.java +++ b/core/java/android/view/accessibility/AccessibilityEvent.java @@ -56,7 +56,7 @@ import java.util.List; * accessibility service has not requested to retrieve the window content the event will * not contain reference to its source. <strong>Note: </strong> for events of type * {@link #TYPE_NOTIFICATION_STATE_CHANGED} the source is never available, and Views that set - * {@link android.view.View#isAccessibilityDataPrivate()} may not populate all event properties on + * {@link android.view.View#isAccessibilityDataSensitive()} may not populate all event properties on * events sent from higher up in the view hierarchy. * </p> * <p> @@ -1168,17 +1168,17 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par * set to true. * * <p> - * Initial value matches the {@link android.view.View#isAccessibilityDataPrivate} property from - * the event's source node, if present, or false by default. + * Initial value matches the {@link android.view.View#isAccessibilityDataSensitive} property + * from the event's source node, if present, or false by default. * </p> * * @return True if the event should be delivered only to isAccessibilityTool services, false * otherwise. - * @see #setAccessibilityDataPrivate + * @see #setAccessibilityDataSensitive */ @Override - public boolean isAccessibilityDataPrivate() { - return super.isAccessibilityDataPrivate(); + public boolean isAccessibilityDataSensitive() { + return super.isAccessibilityDataSensitive(); } /** @@ -1193,13 +1193,13 @@ public final class AccessibilityEvent extends AccessibilityRecord implements Par * no source) then this method must be called explicitly if you want non-default behavior. * </p> * - * @param accessibilityDataPrivate True if the event should be delivered only to + * @param accessibilityDataSensitive True if the event should be delivered only to * isAccessibilityTool services, false otherwise. * @throws IllegalStateException If called from an AccessibilityService. */ @Override - public void setAccessibilityDataPrivate(boolean accessibilityDataPrivate) { - super.setAccessibilityDataPrivate(accessibilityDataPrivate); + public void setAccessibilityDataSensitive(boolean accessibilityDataSensitive) { + super.setAccessibilityDataSensitive(accessibilityDataSensitive); } /** diff --git a/core/java/android/view/accessibility/AccessibilityNodeInfo.java b/core/java/android/view/accessibility/AccessibilityNodeInfo.java index 247e0262d13f..9d82b7900689 100644 --- a/core/java/android/view/accessibility/AccessibilityNodeInfo.java +++ b/core/java/android/view/accessibility/AccessibilityNodeInfo.java @@ -834,6 +834,8 @@ public class AccessibilityNodeInfo implements Parcelable { private static final int BOOLEAN_PROPERTY_REQUEST_TOUCH_PASSTHROUGH = 1 << 25; + private static final int BOOLEAN_PROPERTY_ACCESSIBILITY_DATA_SENSITIVE = 1 << 26; + /** * Bits that provide the id of a virtual descendant of a view. */ @@ -2644,6 +2646,34 @@ public class AccessibilityNodeInfo implements Parcelable { } /** + * Gets if the node's accessibility data is considered sensitive. + * + * @return True if the node is editable, false otherwise. + * @see View#isAccessibilityDataSensitive() + */ + public boolean isAccessibilityDataSensitive() { + return getBooleanProperty(BOOLEAN_PROPERTY_ACCESSIBILITY_DATA_SENSITIVE); + } + + /** + * Sets whether this node's accessibility data is considered sensitive. + * + * <p> + * <strong>Note:</strong> Cannot be called from an {@link AccessibilityService}. + * This class is made immutable before being delivered to an AccessibilityService. + * </p> + * + * @param accessibilityDataSensitive True if the node's accessibility data is considered + * sensitive. + * @throws IllegalStateException If called from an AccessibilityService. + * @see View#setAccessibilityDataSensitive + */ + public void setAccessibilityDataSensitive(boolean accessibilityDataSensitive) { + setBooleanProperty(BOOLEAN_PROPERTY_ACCESSIBILITY_DATA_SENSITIVE, + accessibilityDataSensitive); + } + + /** * If this node represents a visually distinct region of the screen that may update separately * from the rest of the window, it is considered a pane. Set the pane title to indicate that * the node is a pane, and to provide a title for it. diff --git a/core/java/android/view/accessibility/AccessibilityRecord.java b/core/java/android/view/accessibility/AccessibilityRecord.java index 789c740bbba2..38b564ade07d 100644 --- a/core/java/android/view/accessibility/AccessibilityRecord.java +++ b/core/java/android/view/accessibility/AccessibilityRecord.java @@ -72,7 +72,7 @@ public class AccessibilityRecord { private static final int PROPERTY_FULL_SCREEN = 0x00000080; private static final int PROPERTY_SCROLLABLE = 0x00000100; private static final int PROPERTY_IMPORTANT_FOR_ACCESSIBILITY = 0x00000200; - private static final int PROPERTY_ACCESSIBILITY_DATA_PRIVATE = 0x00000400; + private static final int PROPERTY_ACCESSIBILITY_DATA_SENSITIVE = 0x00000400; private static final int GET_SOURCE_PREFETCH_FLAGS = AccessibilityNodeInfo.FLAG_PREFETCH_ANCESTORS @@ -160,8 +160,8 @@ public class AccessibilityRecord { important = root.isImportantForAccessibility(); rootViewId = root.getAccessibilityViewId(); mSourceWindowId = root.getAccessibilityWindowId(); - setBooleanProperty(PROPERTY_ACCESSIBILITY_DATA_PRIVATE, - root.isAccessibilityDataPrivate()); + setBooleanProperty(PROPERTY_ACCESSIBILITY_DATA_SENSITIVE, + root.isAccessibilityDataSensitive()); } setBooleanProperty(PROPERTY_IMPORTANT_FOR_ACCESSIBILITY, important); mSourceNodeId = AccessibilityNodeInfo.makeNodeId(rootViewId, virtualDescendantId); @@ -391,20 +391,20 @@ public class AccessibilityRecord { } /** - * @see AccessibilityEvent#isAccessibilityDataPrivate + * @see AccessibilityEvent#isAccessibilityDataSensitive * @hide */ - boolean isAccessibilityDataPrivate() { - return getBooleanProperty(PROPERTY_ACCESSIBILITY_DATA_PRIVATE); + boolean isAccessibilityDataSensitive() { + return getBooleanProperty(PROPERTY_ACCESSIBILITY_DATA_SENSITIVE); } /** - * @see AccessibilityEvent#setAccessibilityDataPrivate + * @see AccessibilityEvent#setAccessibilityDataSensitive * @hide */ - void setAccessibilityDataPrivate(boolean accessibilityDataPrivate) { + void setAccessibilityDataSensitive(boolean accessibilityDataSensitive) { enforceNotSealed(); - setBooleanProperty(PROPERTY_ACCESSIBILITY_DATA_PRIVATE, accessibilityDataPrivate); + setBooleanProperty(PROPERTY_ACCESSIBILITY_DATA_SENSITIVE, accessibilityDataSensitive); } /** @@ -962,7 +962,7 @@ public class AccessibilityRecord { appendUnless(false, PROPERTY_FULL_SCREEN, builder); appendUnless(false, PROPERTY_SCROLLABLE, builder); appendUnless(false, PROPERTY_IMPORTANT_FOR_ACCESSIBILITY, builder); - appendUnless(false, PROPERTY_ACCESSIBILITY_DATA_PRIVATE, builder); + appendUnless(false, PROPERTY_ACCESSIBILITY_DATA_SENSITIVE, builder); append(builder, "BeforeText", mBeforeText); append(builder, "FromIndex", mFromIndex); @@ -996,8 +996,8 @@ public class AccessibilityRecord { case PROPERTY_SCROLLABLE: return "Scrollable"; case PROPERTY_IMPORTANT_FOR_ACCESSIBILITY: return "ImportantForAccessibility"; - case PROPERTY_ACCESSIBILITY_DATA_PRIVATE: - return "AccessibilityDataPrivate"; + case PROPERTY_ACCESSIBILITY_DATA_SENSITIVE: + return "AccessibilityDataSensitive"; default: return Integer.toHexString(prop); } } diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index fd8f5495464c..1600a16566a5 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -13221,10 +13221,10 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener public void onPopulateAccessibilityEventInternal(AccessibilityEvent event) { super.onPopulateAccessibilityEventInternal(event); - if (this.isAccessibilityDataPrivate() && !event.isAccessibilityDataPrivate()) { - // This view's accessibility data is private, but another view that generated this event - // is not, so don't append this view's text to the event in order to prevent sharing - // this view's contents with non-accessibility-tool services. + if (this.isAccessibilityDataSensitive() && !event.isAccessibilityDataSensitive()) { + // This view's accessibility data is sensitive, but another view that generated this + // event is not, so don't append this view's text to the event in order to prevent + // sharing this view's contents with non-accessibility-tool services. return; } diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml index 9252b149797b..2a67b44d6416 100644 --- a/core/res/res/values/attrs.xml +++ b/core/res/res/values/attrs.xml @@ -3201,8 +3201,8 @@ <!-- Describes whether this view should allow interactions from AccessibilityServices only if the service sets the isAccessibilityTool property. --> - <attr name="accessibilityDataPrivate" format="integer"> - <!-- The system determines whether the view's accessibility data is private + <attr name="accessibilityDataSensitive" format="integer"> + <!-- The system determines whether the view's accessibility data is sensitive - default (recommended). --> <enum name="auto" value="0" /> <!-- Allow interactions from AccessibilityServices only if the service sets the diff --git a/core/res/res/values/public-staging.xml b/core/res/res/values/public-staging.xml index ee021001a54a..69d5feff2de9 100644 --- a/core/res/res/values/public-staging.xml +++ b/core/res/res/values/public-staging.xml @@ -114,7 +114,7 @@ <public name="handwritingBoundsOffsetTop" /> <public name="handwritingBoundsOffsetRight" /> <public name="handwritingBoundsOffsetBottom" /> - <public name="accessibilityDataPrivate" /> + <public name="accessibilityDataSensitive" /> <public name="enableTextStylingShortcuts" /> <public name="requiredDisplayCategory"/> <public name="removed_maxConcurrentSessionsCount" /> diff --git a/core/tests/coretests/src/android/view/accessibility/AccessibilityNodeInfoTest.java b/core/tests/coretests/src/android/view/accessibility/AccessibilityNodeInfoTest.java index 6d635af20645..3d4918b1bd42 100644 --- a/core/tests/coretests/src/android/view/accessibility/AccessibilityNodeInfoTest.java +++ b/core/tests/coretests/src/android/view/accessibility/AccessibilityNodeInfoTest.java @@ -58,7 +58,7 @@ public class AccessibilityNodeInfoTest { // The number of flags held in boolean properties. Their values should also be double-checked // in the methods above. - private static final int NUM_BOOLEAN_PROPERTIES = 26; + private static final int NUM_BOOLEAN_PROPERTIES = 27; @Test public void testStandardActions_serializationFlagIsValid() { diff --git a/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java b/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java index a3592166ba03..e159f18809c4 100644 --- a/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java +++ b/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java @@ -1635,7 +1635,7 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ return false; } - if (event.isAccessibilityDataPrivate() + if (event.isAccessibilityDataSensitive() && (mFetchFlags & AccessibilityNodeInfo.FLAG_SERVICE_IS_ACCESSIBILITY_TOOL) == 0) { return false; } |