Merge changes I9761c313,I25dacbfa into sc-dev

* changes:
  Prevent UdfpsView from being selectable during a11y enrollment
  Disable guided enrollment for a11y
This commit is contained in:
Kevin Chyn
2021-05-14 18:37:09 +00:00
committed by Android (Google) Code Review
2 changed files with 20 additions and 0 deletions

View File

@@ -630,6 +630,14 @@ public class UdfpsController implements DozeReceiver {
animation.init();
mView.setAnimationViewController(animation);
// This view overlaps the sensor area, so prevent it from being selectable
// during a11y.
if (reason == IUdfpsOverlayController.REASON_ENROLL_FIND_SENSOR
|| reason == IUdfpsOverlayController.REASON_ENROLL_ENROLLING) {
mView.setImportantForAccessibility(
View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS);
}
mWindowManager.addView(mView, computeLayoutParams(animation));
mAccessibilityManager.addTouchExplorationStateChangeListener(
mTouchExplorationStateChangeListener);

View File

@@ -26,6 +26,7 @@ import android.os.UserHandle;
import android.provider.Settings;
import android.util.Log;
import android.util.TypedValue;
import android.view.accessibility.AccessibilityManager;
import java.util.ArrayList;
import java.util.List;
@@ -53,6 +54,7 @@ public class UdfpsEnrollHelper {
@NonNull private final Context mContext;
// IUdfpsOverlayController reason
private final int mEnrollReason;
private final boolean mAccessibilityEnabled;
@NonNull private final List<PointF> mGuidedEnrollmentPoints;
private int mTotalSteps = -1;
@@ -67,6 +69,10 @@ public class UdfpsEnrollHelper {
public UdfpsEnrollHelper(@NonNull Context context, int reason) {
mContext = context;
mEnrollReason = reason;
final AccessibilityManager am = context.getSystemService(AccessibilityManager.class);
mAccessibilityEnabled = am.isEnabled();
mGuidedEnrollmentPoints = new ArrayList<>();
// Number of pixels per mm
@@ -148,6 +154,8 @@ public class UdfpsEnrollHelper {
boolean isCenterEnrollmentComplete() {
if (mTotalSteps == -1 || mRemainingSteps == -1) {
return false;
} else if (mAccessibilityEnabled) {
return false;
}
final int stepsEnrolled = mTotalSteps - mRemainingSteps;
return stepsEnrolled >= NUM_CENTER_TOUCHES;
@@ -155,6 +163,10 @@ public class UdfpsEnrollHelper {
@NonNull
PointF getNextGuidedEnrollmentPoint() {
if (mAccessibilityEnabled) {
return new PointF(0f, 0f);
}
float scale = SCALE;
if (Build.IS_ENG || Build.IS_USERDEBUG) {
scale = Settings.Secure.getFloatForUser(mContext.getContentResolver(),