summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Daniel Norman <danielnorman@google.com> 2023-03-02 18:40:48 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-03-02 18:40:48 +0000
commit4c68e35d46eef693bf59df747326101fb37f1010 (patch)
treed50e92630b28383fc57a63b72b8d41858677fc8e
parentfab84db78f0bcdb222f7f6c8cdd58070cb439b42 (diff)
parent7ea7d33ca267085abfab22bc2096e7b203cb6b58 (diff)
Merge "Rename AccessibilityDataPrivate -> AccessibilityDataSensitive" into udc-dev
-rw-r--r--core/api/current.txt18
-rw-r--r--core/java/android/view/AccessibilityInteractionController.java2
-rw-r--r--core/java/android/view/View.java83
-rw-r--r--core/java/android/view/ViewGroup.java6
-rw-r--r--core/java/android/view/accessibility/AccessibilityEvent.java18
-rw-r--r--core/java/android/view/accessibility/AccessibilityNodeInfo.java30
-rw-r--r--core/java/android/view/accessibility/AccessibilityRecord.java24
-rw-r--r--core/java/android/widget/TextView.java8
-rw-r--r--core/res/res/values/attrs.xml4
-rw-r--r--core/res/res/values/public-staging.xml2
-rw-r--r--core/tests/coretests/src/android/view/accessibility/AccessibilityNodeInfoTest.java2
-rw-r--r--services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java2
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;
}