Migrating to new footer button for ChooseLockPattern page
Bug: 120805516 Test: RunSettingsRoboTests Change-Id: Ifeaf402548146fca9f5fd5dfe0d976d38246b7e9
This commit is contained in:
@@ -50,6 +50,8 @@ import com.android.settings.core.InstrumentedFragment;
|
||||
import com.android.settings.notification.RedactionInterstitial;
|
||||
|
||||
import com.google.android.collect.Lists;
|
||||
import com.google.android.setupcompat.item.FooterButton;
|
||||
import com.google.android.setupcompat.template.ButtonFooterMixin;
|
||||
import com.google.android.setupdesign.GlifLayout;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -171,7 +173,7 @@ public class ChooseLockPattern extends SettingsActivity {
|
||||
}
|
||||
|
||||
public static class ChooseLockPatternFragment extends InstrumentedFragment
|
||||
implements View.OnClickListener, SaveAndFinishWorker.Listener {
|
||||
implements SaveAndFinishWorker.Listener {
|
||||
|
||||
public static final int CONFIRM_EXISTING_REQUEST = 55;
|
||||
|
||||
@@ -193,8 +195,8 @@ public class ChooseLockPattern extends SettingsActivity {
|
||||
protected TextView mMessageText;
|
||||
protected LockPatternView mLockPatternView;
|
||||
protected TextView mFooterText;
|
||||
private TextView mFooterLeftButton;
|
||||
private TextView mFooterRightButton;
|
||||
protected FooterButton mSkipOrClearButton;
|
||||
private FooterButton mNextButton;
|
||||
protected List<LockPatternView.Cell> mChosenPattern = null;
|
||||
private ColorStateList mDefaultHeaderColorList;
|
||||
|
||||
@@ -232,11 +234,11 @@ public class ChooseLockPattern extends SettingsActivity {
|
||||
}
|
||||
|
||||
protected void setRightButtonEnabled(boolean enabled) {
|
||||
mFooterRightButton.setEnabled(enabled);
|
||||
mNextButton.setEnabled(enabled);
|
||||
}
|
||||
|
||||
protected void setRightButtonText(int text) {
|
||||
mFooterRightButton.setText(text);
|
||||
mNextButton.setText(getActivity(), text);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -287,8 +289,7 @@ public class ChooseLockPattern extends SettingsActivity {
|
||||
mHeaderText.setTextColor(mDefaultHeaderColorList);
|
||||
}
|
||||
mFooterText.setText("");
|
||||
mFooterLeftButton.setEnabled(false);
|
||||
mFooterRightButton.setEnabled(false);
|
||||
mNextButton.setEnabled(false);
|
||||
|
||||
if (mTitleHeaderScrollView != null) {
|
||||
mTitleHeaderScrollView.post(new Runnable() {
|
||||
@@ -487,6 +488,27 @@ public class ChooseLockPattern extends SettingsActivity {
|
||||
layout.setIcon(getActivity().getDrawable(R.drawable.ic_face_header));
|
||||
}
|
||||
}
|
||||
|
||||
final ButtonFooterMixin mixin = layout.getMixin(ButtonFooterMixin.class);
|
||||
mixin.setSecondaryButton(
|
||||
new FooterButton.Builder(getActivity())
|
||||
.setText(R.string.lockpattern_tutorial_cancel_label)
|
||||
.setListener(this::onSkipOrClearButtonClick)
|
||||
.setButtonType(FooterButton.ButtonType.OTHER)
|
||||
.setTheme(R.style.SudGlifButton_Secondary)
|
||||
.build()
|
||||
);
|
||||
mixin.setPrimaryButton(
|
||||
new FooterButton.Builder(getActivity())
|
||||
.setText(R.string.lockpattern_tutorial_continue_label)
|
||||
.setListener(this::onNextButtonClick)
|
||||
.setButtonType(FooterButton.ButtonType.NEXT)
|
||||
.setTheme(R.style.SudGlifButton_Primary)
|
||||
.build()
|
||||
);
|
||||
mSkipOrClearButton = mixin.getSecondaryButton();
|
||||
mNextButton = mixin.getPrimaryButton();
|
||||
|
||||
return layout;
|
||||
}
|
||||
|
||||
@@ -506,15 +528,9 @@ public class ChooseLockPattern extends SettingsActivity {
|
||||
|
||||
mFooterText = (TextView) view.findViewById(R.id.footerText);
|
||||
|
||||
mFooterLeftButton = (TextView) view.findViewById(R.id.footerLeftButton);
|
||||
mFooterRightButton = (TextView) view.findViewById(R.id.footerRightButton);
|
||||
|
||||
mTitleHeaderScrollView = (ScrollView) view.findViewById(R.id
|
||||
.scroll_layout_title_header);
|
||||
|
||||
mFooterLeftButton.setOnClickListener(this);
|
||||
mFooterRightButton.setOnClickListener(this);
|
||||
|
||||
// make it so unhandled touch events within the unlock screen go to the
|
||||
// lock pattern view.
|
||||
final LinearLayoutWithDefaultTouchRecepient topLayout
|
||||
@@ -623,12 +639,12 @@ public class ChooseLockPattern extends SettingsActivity {
|
||||
}
|
||||
}
|
||||
|
||||
public void onClick(View v) {
|
||||
if (v == mFooterLeftButton) {
|
||||
handleLeftButton();
|
||||
} else if (v == mFooterRightButton) {
|
||||
handleRightButton();
|
||||
}
|
||||
protected void onSkipOrClearButtonClick(View view) {
|
||||
handleLeftButton();
|
||||
}
|
||||
|
||||
protected void onNextButtonClick(View view) {
|
||||
handleRightButton();
|
||||
}
|
||||
|
||||
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
||||
@@ -711,7 +727,7 @@ public class ChooseLockPattern extends SettingsActivity {
|
||||
}
|
||||
}
|
||||
|
||||
updateFooterLeftButton(stage, mFooterLeftButton);
|
||||
updateFooterLeftButton(stage);
|
||||
|
||||
setRightButtonText(stage.rightMode.text);
|
||||
setRightButtonEnabled(stage.rightMode.enabled);
|
||||
@@ -761,13 +777,13 @@ public class ChooseLockPattern extends SettingsActivity {
|
||||
}
|
||||
}
|
||||
|
||||
protected void updateFooterLeftButton(Stage stage, TextView footerLeftButton) {
|
||||
protected void updateFooterLeftButton(Stage stage) {
|
||||
if (stage.leftMode == LeftButtonMode.Gone) {
|
||||
footerLeftButton.setVisibility(View.GONE);
|
||||
mSkipOrClearButton.setVisibility(View.GONE);
|
||||
} else {
|
||||
footerLeftButton.setVisibility(View.VISIBLE);
|
||||
footerLeftButton.setText(stage.leftMode.text);
|
||||
footerLeftButton.setEnabled(stage.leftMode.enabled);
|
||||
mSkipOrClearButton.setVisibility(View.VISIBLE);
|
||||
mSkipOrClearButton.setText(getActivity(), stage.leftMode.text);
|
||||
mSkipOrClearButton.setEnabled(stage.leftMode.enabled);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -59,7 +59,7 @@ public class SetupChooseLockPattern extends ChooseLockPattern {
|
||||
|
||||
@Nullable
|
||||
private Button mOptionsButton;
|
||||
private Button mSkipButton;
|
||||
private boolean mLeftButtonIsSkip;
|
||||
|
||||
@Override
|
||||
public View onCreateView(
|
||||
@@ -72,14 +72,20 @@ public class SetupChooseLockPattern extends ChooseLockPattern {
|
||||
.show(getChildFragmentManager(), null));
|
||||
}
|
||||
// Show the skip button during SUW but not during Settings > Biometric Enrollment
|
||||
mSkipButton = view.findViewById(R.id.skip_button);
|
||||
mSkipButton.setOnClickListener(v -> {
|
||||
mSkipOrClearButton.setOnClickListener(this::onSkipOrClearButtonClick);
|
||||
return view;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onSkipOrClearButtonClick(View view) {
|
||||
if (mLeftButtonIsSkip) {
|
||||
SetupSkipDialog dialog = SetupSkipDialog.newInstance(
|
||||
getActivity().getIntent()
|
||||
.getBooleanExtra(SetupSkipDialog.EXTRA_FRP_SUPPORTED, false));
|
||||
dialog.show(getFragmentManager());
|
||||
});
|
||||
return view;
|
||||
return;
|
||||
}
|
||||
super.onSkipOrClearButtonClick(view);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -102,9 +108,11 @@ public class SetupChooseLockPattern extends ChooseLockPattern {
|
||||
}
|
||||
|
||||
if (stage.leftMode == LeftButtonMode.Gone && stage == Stage.Introduction) {
|
||||
mSkipButton.setVisibility(View.VISIBLE);
|
||||
mSkipOrClearButton.setVisibility(View.VISIBLE);
|
||||
mSkipOrClearButton.setText(getActivity(), R.string.skip_label);
|
||||
mLeftButtonIsSkip = true;
|
||||
} else {
|
||||
mSkipButton.setVisibility(View.GONE);
|
||||
mLeftButtonIsSkip = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user