From dd4c8d2d1ae67d3116cff5f0a8369e15c3a6d35c Mon Sep 17 00:00:00 2001 From: Jason Chang Date: Sun, 23 Feb 2025 17:15:45 +0000 Subject: [PATCH] (1/n) Fix Wrong button color in lockscreen dialog. Use SUW API ThemeHelper.shouldApplyGlifExpressiveStyle() to update AlertDialog style. Flag: EXEMPT use SUW Expressive style API to check Bug: 390544548 Test: atest SetupSkipDialogTest Test: build and manually check the UI and its behaviors Change-Id: I953270f4dc38796c3b64cba8cc3e84c3f4dcc2f2 --- .../settings/password/SetupSkipDialog.java | 67 ++++++++++++++----- 1 file changed, 49 insertions(+), 18 deletions(-) diff --git a/src/com/android/settings/password/SetupSkipDialog.java b/src/com/android/settings/password/SetupSkipDialog.java index 9049da7348e..28f65948f42 100644 --- a/src/com/android/settings/password/SetupSkipDialog.java +++ b/src/com/android/settings/password/SetupSkipDialog.java @@ -43,6 +43,7 @@ import com.android.settings.Utils; import com.android.settings.biometrics.BiometricUtils; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; public class SetupSkipDialog extends InstrumentedDialogFragment implements DialogInterface.OnClickListener { @@ -77,14 +78,23 @@ public class SetupSkipDialog extends InstrumentedDialogFragment @Override public Dialog onCreateDialog(Bundle savedInstanceState) { - return onCreateDialogBuilder().create(); + if (BiometricUtils.isExpressiveStyle(getContext(), false)) { + final MaterialAlertDialogBuilder meterialBuilder = + (MaterialAlertDialogBuilder) onCreateDialogBuilder(); + return meterialBuilder.create(); + } else { + final AlertDialog.Builder alertDialogBuilder = + (AlertDialog.Builder) onCreateDialogBuilder(); + return alertDialogBuilder.create(); + } } - private AlertDialog.Builder getBiometricsBuilder( + @SuppressWarnings("TypeParameterUnusedInFormals") + private T getBiometricsBuilder( @LockPatternUtils.CredentialType int credentialType, boolean isSuw, boolean hasFace, boolean hasFingerprint) { - final boolean isFaceSupported = hasFace && (!isSuw || BiometricUtils.isFaceSupportedInSuw( - getContext())); + final boolean isFaceSupported = hasFace && (!isSuw + || BiometricUtils.isFaceSupportedInSuw(getContext())); final int msgResId; final int screenLockResId; switch (credentialType) { @@ -102,16 +112,27 @@ public class SetupSkipDialog extends InstrumentedDialogFragment msgResId = getPinSkipMessageRes(hasFace && isFaceSupported, hasFingerprint); break; } - return new AlertDialog.Builder(getContext()) - .setPositiveButton(R.string.skip_lock_screen_dialog_button_label, this) - .setNegativeButton(R.string.cancel_lock_screen_dialog_button_label, this) - .setTitle(getSkipSetupTitle(screenLockResId, hasFingerprint, - hasFace && isFaceSupported)) - .setMessage(msgResId); + + if (BiometricUtils.isExpressiveStyle(getContext(), false)) { + return (T) new MaterialAlertDialogBuilder(getContext()) + .setPositiveButton(R.string.skip_lock_screen_dialog_button_label, this) + .setNegativeButton(R.string.cancel_lock_screen_dialog_button_label, this) + .setTitle(getSkipSetupTitle(screenLockResId, hasFingerprint, + hasFace && isFaceSupported)) + .setMessage(msgResId); + } else { + return (T) new AlertDialog.Builder(getContext()) + .setPositiveButton(R.string.skip_lock_screen_dialog_button_label, this) + .setNegativeButton(R.string.cancel_lock_screen_dialog_button_label, this) + .setTitle(getSkipSetupTitle(screenLockResId, hasFingerprint, + hasFace && isFaceSupported)) + .setMessage(msgResId); + } } @NonNull - public AlertDialog.Builder onCreateDialogBuilder() { + @SuppressWarnings("TypeParameterUnusedInFormals") + public T onCreateDialogBuilder() { Bundle args = getArguments(); final boolean isSuw = args.getBoolean(EXTRA_KEY_IS_SUW); final boolean forBiometrics = args.getBoolean(EXTRA_KEY_FOR_BIOMETRICS); @@ -126,13 +147,23 @@ public class SetupSkipDialog extends InstrumentedDialogFragment return getBiometricsBuilder(credentialType, isSuw, hasFace, hasFingerprint); } - return new AlertDialog.Builder(getContext()) - .setPositiveButton(R.string.skip_anyway_button_label, this) - .setNegativeButton(R.string.go_back_button_label, this) - .setTitle(R.string.lock_screen_intro_skip_title) - .setMessage(args.getBoolean(ARG_FRP_SUPPORTED) ? - R.string.lock_screen_intro_skip_dialog_text_frp : - R.string.lock_screen_intro_skip_dialog_text); + final int msg = args.getBoolean(ARG_FRP_SUPPORTED) + ? R.string.lock_screen_intro_skip_dialog_text_frp + : R.string.lock_screen_intro_skip_dialog_text; + if (BiometricUtils.isExpressiveStyle(getContext(), false)) { + return (T) new MaterialAlertDialogBuilder(getContext()) + .setPositiveButton(R.string.skip_anyway_button_label, this) + .setNegativeButton(R.string.go_back_button_label, this) + .setTitle(R.string.lock_screen_intro_skip_title) + .setMessage(msg); + + } else { + return (T) new AlertDialog.Builder(getContext()) + .setPositiveButton(R.string.skip_anyway_button_label, this) + .setNegativeButton(R.string.go_back_button_label, this) + .setTitle(R.string.lock_screen_intro_skip_title) + .setMessage(msg); + } } @StringRes