Merge "5/ Refine SetupChooseLockPattern layout by design" into tm-qpr-dev am: 66e23eb89c
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/20877556 Change-Id: I1c14caa62062f58fa43ed0861d8f527ddcade3d0 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -45,6 +45,7 @@ import com.android.settings.homepage.DeepLinkHomepageActivity;
|
||||
import com.android.settings.homepage.DeepLinkHomepageActivityInternal;
|
||||
import com.android.settings.homepage.SettingsHomepageActivity;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
import com.android.settings.password.ChooseLockPattern;
|
||||
import com.android.settingslib.users.AvatarPickerActivity;
|
||||
|
||||
import java.util.HashSet;
|
||||
@@ -232,6 +233,7 @@ public class ActivityEmbeddingRulesController {
|
||||
addActivityFilter(activityFilters, FaceEnrollIntroductionInternal.class);
|
||||
addActivityFilter(activityFilters, Settings.FaceSettingsInternalActivity.class);
|
||||
addActivityFilter(activityFilters, AvatarPickerActivity.class);
|
||||
addActivityFilter(activityFilters, ChooseLockPattern.class);
|
||||
mSplitController.registerRule(new ActivityRule(activityFilters, true /* alwaysExpand */));
|
||||
}
|
||||
|
||||
|
@@ -212,7 +212,7 @@ public class ChooseLockPattern extends SettingsActivity {
|
||||
protected LockPatternView mLockPatternView;
|
||||
protected TextView mFooterText;
|
||||
protected FooterButton mSkipOrClearButton;
|
||||
private FooterButton mNextButton;
|
||||
protected FooterButton mNextButton;
|
||||
@VisibleForTesting protected LockscreenCredential mChosenPattern;
|
||||
private ColorStateList mDefaultHeaderColorList;
|
||||
private View mSudContent;
|
||||
@@ -368,31 +368,34 @@ public class ChooseLockPattern extends SettingsActivity {
|
||||
|
||||
Introduction(
|
||||
R.string.lock_settings_picker_biometrics_added_security_message,
|
||||
R.string.lockpattern_recording_intro_header,
|
||||
R.string.lockpassword_choose_your_pattern_description,
|
||||
LeftButtonMode.Gone, RightButtonMode.ContinueDisabled,
|
||||
ID_EMPTY_MESSAGE, true),
|
||||
HelpScreen(
|
||||
ID_EMPTY_MESSAGE, R.string.lockpattern_settings_help_how_to_record,
|
||||
R.string.lockpattern_settings_help_how_to_record,
|
||||
R.string.lockpattern_settings_help_how_to_record,
|
||||
LeftButtonMode.Gone, RightButtonMode.Ok, ID_EMPTY_MESSAGE, false),
|
||||
ChoiceTooShort(
|
||||
R.string.lock_settings_picker_biometrics_added_security_message,
|
||||
R.string.lockpattern_recording_incorrect_too_short,
|
||||
R.string.lockpattern_recording_incorrect_too_short,
|
||||
LeftButtonMode.Retry, RightButtonMode.ContinueDisabled,
|
||||
ID_EMPTY_MESSAGE, true),
|
||||
FirstChoiceValid(
|
||||
R.string.lock_settings_picker_biometrics_added_security_message,
|
||||
R.string.lockpattern_pattern_entered_header,
|
||||
R.string.lockpattern_pattern_entered_header,
|
||||
LeftButtonMode.Retry, RightButtonMode.Continue, ID_EMPTY_MESSAGE, false),
|
||||
NeedToConfirm(
|
||||
ID_EMPTY_MESSAGE, R.string.lockpattern_need_to_confirm,
|
||||
R.string.lockpattern_need_to_confirm, R.string.lockpattern_need_to_confirm,
|
||||
LeftButtonMode.Gone, RightButtonMode.ConfirmDisabled,
|
||||
ID_EMPTY_MESSAGE, true),
|
||||
ConfirmWrong(
|
||||
ID_EMPTY_MESSAGE, R.string.lockpattern_need_to_unlock_wrong,
|
||||
R.string.lockpattern_need_to_unlock_wrong,
|
||||
R.string.lockpattern_need_to_unlock_wrong,
|
||||
LeftButtonMode.Gone, RightButtonMode.ConfirmDisabled,
|
||||
ID_EMPTY_MESSAGE, true),
|
||||
ChoiceConfirmed(
|
||||
ID_EMPTY_MESSAGE, R.string.lockpattern_pattern_confirmed_header,
|
||||
R.string.lockpattern_pattern_confirmed_header,
|
||||
R.string.lockpattern_pattern_confirmed_header,
|
||||
LeftButtonMode.Gone, RightButtonMode.Confirm, ID_EMPTY_MESSAGE, false);
|
||||
|
||||
|
||||
@@ -549,7 +552,9 @@ public class ChooseLockPattern extends SettingsActivity {
|
||||
@Override
|
||||
public void onViewCreated(View view, Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
mHeaderText = (TextView) view.findViewById(R.id.headerText);
|
||||
final GlifLayout layout = getActivity().findViewById(R.id.setup_wizard_layout);
|
||||
mHeaderText = layout.getDescriptionTextView();
|
||||
mHeaderText.setMinLines(2);
|
||||
mDefaultHeaderColorList = mHeaderText.getTextColors();
|
||||
mLockPatternView = (LockPatternView) view.findViewById(R.id.lockPattern);
|
||||
mLockPatternView.setOnPatternListener(mChooseNewLockPatternListener);
|
||||
@@ -724,30 +729,24 @@ public class ChooseLockPattern extends SettingsActivity {
|
||||
*/
|
||||
protected void updateStage(Stage stage) {
|
||||
final Stage previousStage = mUiStage;
|
||||
|
||||
final GlifLayout layout = getActivity().findViewById(R.id.setup_wizard_layout);
|
||||
mUiStage = stage;
|
||||
|
||||
if (stage == Stage.Introduction) {
|
||||
layout.setDescriptionText(stage.headerMessage);
|
||||
}
|
||||
|
||||
// header text, footer text, visibility and
|
||||
// enabled state all known from the stage
|
||||
if (stage == Stage.ChoiceTooShort) {
|
||||
mHeaderText.setText(
|
||||
layout.setDescriptionText(
|
||||
getResources().getString(
|
||||
stage.headerMessage,
|
||||
LockPatternUtils.MIN_LOCK_PATTERN_SIZE));
|
||||
} else {
|
||||
mHeaderText.setText(stage.headerMessage);
|
||||
}
|
||||
final GlifLayout layout = getActivity().findViewById(R.id.setup_wizard_layout);
|
||||
final boolean forAnyBiometric = mForFingerprint || mForFace || mForBiometrics;
|
||||
if (forAnyBiometric) {
|
||||
if (stage.messageForBiometrics == ID_EMPTY_MESSAGE) {
|
||||
layout.setDescriptionText("");
|
||||
} else {
|
||||
layout.setDescriptionText(stage.messageForBiometrics);
|
||||
}
|
||||
} else {
|
||||
layout.getDescriptionTextView().setVisibility(View.GONE);
|
||||
layout.setDescriptionText(stage.headerMessage);
|
||||
}
|
||||
|
||||
if (stage.footerMessage == ID_EMPTY_MESSAGE) {
|
||||
mFooterText.setText("");
|
||||
} else {
|
||||
@@ -765,8 +764,8 @@ public class ChooseLockPattern extends SettingsActivity {
|
||||
mHeaderText.setTextColor(mDefaultHeaderColorList);
|
||||
}
|
||||
|
||||
if (stage == Stage.NeedToConfirm && forAnyBiometric) {
|
||||
mHeaderText.setText("");
|
||||
if (stage == Stage.NeedToConfirm) {
|
||||
mHeaderText.setText(stage.headerMessage);
|
||||
layout.setHeaderText(R.string.lockpassword_draw_your_pattern_again_header);
|
||||
}
|
||||
}
|
||||
@@ -796,6 +795,7 @@ public class ChooseLockPattern extends SettingsActivity {
|
||||
mLockPatternView.setPattern(DisplayMode.Animate, mAnimatePattern);
|
||||
break;
|
||||
case ChoiceTooShort:
|
||||
case ConfirmWrong:
|
||||
mLockPatternView.setDisplayMode(DisplayMode.Wrong);
|
||||
postClearPatternRunnable();
|
||||
announceAlways = true;
|
||||
@@ -805,11 +805,6 @@ public class ChooseLockPattern extends SettingsActivity {
|
||||
case NeedToConfirm:
|
||||
mLockPatternView.clearPattern();
|
||||
break;
|
||||
case ConfirmWrong:
|
||||
mLockPatternView.setDisplayMode(DisplayMode.Wrong);
|
||||
postClearPatternRunnable();
|
||||
announceAlways = true;
|
||||
break;
|
||||
case ChoiceConfirmed:
|
||||
break;
|
||||
}
|
||||
|
@@ -16,6 +16,8 @@
|
||||
|
||||
package com.android.settings.password;
|
||||
|
||||
import static android.content.res.Configuration.ORIENTATION_LANDSCAPE;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
@@ -30,8 +32,6 @@ import androidx.fragment.app.Fragment;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.SetupRedactionInterstitial;
|
||||
|
||||
import com.google.android.setupdesign.GlifLayout;
|
||||
|
||||
/**
|
||||
* Setup Wizard's version of ChooseLockPattern screen. It inherits the logic and basic structure
|
||||
* from ChooseLockPattern class, and should remain similar to that behaviorally. This class should
|
||||
@@ -123,15 +123,25 @@ public class SetupChooseLockPattern extends ChooseLockPattern {
|
||||
startChooseLockActivity(lock, getActivity());
|
||||
}
|
||||
|
||||
private boolean showMinimalUi() {
|
||||
return getResources().getBoolean(R.bool.config_lock_pattern_minimal_ui);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateStage(Stage stage) {
|
||||
super.updateStage(stage);
|
||||
if (!getResources().getBoolean(R.bool.config_lock_pattern_minimal_ui)
|
||||
&& mOptionsButton != null) {
|
||||
if (!showMinimalUi() && mOptionsButton != null) {
|
||||
// In landscape, keep view stub to avoid pattern view shifting, but in portrait the
|
||||
// header title and description could become multiple lines in confirm stage,
|
||||
// gone the button view to reserve more room for growth height of header.
|
||||
@View.Visibility
|
||||
final int hideOrGone =
|
||||
getResources().getConfiguration().orientation == ORIENTATION_LANDSCAPE
|
||||
? View.INVISIBLE : View.GONE;
|
||||
mOptionsButton.setVisibility(
|
||||
(stage == Stage.Introduction || stage == Stage.HelpScreen ||
|
||||
stage == Stage.ChoiceTooShort || stage == Stage.FirstChoiceValid)
|
||||
? View.VISIBLE : View.INVISIBLE);
|
||||
? View.VISIBLE : hideOrGone);
|
||||
}
|
||||
|
||||
if (stage.leftMode == LeftButtonMode.Gone && stage == Stage.Introduction) {
|
||||
@@ -141,10 +151,6 @@ public class SetupChooseLockPattern extends ChooseLockPattern {
|
||||
} else {
|
||||
mLeftButtonIsSkip = false;
|
||||
}
|
||||
|
||||
final GlifLayout layout = getActivity().findViewById(R.id.setup_wizard_layout);
|
||||
layout.setDescriptionText(
|
||||
getString(R.string.lockpassword_choose_your_pattern_description));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Reference in New Issue
Block a user