From f1bf44392ae7ef1473f0ac9832aff35fa7dac1e2 Mon Sep 17 00:00:00 2001 From: MiltonWu Date: Mon, 6 Nov 2023 16:40:58 +0800 Subject: [PATCH] Scroll-down after click accessiblity button On FaceEnrollEducation page, scroll-down when user click "Setup for limited vision or head motion button" Test: SettingsRoboTest FaceEnrollEducationTest Bug: 309368020 Change-Id: Ifc07337dd8af6f67412de6e7503fc4bc221fb068 --- .../biometrics/face/FaceEnrollEducation.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/com/android/settings/biometrics/face/FaceEnrollEducation.java b/src/com/android/settings/biometrics/face/FaceEnrollEducation.java index 814dac1c456..62e9757b365 100644 --- a/src/com/android/settings/biometrics/face/FaceEnrollEducation.java +++ b/src/com/android/settings/biometrics/face/FaceEnrollEducation.java @@ -25,6 +25,8 @@ import android.content.Intent; import android.content.res.Configuration; import android.hardware.face.FaceManager; import android.os.Bundle; +import android.os.Handler; +import android.os.Looper; import android.os.UserHandle; import android.text.TextUtils; import android.util.Log; @@ -32,6 +34,7 @@ import android.view.View; import android.view.accessibility.AccessibilityManager; import android.widget.Button; import android.widget.CompoundButton; +import android.widget.ScrollView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -86,6 +89,23 @@ public class FaceEnrollEducation extends BiometricEnrollBase { } }; + final View.OnLayoutChangeListener mSwitchDiversityOnLayoutChangeListener = + (v, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) -> { + if (oldBottom == 0 && bottom != 0) { + new Handler(Looper.getMainLooper()).post(() -> { + final ScrollView scrollView = + findViewById(com.google.android.setupdesign.R.id.sud_scroll_view); + if (scrollView != null) { + scrollView.fullScroll(View.FOCUS_DOWN); // scroll down + } + if (mSwitchDiversity != null) { + mSwitchDiversity.removeOnLayoutChangeListener( + this.mSwitchDiversityOnLayoutChangeListener); + } + }); + } + }; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -155,6 +175,7 @@ public class FaceEnrollEducation extends BiometricEnrollBase { mSwitchDiversity.setChecked(true); accessibilityButton.setVisibility(View.GONE); mSwitchDiversity.setVisibility(View.VISIBLE); + mSwitchDiversity.addOnLayoutChangeListener(mSwitchDiversityOnLayoutChangeListener); }); mSwitchDiversity = findViewById(R.id.toggle_diversity);