Only announce for accessibility if accessibility is enabled

am: 791f1ddaa3

Change-Id: I587f67173f3c78914e77997359a11a3255b3b088
This commit is contained in:
Kevin Chyn
2019-06-05 16:25:37 -07:00
committed by android-build-merger

View File

@@ -39,6 +39,7 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.WindowManager; import android.view.WindowManager;
import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityManager;
import android.view.animation.Interpolator; import android.view.animation.Interpolator;
import android.widget.Button; import android.widget.Button;
import android.widget.ImageView; import android.widget.ImageView;
@@ -75,6 +76,7 @@ public abstract class BiometricDialogView extends LinearLayout {
protected static final int STATE_PENDING_CONFIRMATION = 3; protected static final int STATE_PENDING_CONFIRMATION = 3;
protected static final int STATE_AUTHENTICATED = 4; protected static final int STATE_AUTHENTICATED = 4;
private final AccessibilityManager mAccessibilityManager;
private final IBinder mWindowToken = new Binder(); private final IBinder mWindowToken = new Binder();
private final Interpolator mLinearOutSlowIn; private final Interpolator mLinearOutSlowIn;
private final WindowManager mWindowManager; private final WindowManager mWindowManager;
@@ -153,6 +155,7 @@ public abstract class BiometricDialogView extends LinearLayout {
super(context); super(context);
mCallback = callback; mCallback = callback;
mLinearOutSlowIn = Interpolators.LINEAR_OUT_SLOW_IN; mLinearOutSlowIn = Interpolators.LINEAR_OUT_SLOW_IN;
mAccessibilityManager = mContext.getSystemService(AccessibilityManager.class);
mWindowManager = mContext.getSystemService(WindowManager.class); mWindowManager = mContext.getSystemService(WindowManager.class);
mUserManager = mContext.getSystemService(UserManager.class); mUserManager = mContext.getSystemService(UserManager.class);
mDevicePolicyManager = mContext.getSystemService(DevicePolicyManager.class); mDevicePolicyManager = mContext.getSystemService(DevicePolicyManager.class);
@@ -522,12 +525,14 @@ public abstract class BiometricDialogView extends LinearLayout {
// Every time a view becomes invisible we need to announce an accessibility event. // Every time a view becomes invisible we need to announce an accessibility event.
// This is due to an issue in the framework, b/132298701 recommended this workaround. // This is due to an issue in the framework, b/132298701 recommended this workaround.
protected void announceAccessibilityEvent() { protected void announceAccessibilityEvent() {
if (!mAccessibilityManager.isEnabled()) {
return;
}
AccessibilityEvent event = AccessibilityEvent.obtain(); AccessibilityEvent event = AccessibilityEvent.obtain();
event.setEventType(AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED); event.setEventType(AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED);
event.setContentChangeTypes(CONTENT_CHANGE_TYPE_SUBTREE); event.setContentChangeTypes(CONTENT_CHANGE_TYPE_SUBTREE);
mDialog.sendAccessibilityEventUnchecked(event); mDialog.sendAccessibilityEventUnchecked(event);
mDialog.notifySubtreeAccessibilityStateChanged(mDialog, mDialog, mDialog.notifySubtreeAccessibilityStateChanged(mDialog, mDialog,
CONTENT_CHANGE_TYPE_SUBTREE); CONTENT_CHANGE_TYPE_SUBTREE);
event.recycle();
} }
} }