Revert "Don't generate irrelevant a11y events - framework"

This reverts commit 8ddfb4794f.

Test: presubmit
Bug: 69975306
Change-Id: I05cb545eb0adc77298dddf2dea2997ef36b58a5f
This commit is contained in:
Eugene Susla
2017-12-04 19:48:41 +00:00
parent 8ddfb4794f
commit d4128ec0df
17 changed files with 59 additions and 185 deletions

View File

@@ -16,8 +16,6 @@
package android.accessibilityservice;
import static android.content.pm.PackageManager.FEATURE_FINGERPRINT;
import android.content.ComponentName;
import android.content.Context;
import android.content.pm.PackageManager;
@@ -49,6 +47,8 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import static android.content.pm.PackageManager.FEATURE_FINGERPRINT;
/**
* This class describes an {@link AccessibilityService}. The system notifies an
* {@link AccessibilityService} for {@link android.view.accessibility.AccessibilityEvent}s
@@ -554,7 +554,7 @@ public class AccessibilityServiceInfo implements Parcelable {
}
/**
* Updates the properties that an AccessibilityService can change dynamically.
* Updates the properties that an AccessibilitySerivice can change dynamically.
*
* @param other The info from which to update the properties.
*

View File

@@ -21,16 +21,18 @@ import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Paint.Align;
import android.graphics.PorterDuff;
import android.graphics.Rect;
import android.graphics.Region.Op;
import android.graphics.Typeface;
import android.graphics.Paint.Align;
import android.graphics.Region.Op;
import android.graphics.drawable.Drawable;
import android.inputmethodservice.Keyboard.Key;
import android.media.AudioManager;
import android.os.Handler;
import android.os.Message;
import android.os.UserHandle;
import android.provider.Settings;
import android.util.AttributeSet;
import android.util.TypedValue;
import android.view.GestureDetector;
@@ -984,9 +986,6 @@ public class KeyboardView extends View implements View.OnClickListener {
private void sendAccessibilityEventForUnicodeCharacter(int eventType, int code) {
if (mAccessibilityManager.isEnabled()) {
if (!mAccessibilityManager.isObservedEventType(eventType)) {
return;
}
AccessibilityEvent event = AccessibilityEvent.obtain(eventType);
onInitializeAccessibilityEvent(event);
final String text;

View File

@@ -7196,8 +7196,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
* @param text The announcement text.
*/
public void announceForAccessibility(CharSequence text) {
if (AccessibilityManager.getInstance(mContext).isObservedEventType(
AccessibilityEvent.TYPE_ANNOUNCEMENT) && mParent != null) {
if (AccessibilityManager.getInstance(mContext).isEnabled() && mParent != null) {
AccessibilityEvent event = AccessibilityEvent.obtain(
AccessibilityEvent.TYPE_ANNOUNCEMENT);
onInitializeAccessibilityEvent(event);
@@ -10916,8 +10915,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
if ((mPrivateFlags2 & PFLAG2_ACCESSIBILITY_FOCUSED) != 0) {
mPrivateFlags2 &= ~PFLAG2_ACCESSIBILITY_FOCUSED;
invalidate();
if (AccessibilityManager.getInstance(mContext).isObservedEventType(
AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED)) {
if (AccessibilityManager.getInstance(mContext).isEnabled()) {
AccessibilityEvent event = AccessibilityEvent.obtain(
AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED);
event.setAction(action);
@@ -11742,8 +11740,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
private void sendViewTextTraversedAtGranularityEvent(int action, int granularity,
int fromIndex, int toIndex) {
if (mParent == null || !AccessibilityManager.getInstance(mContext).isObservedEventType(
AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY)) {
if (mParent == null) {
return;
}
AccessibilityEvent event = AccessibilityEvent.obtain(
@@ -26133,8 +26130,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
@Override
public void run() {
if (AccessibilityManager.getInstance(mContext).isObservedEventType(
AccessibilityEvent.TYPE_VIEW_SCROLLED)) {
if (AccessibilityManager.getInstance(mContext).isEnabled()) {
AccessibilityEvent event = AccessibilityEvent.obtain(
AccessibilityEvent.TYPE_VIEW_SCROLLED);
event.setScrollDeltaX(mDeltaX);

View File

@@ -24,7 +24,6 @@ import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SdkConstant;
import android.annotation.SystemService;
import android.annotation.TestApi;
import android.content.ComponentName;
import android.content.Context;
import android.content.pm.PackageManager;
@@ -188,7 +187,6 @@ public final class AccessibilityManager {
*
* @hide
*/
@TestApi
public interface AccessibilityServicesStateChangeListener {
/**
@@ -453,18 +451,6 @@ public final class AccessibilityManager {
}
}
/**
* Returns whether there are observers registered for this event type. If
* this method returns false you shuold not generate events of this type
* to conserve resources.
*
* @param type The event type.
* @return Whether the event is being observed.
*/
public boolean isObservedEventType(@AccessibilityEvent.EventType int type) {
return mIsEnabled && (mRelevantEventTypes & type) != 0;
}
/**
* Requests feedback interruption from all accessibility services.
*/
@@ -697,7 +683,6 @@ public final class AccessibilityManager {
* for a callback on the process's main handler.
* @hide
*/
@TestApi
public void addAccessibilityServicesStateChangeListener(
@NonNull AccessibilityServicesStateChangeListener listener, @Nullable Handler handler) {
synchronized (mLock) {
@@ -713,7 +698,6 @@ public final class AccessibilityManager {
*
* @hide
*/
@TestApi
public void removeAccessibilityServicesStateChangeListener(
@NonNull AccessibilityServicesStateChangeListener listener) {
// Final CopyOnWriteArrayList - no lock needed.

View File

@@ -1952,8 +1952,7 @@ public class NumberPicker extends LinearLayout {
CharSequence beforeText = mInputText.getText();
if (!text.equals(beforeText.toString())) {
mInputText.setText(text);
if (AccessibilityManager.getInstance(mContext).isObservedEventType(
AccessibilityEvent.TYPE_VIEW_TEXT_CHANGED)) {
if (AccessibilityManager.getInstance(mContext).isEnabled()) {
AccessibilityEvent event = AccessibilityEvent.obtain(
AccessibilityEvent.TYPE_VIEW_TEXT_CHANGED);
mInputText.onInitializeAccessibilityEvent(event);
@@ -2613,7 +2612,7 @@ public class NumberPicker extends LinearLayout {
}
private void sendAccessibilityEventForVirtualText(int eventType) {
if (AccessibilityManager.getInstance(mContext).isObservedEventType(eventType)) {
if (AccessibilityManager.getInstance(mContext).isEnabled()) {
AccessibilityEvent event = AccessibilityEvent.obtain(eventType);
mInputText.onInitializeAccessibilityEvent(event);
mInputText.onPopulateAccessibilityEvent(event);
@@ -2624,7 +2623,7 @@ public class NumberPicker extends LinearLayout {
private void sendAccessibilityEventForVirtualButton(int virtualViewId, int eventType,
String text) {
if (AccessibilityManager.getInstance(mContext).isObservedEventType(eventType)) {
if (AccessibilityManager.getInstance(mContext).isEnabled()) {
AccessibilityEvent event = AccessibilityEvent.obtain(eventType);
event.setClassName(Button.class.getName());
event.setPackageName(mContext.getPackageName());

View File

@@ -10836,10 +10836,6 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
void sendAccessibilityEventTypeViewTextChanged(CharSequence beforeText,
int fromIndex, int removedCount, int addedCount) {
if (!AccessibilityManager.getInstance(mContext).isObservedEventType(
AccessibilityEvent.TYPE_VIEW_TEXT_CHANGED)) {
return;
}
AccessibilityEvent event =
AccessibilityEvent.obtain(AccessibilityEvent.TYPE_VIEW_TEXT_CHANGED);
event.setFromIndex(fromIndex);

View File

@@ -504,8 +504,7 @@ public class Toast {
private void trySendAccessibilityEvent() {
AccessibilityManager accessibilityManager =
AccessibilityManager.getInstance(mView.getContext());
if (!accessibilityManager.isObservedEventType(
AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED)) {
if (!accessibilityManager.isEnabled()) {
return;
}
// treat toasts as notifications since they are used to

View File

@@ -186,9 +186,6 @@ public abstract class ExploreByTouchHelper extends View.AccessibilityDelegate {
}
final AccessibilityEvent event = createEvent(virtualViewId, eventType);
if (event == null) {
return false;
}
return parent.requestSendAccessibilityEvent(mView, event);
}
@@ -243,9 +240,6 @@ public abstract class ExploreByTouchHelper extends View.AccessibilityDelegate {
if (parent != null) {
final AccessibilityEvent event = createEvent(virtualViewId,
AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED);
if (event == null) {
return;
}
event.setContentChangeTypes(changeTypes);
parent.requestSendAccessibilityEvent(mView, event);
}
@@ -311,9 +305,6 @@ public abstract class ExploreByTouchHelper extends View.AccessibilityDelegate {
* the specified item.
*/
private AccessibilityEvent createEventForHost(int eventType) {
if (!AccessibilityManager.getInstance(mContext).isObservedEventType(eventType)) {
return null;
}
final AccessibilityEvent event = AccessibilityEvent.obtain(eventType);
mView.onInitializeAccessibilityEvent(event);
@@ -334,9 +325,6 @@ public abstract class ExploreByTouchHelper extends View.AccessibilityDelegate {
* the specified item.
*/
private AccessibilityEvent createEventForChild(int virtualViewId, int eventType) {
if (!AccessibilityManager.getInstance(mContext).isObservedEventType(eventType)) {
return null;
}
final AccessibilityEvent event = AccessibilityEvent.obtain(eventType);
event.setEnabled(true);
event.setClassName(DEFAULT_CLASS_NAME);