diff options
author | Maurice Lam <yukl@google.com> | 2014-12-03 15:17:46 -0800 |
---|---|---|
committer | Maurice Lam <yukl@google.com> | 2014-12-04 12:20:47 -0800 |
commit | af103b4eb476881fb27cfb9b6dc94b3fa5e74f28 (patch) | |
tree | 3f3a3e033fd81fc5ec30bcca7a4c079a03c0acb2 /src/com | |
parent | 3c00e18ba7425a1837a1e458f16e5192254a196b (diff) | |
download | packages_apps_Settings-af103b4eb476881fb27cfb9b6dc94b3fa5e74f28.zip packages_apps_Settings-af103b4eb476881fb27cfb9b6dc94b3fa5e74f28.tar.gz packages_apps_Settings-af103b4eb476881fb27cfb9b6dc94b3fa5e74f28.tar.bz2 |
[FRP] Use setup wizard nav bar buttons
Use setup wizard nav bar buttons instead of custom button bar for
lock screen setup.
Bug: 18482708
Change-Id: I471f475ebe6bc7ba8cfbd179daddd854c1b6982a
Diffstat (limited to 'src/com')
-rw-r--r-- | src/com/android/settings/ChooseLockPassword.java | 22 | ||||
-rw-r--r-- | src/com/android/settings/ChooseLockPattern.java | 88 | ||||
-rw-r--r-- | src/com/android/settings/SetupChooseLockPassword.java | 27 | ||||
-rw-r--r-- | src/com/android/settings/SetupChooseLockPattern.java | 48 |
4 files changed, 141 insertions, 44 deletions
diff --git a/src/com/android/settings/ChooseLockPassword.java b/src/com/android/settings/ChooseLockPassword.java index 2c05986..fa1c678 100644 --- a/src/com/android/settings/ChooseLockPassword.java +++ b/src/com/android/settings/ChooseLockPassword.java @@ -24,14 +24,12 @@ import com.android.settings.notification.RedactionInterstitial; import android.app.Activity; import android.app.Fragment; import android.app.admin.DevicePolicyManager; -import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.inputmethodservice.KeyboardView; import android.os.Bundle; import android.os.Handler; import android.os.Message; -import android.provider.Settings; import android.text.Editable; import android.text.InputType; import android.text.Selection; @@ -416,7 +414,7 @@ public class ChooseLockPassword extends SettingsActivity { return null; } - private void handleNext() { + public void handleNext() { if (mDone) return; final String pin = mPasswordEntry.getText().toString(); @@ -460,6 +458,14 @@ public class ChooseLockPassword extends SettingsActivity { } } + protected void setNextEnabled(boolean enabled) { + mNextButton.setEnabled(enabled); + } + + protected void setNextText(int text) { + mNextButton.setText(text); + } + public void onClick(View v) { switch (v.getId()) { case R.id.next_button: @@ -502,22 +508,22 @@ public class ChooseLockPassword extends SettingsActivity { String msg = getString(mIsAlphaMode ? R.string.lockpassword_password_too_short : R.string.lockpassword_pin_too_short, mPasswordMinLength); mHeaderText.setText(msg); - mNextButton.setEnabled(false); + setNextEnabled(false); } else { String error = validatePassword(password); if (error != null) { mHeaderText.setText(error); - mNextButton.setEnabled(false); + setNextEnabled(false); } else { mHeaderText.setText(R.string.lockpassword_press_continue); - mNextButton.setEnabled(true); + setNextEnabled(true); } } } else { mHeaderText.setText(mIsAlphaMode ? mUiStage.alphaHint : mUiStage.numericHint); - mNextButton.setEnabled(length > 0); + setNextEnabled(length > 0); } - mNextButton.setText(mUiStage.buttonText); + setNextText(mUiStage.buttonText); } public void afterTextChanged(Editable s) { diff --git a/src/com/android/settings/ChooseLockPattern.java b/src/com/android/settings/ChooseLockPattern.java index 85694b1..5bf9291 100644 --- a/src/com/android/settings/ChooseLockPattern.java +++ b/src/com/android/settings/ChooseLockPattern.java @@ -150,6 +150,14 @@ public class ChooseLockPattern extends SettingsActivity { } } + protected void setRightButtonEnabled(boolean enabled) { + mFooterRightButton.setEnabled(enabled); + } + + protected void setRightButtonText(int text) { + mFooterRightButton.setText(text); + } + /** * The pattern listener that responds according to a user choosing a new * lock pattern. @@ -390,43 +398,51 @@ public class ChooseLockPattern extends SettingsActivity { return RedactionInterstitial.createStartIntent(context); } - public void onClick(View v) { - if (v == mFooterLeftButton) { - if (mUiStage.leftMode == LeftButtonMode.Retry) { - mChosenPattern = null; - mLockPatternView.clearPattern(); - updateStage(Stage.Introduction); - } else if (mUiStage.leftMode == LeftButtonMode.Cancel) { - // They are canceling the entire wizard - getActivity().setResult(RESULT_FINISHED); - getActivity().finish(); - } else { - throw new IllegalStateException("left footer button pressed, but stage of " + + public void handleLeftButton() { + if (mUiStage.leftMode == LeftButtonMode.Retry) { + mChosenPattern = null; + mLockPatternView.clearPattern(); + updateStage(Stage.Introduction); + } else if (mUiStage.leftMode == LeftButtonMode.Cancel) { + // They are canceling the entire wizard + getActivity().setResult(RESULT_FINISHED); + getActivity().finish(); + } else { + throw new IllegalStateException("left footer button pressed, but stage of " + mUiStage + " doesn't make sense"); - } - } else if (v == mFooterRightButton) { + } + } - if (mUiStage.rightMode == RightButtonMode.Continue) { - if (mUiStage != Stage.FirstChoiceValid) { - throw new IllegalStateException("expected ui stage " + Stage.FirstChoiceValid - + " when button is " + RightButtonMode.Continue); - } - updateStage(Stage.NeedToConfirm); - } else if (mUiStage.rightMode == RightButtonMode.Confirm) { - if (mUiStage != Stage.ChoiceConfirmed) { - throw new IllegalStateException("expected ui stage " + Stage.ChoiceConfirmed - + " when button is " + RightButtonMode.Confirm); - } - saveChosenPatternAndFinish(); - } else if (mUiStage.rightMode == RightButtonMode.Ok) { - if (mUiStage != Stage.HelpScreen) { - throw new IllegalStateException("Help screen is only mode with ok button, but " + - "stage is " + mUiStage); - } - mLockPatternView.clearPattern(); - mLockPatternView.setDisplayMode(DisplayMode.Correct); - updateStage(Stage.Introduction); + public void handleRightButton() { + if (mUiStage.rightMode == RightButtonMode.Continue) { + if (mUiStage != Stage.FirstChoiceValid) { + throw new IllegalStateException("expected ui stage " + + Stage.FirstChoiceValid + " when button is " + + RightButtonMode.Continue); + } + updateStage(Stage.NeedToConfirm); + } else if (mUiStage.rightMode == RightButtonMode.Confirm) { + if (mUiStage != Stage.ChoiceConfirmed) { + throw new IllegalStateException("expected ui stage " + Stage.ChoiceConfirmed + + " when button is " + RightButtonMode.Confirm); + } + saveChosenPatternAndFinish(); + } else if (mUiStage.rightMode == RightButtonMode.Ok) { + if (mUiStage != Stage.HelpScreen) { + throw new IllegalStateException("Help screen is only mode with ok button, " + + "but stage is " + mUiStage); } + mLockPatternView.clearPattern(); + mLockPatternView.setDisplayMode(DisplayMode.Correct); + updateStage(Stage.Introduction); + } + } + + public void onClick(View v) { + if (v == mFooterLeftButton) { + handleLeftButton(); + } else if (v == mFooterRightButton) { + handleRightButton(); } } @@ -489,8 +505,8 @@ public class ChooseLockPattern extends SettingsActivity { mFooterLeftButton.setEnabled(stage.leftMode.enabled); } - mFooterRightButton.setText(stage.rightMode.text); - mFooterRightButton.setEnabled(stage.rightMode.enabled); + setRightButtonText(stage.rightMode.text); + setRightButtonEnabled(stage.rightMode.enabled); // same for whether the patten is enabled if (stage.patternEnabled) { diff --git a/src/com/android/settings/SetupChooseLockPassword.java b/src/com/android/settings/SetupChooseLockPassword.java index ed6fab4..494d487 100644 --- a/src/com/android/settings/SetupChooseLockPassword.java +++ b/src/com/android/settings/SetupChooseLockPassword.java @@ -47,6 +47,9 @@ public class SetupChooseLockPassword extends ChooseLockPassword return intent; } + private SetupWizardNavBar mNavigationBar; + private SetupChooseLockPasswordFragment mFragment; + @Override protected boolean isValidFragment(String fragmentName) { return SetupChooseLockPasswordFragment.class.getName().equals(fragmentName); @@ -65,6 +68,7 @@ public class SetupChooseLockPassword extends ChooseLockPassword @Override public void onNavigationBarCreated(SetupWizardNavBar bar) { + mNavigationBar = bar; SetupWizardUtils.setImmersiveMode(this, bar); } @@ -75,6 +79,17 @@ public class SetupChooseLockPassword extends ChooseLockPassword @Override public void onNavigateNext() { + if (mFragment != null) { + mFragment.handleNext(); + } + } + + @Override + public void onAttachFragment(Fragment fragment) { + super.onAttachFragment(fragment); + if (fragment instanceof SetupChooseLockPasswordFragment) { + mFragment = (SetupChooseLockPasswordFragment) fragment; + } } public static class SetupChooseLockPasswordFragment extends ChooseLockPasswordFragment { @@ -100,5 +115,17 @@ public class SetupChooseLockPassword extends ChooseLockPassword SetupWizardUtils.copySetupExtras(getActivity().getIntent(), intent); return intent; } + + @Override + protected void setNextEnabled(boolean enabled) { + SetupChooseLockPassword activity = (SetupChooseLockPassword) getActivity(); + activity.mNavigationBar.getNextButton().setEnabled(enabled); + } + + @Override + protected void setNextText(int text) { + SetupChooseLockPassword activity = (SetupChooseLockPassword) getActivity(); + activity.mNavigationBar.getNextButton().setText(text); + } } } diff --git a/src/com/android/settings/SetupChooseLockPattern.java b/src/com/android/settings/SetupChooseLockPattern.java index b44dea1..a30da73 100644 --- a/src/com/android/settings/SetupChooseLockPattern.java +++ b/src/com/android/settings/SetupChooseLockPattern.java @@ -26,6 +26,7 @@ import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.Button; /** * Setup Wizard's version of ChooseLockPattern screen. It inherits the logic and basic structure @@ -45,6 +46,9 @@ public class SetupChooseLockPattern extends ChooseLockPattern return intent; } + private SetupWizardNavBar mNavigationBar; + private SetupChooseLockPatternFragment mFragment; + @Override protected boolean isValidFragment(String fragmentName) { return SetupChooseLockPatternFragment.class.getName().equals(fragmentName); @@ -63,6 +67,7 @@ public class SetupChooseLockPattern extends ChooseLockPattern @Override public void onNavigationBarCreated(SetupWizardNavBar bar) { + mNavigationBar = bar; SetupWizardUtils.setImmersiveMode(this, bar); } @@ -73,10 +78,23 @@ public class SetupChooseLockPattern extends ChooseLockPattern @Override public void onNavigateNext() { + if (mFragment != null) { + mFragment.handleRightButton(); + } + } + + @Override + public void onAttachFragment(Fragment fragment) { + super.onAttachFragment(fragment); + if (fragment instanceof ChooseLockPatternFragment) { + mFragment = (SetupChooseLockPatternFragment) fragment; + } } public static class SetupChooseLockPatternFragment extends ChooseLockPatternFragment { + private Button mRetryButton; + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -88,6 +106,8 @@ public class SetupChooseLockPattern extends ChooseLockPattern @Override public void onViewCreated(View view, Bundle savedInstanceState) { + mRetryButton = (Button) view.findViewById(R.id.retryButton); + mRetryButton.setOnClickListener(this); super.onViewCreated(view, savedInstanceState); SetupWizardUtils.setHeaderText(getActivity(), getActivity().getTitle()); } @@ -98,5 +118,33 @@ public class SetupChooseLockPattern extends ChooseLockPattern SetupWizardUtils.copySetupExtras(getActivity().getIntent(), intent); return intent; } + + @Override + public void onClick(View v) { + if (v == mRetryButton) { + handleLeftButton(); + } else { + super.onClick(v); + } + } + + @Override + protected void setRightButtonEnabled(boolean enabled) { + SetupChooseLockPattern activity = (SetupChooseLockPattern) getActivity(); + activity.mNavigationBar.getNextButton().setEnabled(enabled); + } + + @Override + protected void setRightButtonText(int text) { + SetupChooseLockPattern activity = (SetupChooseLockPattern) getActivity(); + activity.mNavigationBar.getNextButton().setText(text); + } + + @Override + protected void updateStage(Stage stage) { + super.updateStage(stage); + // Only enable the button for retry + mRetryButton.setEnabled(stage == Stage.FirstChoiceValid); + } } } |