Apply Expressive style "More” page-down button for Settings
Face Enroll Introduction page 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
This commit is contained in:
@@ -155,6 +155,7 @@ public abstract class BiometricEnrollIntroduction extends BiometricEnrollBase
|
|||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
final boolean isExpressiveStyle = BiometricUtils.isExpressiveStyle(getBaseContext());
|
||||||
|
|
||||||
if (shouldShowSplitScreenDialog()) {
|
if (shouldShowSplitScreenDialog()) {
|
||||||
BiometricsSplitScreenDialog
|
BiometricsSplitScreenDialog
|
||||||
@@ -213,28 +214,33 @@ public abstract class BiometricEnrollIntroduction extends BiometricEnrollBase
|
|||||||
mFooterBarMixin = layout.getMixin(FooterBarMixin.class);
|
mFooterBarMixin = layout.getMixin(FooterBarMixin.class);
|
||||||
mFooterBarMixin.setPrimaryButton(getPrimaryFooterButton());
|
mFooterBarMixin.setPrimaryButton(getPrimaryFooterButton());
|
||||||
mFooterBarMixin.setSecondaryButton(getSecondaryFooterButton(), true /* usePrimaryStyle */);
|
mFooterBarMixin.setSecondaryButton(getSecondaryFooterButton(), true /* usePrimaryStyle */);
|
||||||
mFooterBarMixin.getSecondaryButton().setVisibility(
|
if (!isExpressiveStyle) {
|
||||||
mHasScrolledToBottom ? View.VISIBLE : View.INVISIBLE);
|
mFooterBarMixin.getSecondaryButton().setVisibility(
|
||||||
|
mHasScrolledToBottom ? View.VISIBLE : View.INVISIBLE);
|
||||||
|
}
|
||||||
|
|
||||||
final RequireScrollMixin requireScrollMixin = layout.getMixin(RequireScrollMixin.class);
|
final RequireScrollMixin requireScrollMixin = layout.getMixin(RequireScrollMixin.class);
|
||||||
requireScrollMixin.requireScrollWithButton(this, getPrimaryFooterButton(),
|
requireScrollMixin.requireScrollWithButton(this, getPrimaryFooterButton(),
|
||||||
getMoreButtonTextRes(), this::onNextButtonClick);
|
getMoreButtonTextRes(), this::onNextButtonClick);
|
||||||
requireScrollMixin.setOnRequireScrollStateChangedListener(
|
if (!isExpressiveStyle) {
|
||||||
scrollNeeded -> {
|
requireScrollMixin.setOnRequireScrollStateChangedListener(
|
||||||
boolean enrollmentCompleted = checkMaxEnrolled() != 0;
|
scrollNeeded -> {
|
||||||
if (!enrollmentCompleted) {
|
boolean enrollmentCompleted = checkMaxEnrolled() != 0;
|
||||||
// Update text of primary button from "More" to "Agree".
|
if (!enrollmentCompleted) {
|
||||||
final int primaryButtonTextRes = scrollNeeded
|
// Update text of primary button from "More" to "Agree".
|
||||||
? getMoreButtonTextRes()
|
final int primaryButtonTextRes = scrollNeeded
|
||||||
: getAgreeButtonTextRes();
|
? getMoreButtonTextRes()
|
||||||
getPrimaryFooterButton().setText(this, primaryButtonTextRes);
|
: getAgreeButtonTextRes();
|
||||||
}
|
getPrimaryFooterButton().setText(this, primaryButtonTextRes);
|
||||||
|
}
|
||||||
|
|
||||||
// Show secondary button once scroll is completed.
|
// Show secondary button once scroll is completed.
|
||||||
getSecondaryFooterButton().setVisibility(
|
getSecondaryFooterButton().setVisibility(
|
||||||
!scrollNeeded && !enrollmentCompleted ? View.VISIBLE : View.INVISIBLE);
|
!scrollNeeded && !enrollmentCompleted ? View.VISIBLE
|
||||||
mHasScrolledToBottom = !scrollNeeded;
|
: View.INVISIBLE);
|
||||||
});
|
mHasScrolledToBottom = !scrollNeeded;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
final boolean isScrollNeeded = requireScrollMixin.isScrollingRequired();
|
final boolean isScrollNeeded = requireScrollMixin.isScrollingRequired();
|
||||||
final boolean enrollmentCompleted = checkMaxEnrolled() != 0;
|
final boolean enrollmentCompleted = checkMaxEnrolled() != 0;
|
||||||
|
@@ -50,8 +50,10 @@ import com.android.settings.overlay.FeatureFactory;
|
|||||||
import com.android.settings.password.ChooseLockGeneric;
|
import com.android.settings.password.ChooseLockGeneric;
|
||||||
import com.android.settings.password.ChooseLockSettingsHelper;
|
import com.android.settings.password.ChooseLockSettingsHelper;
|
||||||
import com.android.settings.password.SetupChooseLockGeneric;
|
import com.android.settings.password.SetupChooseLockGeneric;
|
||||||
|
import com.android.settingslib.widget.SettingsThemeHelper;
|
||||||
|
|
||||||
import com.google.android.setupcompat.util.WizardManagerHelper;
|
import com.google.android.setupcompat.util.WizardManagerHelper;
|
||||||
|
import com.google.android.setupdesign.util.ThemeHelper;
|
||||||
|
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
@@ -530,6 +532,16 @@ public class BiometricUtils {
|
|||||||
return ssb.toString();
|
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) {
|
private static String capitalize(final String input) {
|
||||||
return Character.toUpperCase(input.charAt(0)) + input.substring(1);
|
return Character.toUpperCase(input.charAt(0)) + input.substring(1);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user