Merge "Rename AccessibilityDataPrivate -> AccessibilityDataSensitive" into udc-dev

This commit is contained in:
Daniel Norman
2023-03-02 18:40:48 +00:00
committed by Android (Google) Code Review
12 changed files with 116 additions and 83 deletions

View File

@@ -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);

View File

@@ -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(

View File

@@ -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();
}
/**

View File

@@ -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();
}
}

View File

@@ -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);
}
/**

View File

@@ -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.
*/
@@ -2643,6 +2645,34 @@ public class AccessibilityNodeInfo implements Parcelable {
setBooleanProperty(BOOLEAN_PROPERTY_REQUEST_TOUCH_PASSTHROUGH, touchPassthrough);
}
/**
* 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

View File

@@ -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);
}
}

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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" />

View File

@@ -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() {

View File

@@ -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;
}