From 88899271816f668618da25e636827b456cf2de4d Mon Sep 17 00:00:00 2001 From: Jason Chang Date: Tue, 11 Feb 2025 10:48:17 +0000 Subject: [PATCH] =?UTF-8?q?Apply=20Expressive=20style=20"More=E2=80=9D=20p?= =?UTF-8?q?age-down=20button=20for=20Settings=20Face=20Enroll=20Introducti?= =?UTF-8?q?on=20page?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Flag: EXEMPT use SUW/Settings Expressive style API to check Bug: 394223273 Test: build and manually check the UI and its behaviors Change-Id: Iad9d6a53363fabad05b45a822f8ba6f1b83b9d7b --- .../BiometricEnrollIntroduction.java | 40 +++++++++++-------- .../settings/biometrics/BiometricUtils.java | 12 ++++++ 2 files changed, 35 insertions(+), 17 deletions(-) diff --git a/src/com/android/settings/biometrics/BiometricEnrollIntroduction.java b/src/com/android/settings/biometrics/BiometricEnrollIntroduction.java index 5d1c4784b98..226876e8533 100644 --- a/src/com/android/settings/biometrics/BiometricEnrollIntroduction.java +++ b/src/com/android/settings/biometrics/BiometricEnrollIntroduction.java @@ -155,6 +155,7 @@ public abstract class BiometricEnrollIntroduction extends BiometricEnrollBase @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + final boolean isExpressiveStyle = BiometricUtils.isExpressiveStyle(getBaseContext()); if (shouldShowSplitScreenDialog()) { BiometricsSplitScreenDialog @@ -213,28 +214,33 @@ public abstract class BiometricEnrollIntroduction extends BiometricEnrollBase mFooterBarMixin = layout.getMixin(FooterBarMixin.class); mFooterBarMixin.setPrimaryButton(getPrimaryFooterButton()); mFooterBarMixin.setSecondaryButton(getSecondaryFooterButton(), true /* usePrimaryStyle */); - mFooterBarMixin.getSecondaryButton().setVisibility( - mHasScrolledToBottom ? View.VISIBLE : View.INVISIBLE); + if (!isExpressiveStyle) { + mFooterBarMixin.getSecondaryButton().setVisibility( + mHasScrolledToBottom ? View.VISIBLE : View.INVISIBLE); + } final RequireScrollMixin requireScrollMixin = layout.getMixin(RequireScrollMixin.class); requireScrollMixin.requireScrollWithButton(this, getPrimaryFooterButton(), getMoreButtonTextRes(), this::onNextButtonClick); - requireScrollMixin.setOnRequireScrollStateChangedListener( - scrollNeeded -> { - boolean enrollmentCompleted = checkMaxEnrolled() != 0; - if (!enrollmentCompleted) { - // Update text of primary button from "More" to "Agree". - final int primaryButtonTextRes = scrollNeeded - ? getMoreButtonTextRes() - : getAgreeButtonTextRes(); - getPrimaryFooterButton().setText(this, primaryButtonTextRes); - } + if (!isExpressiveStyle) { + requireScrollMixin.setOnRequireScrollStateChangedListener( + scrollNeeded -> { + boolean enrollmentCompleted = checkMaxEnrolled() != 0; + if (!enrollmentCompleted) { + // Update text of primary button from "More" to "Agree". + final int primaryButtonTextRes = scrollNeeded + ? getMoreButtonTextRes() + : getAgreeButtonTextRes(); + getPrimaryFooterButton().setText(this, primaryButtonTextRes); + } - // Show secondary button once scroll is completed. - getSecondaryFooterButton().setVisibility( - !scrollNeeded && !enrollmentCompleted ? View.VISIBLE : View.INVISIBLE); - mHasScrolledToBottom = !scrollNeeded; - }); + // Show secondary button once scroll is completed. + getSecondaryFooterButton().setVisibility( + !scrollNeeded && !enrollmentCompleted ? View.VISIBLE + : View.INVISIBLE); + mHasScrolledToBottom = !scrollNeeded; + }); + } final boolean isScrollNeeded = requireScrollMixin.isScrollingRequired(); final boolean enrollmentCompleted = checkMaxEnrolled() != 0; diff --git a/src/com/android/settings/biometrics/BiometricUtils.java b/src/com/android/settings/biometrics/BiometricUtils.java index e080ef48905..a4fb7358011 100644 --- a/src/com/android/settings/biometrics/BiometricUtils.java +++ b/src/com/android/settings/biometrics/BiometricUtils.java @@ -50,8 +50,10 @@ import com.android.settings.overlay.FeatureFactory; import com.android.settings.password.ChooseLockGeneric; import com.android.settings.password.ChooseLockSettingsHelper; import com.android.settings.password.SetupChooseLockGeneric; +import com.android.settingslib.widget.SettingsThemeHelper; import com.google.android.setupcompat.util.WizardManagerHelper; +import com.google.android.setupdesign.util.ThemeHelper; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -530,6 +532,16 @@ public class BiometricUtils { return ssb.toString(); } + /** + * Check if device is using Expressive Style theme. + * @param context that for applying Expressive Style + * @return true if device using Expressive Style theme, otherwise false. + */ + public static boolean isExpressiveStyle(@NonNull Context context) { + return SettingsThemeHelper.isExpressiveTheme(context) + || ThemeHelper.shouldApplyGlifExpressiveStyle(context); + } + private static String capitalize(final String input) { return Character.toUpperCase(input.charAt(0)) + input.substring(1); }