From 474093e8cc5184641e95629696fa9e8d38fbf996 Mon Sep 17 00:00:00 2001 From: Mill Chen Date: Sun, 14 Mar 2021 05:28:00 +0800 Subject: [PATCH] Add a reverse landscape layout for UDFPS Bug: 181614043 Test: visual verified 1) Settings -> Security -> Fingerprint 2) Follow the setup flow to find sensor page and enrolling page 3) Rotate your device and see if fingerprint icon is overlapping with the title. Change-Id: Ia1202e9688f2472c8063287164f4fc8f479cdae9 --- .../udfps_enroll_enrolling_land.xml | 95 +++++++++++++++++++ .../udfps_enroll_find_sensor_land.xml | 94 ++++++++++++++++++ .../settings/biometrics/BiometricUtils.java | 11 +++ .../FingerprintEnrollEnrolling.java | 8 +- .../FingerprintEnrollFindSensor.java | 6 +- 5 files changed, 212 insertions(+), 2 deletions(-) create mode 100644 res/layout-land/udfps_enroll_enrolling_land.xml create mode 100644 res/layout-land/udfps_enroll_find_sensor_land.xml diff --git a/res/layout-land/udfps_enroll_enrolling_land.xml b/res/layout-land/udfps_enroll_enrolling_land.xml new file mode 100644 index 00000000000..7ccd396936b --- /dev/null +++ b/res/layout-land/udfps_enroll_enrolling_land.xml @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/res/layout-land/udfps_enroll_find_sensor_land.xml b/res/layout-land/udfps_enroll_find_sensor_land.xml new file mode 100644 index 00000000000..6335afb2485 --- /dev/null +++ b/res/layout-land/udfps_enroll_find_sensor_land.xml @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/com/android/settings/biometrics/BiometricUtils.java b/src/com/android/settings/biometrics/BiometricUtils.java index d93a321cacb..f338eb592b1 100644 --- a/src/com/android/settings/biometrics/BiometricUtils.java +++ b/src/com/android/settings/biometrics/BiometricUtils.java @@ -24,6 +24,7 @@ import android.content.Intent; import android.content.IntentSender; import android.os.storage.StorageManager; import android.util.Log; +import android.view.Surface; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -241,4 +242,14 @@ public class BiometricUtils { } return false; } + + /** + * Returns {@code true} if the screen is going into a landscape mode and the angle is equal to + * 270. + * @param context Context that we use to get the display this context is associated with + * @return True if the angle of the rotation is equal to 270. + */ + public static boolean isReverseLandscape(@NonNull Context context) { + return context.getDisplay().getRotation() == Surface.ROTATION_270; + } } diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java index 10b31e331b9..8def63d2c73 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java @@ -47,6 +47,7 @@ import androidx.appcompat.app.AlertDialog; import com.android.settings.R; import com.android.settings.biometrics.BiometricEnrollSidecar; import com.android.settings.biometrics.BiometricErrorDialog; +import com.android.settings.biometrics.BiometricUtils; import com.android.settings.biometrics.BiometricsEnrollEnrolling; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; @@ -98,6 +99,7 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling { private boolean mCanAssumeUdfps; @Nullable private ProgressBar mProgressBar; private ObjectAnimator mProgressAnim; + private TextView mDescriptionText; private TextView mErrorText; private Interpolator mFastOutSlowInInterpolator; private Interpolator mLinearOutSlowInInterpolator; @@ -145,7 +147,11 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling { mCanAssumeUdfps = props.size() == 1 && props.get(0).isAnyUdfpsType(); if (mCanAssumeUdfps) { - setContentView(R.layout.udfps_enroll_enrolling); + if (BiometricUtils.isReverseLandscape(getApplicationContext())) { + setContentView(R.layout.udfps_enroll_enrolling_land); + } else { + setContentView(R.layout.udfps_enroll_enrolling); + } setDescriptionText(R.string.security_settings_udfps_enroll_start_message); } else { setContentView(R.layout.fingerprint_enroll_enrolling); diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java index 94eb2780bee..8bc03acb4f9 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java @@ -112,7 +112,11 @@ public class FingerprintEnrollFindSensor extends BiometricEnrollBase { protected int getContentView() { if (mCanAssumeUdfps) { - return R.layout.udfps_enroll_find_sensor_layout; + if (BiometricUtils.isReverseLandscape(getApplicationContext())) { + return R.layout.udfps_enroll_find_sensor_land; + } else { + return R.layout.udfps_enroll_find_sensor_layout; + } } return R.layout.fingerprint_enroll_find_sensor; }