(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
This commit is contained in:
Jason Chang
2025-02-23 17:15:45 +00:00
parent 11b78c6fef
commit dd4c8d2d1a

View File

@@ -43,6 +43,7 @@ import com.android.settings.Utils;
import com.android.settings.biometrics.BiometricUtils; import com.android.settings.biometrics.BiometricUtils;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
public class SetupSkipDialog extends InstrumentedDialogFragment public class SetupSkipDialog extends InstrumentedDialogFragment
implements DialogInterface.OnClickListener { implements DialogInterface.OnClickListener {
@@ -77,14 +78,23 @@ public class SetupSkipDialog extends InstrumentedDialogFragment
@Override @Override
public Dialog onCreateDialog(Bundle savedInstanceState) { 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> T getBiometricsBuilder(
@LockPatternUtils.CredentialType int credentialType, boolean isSuw, boolean hasFace, @LockPatternUtils.CredentialType int credentialType, boolean isSuw, boolean hasFace,
boolean hasFingerprint) { boolean hasFingerprint) {
final boolean isFaceSupported = hasFace && (!isSuw || BiometricUtils.isFaceSupportedInSuw( final boolean isFaceSupported = hasFace && (!isSuw
getContext())); || BiometricUtils.isFaceSupportedInSuw(getContext()));
final int msgResId; final int msgResId;
final int screenLockResId; final int screenLockResId;
switch (credentialType) { switch (credentialType) {
@@ -102,16 +112,27 @@ public class SetupSkipDialog extends InstrumentedDialogFragment
msgResId = getPinSkipMessageRes(hasFace && isFaceSupported, hasFingerprint); msgResId = getPinSkipMessageRes(hasFace && isFaceSupported, hasFingerprint);
break; break;
} }
return new AlertDialog.Builder(getContext())
.setPositiveButton(R.string.skip_lock_screen_dialog_button_label, this) if (BiometricUtils.isExpressiveStyle(getContext(), false)) {
.setNegativeButton(R.string.cancel_lock_screen_dialog_button_label, this) return (T) new MaterialAlertDialogBuilder(getContext())
.setTitle(getSkipSetupTitle(screenLockResId, hasFingerprint, .setPositiveButton(R.string.skip_lock_screen_dialog_button_label, this)
hasFace && isFaceSupported)) .setNegativeButton(R.string.cancel_lock_screen_dialog_button_label, this)
.setMessage(msgResId); .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 @NonNull
public AlertDialog.Builder onCreateDialogBuilder() { @SuppressWarnings("TypeParameterUnusedInFormals")
public <T> T onCreateDialogBuilder() {
Bundle args = getArguments(); Bundle args = getArguments();
final boolean isSuw = args.getBoolean(EXTRA_KEY_IS_SUW); final boolean isSuw = args.getBoolean(EXTRA_KEY_IS_SUW);
final boolean forBiometrics = args.getBoolean(EXTRA_KEY_FOR_BIOMETRICS); 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 getBiometricsBuilder(credentialType, isSuw, hasFace, hasFingerprint);
} }
return new AlertDialog.Builder(getContext()) final int msg = args.getBoolean(ARG_FRP_SUPPORTED)
.setPositiveButton(R.string.skip_anyway_button_label, this) ? R.string.lock_screen_intro_skip_dialog_text_frp
.setNegativeButton(R.string.go_back_button_label, this) : R.string.lock_screen_intro_skip_dialog_text;
.setTitle(R.string.lock_screen_intro_skip_title) if (BiometricUtils.isExpressiveStyle(getContext(), false)) {
.setMessage(args.getBoolean(ARG_FRP_SUPPORTED) ? return (T) new MaterialAlertDialogBuilder(getContext())
R.string.lock_screen_intro_skip_dialog_text_frp : .setPositiveButton(R.string.skip_anyway_button_label, this)
R.string.lock_screen_intro_skip_dialog_text); .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 @StringRes