diff --git a/res/values/strings.xml b/res/values/strings.xml
index e3259b2384b..6f2e85c8ca9 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -3387,10 +3387,16 @@
Choose your password
+
+ To use fingerprint, set password
Choose your pattern
+
+ To use fingerprint, set pattern
Choose your PIN
+
+ To use fingerprint, set PIN
Confirm your password
diff --git a/src/com/android/settings/password/ChooseLockGeneric.java b/src/com/android/settings/password/ChooseLockGeneric.java
index 3f68e5a371c..4d20bcfd246 100644
--- a/src/com/android/settings/password/ChooseLockGeneric.java
+++ b/src/com/android/settings/password/ChooseLockGeneric.java
@@ -575,6 +575,7 @@ public class ChooseLockGeneric extends SettingsActivity {
new ChooseLockPassword.IntentBuilder(getContext())
.setPasswordQuality(quality)
.setPasswordLengthRange(minLength, maxLength)
+ .setForFingerprint(mForFingerprint)
.setUserId(mUserId);
if (mHasChallenge) {
builder.setChallenge(mChallenge);
@@ -587,6 +588,7 @@ public class ChooseLockGeneric extends SettingsActivity {
protected Intent getLockPatternIntent() {
ChooseLockPattern.IntentBuilder builder =
new ChooseLockPattern.IntentBuilder(getContext())
+ .setForFingerprint(mForFingerprint)
.setUserId(mUserId);
if (mHasChallenge) {
builder.setChallenge(mChallenge);
diff --git a/src/com/android/settings/password/ChooseLockPassword.java b/src/com/android/settings/password/ChooseLockPassword.java
index 5f1c949d5bc..d4bc076408f 100644
--- a/src/com/android/settings/password/ChooseLockPassword.java
+++ b/src/com/android/settings/password/ChooseLockPassword.java
@@ -32,6 +32,7 @@ import android.graphics.Insets;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
+import android.support.annotation.StringRes;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.text.Editable;
@@ -125,6 +126,11 @@ public class ChooseLockPassword extends SettingsActivity {
return this;
}
+ public IntentBuilder setForFingerprint(boolean forFingerprint) {
+ mIntent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FINGERPRINT, forFingerprint);
+ return this;
+ }
+
public Intent build() {
return mIntent;
}
@@ -143,7 +149,11 @@ public class ChooseLockPassword extends SettingsActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- CharSequence msg = getText(R.string.lockpassword_choose_your_password_header);
+ boolean forFingerprint = getIntent()
+ .getBooleanExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FINGERPRINT, false);
+ CharSequence msg = getText(forFingerprint
+ ? R.string.lockpassword_choose_your_password_header_for_fingerprint
+ : R.string.lockpassword_choose_your_password_header);
setTitle(msg);
LinearLayout layout = (LinearLayout) findViewById(R.id.content_parent);
layout.setFitsSystemWindows(false);
@@ -186,6 +196,7 @@ public class ChooseLockPassword extends SettingsActivity {
private Stage mUiStage = Stage.Introduction;
private PasswordRequirementAdapter mPasswordRequirementAdapter;
private GlifLayout mLayout;
+ private boolean mForFingerprint;
private String mFirstPin;
private RecyclerView mPasswordRestrictionView;
@@ -225,27 +236,49 @@ public class ChooseLockPassword extends SettingsActivity {
*/
protected enum Stage {
- Introduction(R.string.lockpassword_choose_your_password_header,
+ Introduction(
+ R.string.lockpassword_choose_your_password_header,
+ R.string.lockpassword_choose_your_password_header_for_fingerprint,
R.string.lockpassword_choose_your_pin_header,
+ R.string.lockpassword_choose_your_pin_header_for_fingerprint,
R.string.lockpassword_continue_label),
- NeedToConfirm(R.string.lockpassword_confirm_your_password_header,
+ NeedToConfirm(
+ R.string.lockpassword_confirm_your_password_header,
+ R.string.lockpassword_confirm_your_password_header,
+ R.string.lockpassword_confirm_your_pin_header,
R.string.lockpassword_confirm_your_pin_header,
R.string.lockpassword_ok_label),
- ConfirmWrong(R.string.lockpassword_confirm_passwords_dont_match,
+ ConfirmWrong(
+ R.string.lockpassword_confirm_passwords_dont_match,
+ R.string.lockpassword_confirm_passwords_dont_match,
+ R.string.lockpassword_confirm_pins_dont_match,
R.string.lockpassword_confirm_pins_dont_match,
R.string.lockpassword_continue_label);
- Stage(int hintInAlpha, int hintInNumeric, int nextButtonText) {
+ Stage(int hintInAlpha, int hintInAlphaForFingerprint,
+ int hintInNumeric, int hintInNumericForFingerprint, int nextButtonText) {
this.alphaHint = hintInAlpha;
+ this.alphaHintForFingerprint = hintInAlphaForFingerprint;
this.numericHint = hintInNumeric;
+ this.numericHintForFingerprint = hintInNumericForFingerprint;
this.buttonText = nextButtonText;
}
public final int alphaHint;
+ public final int alphaHintForFingerprint;
public final int numericHint;
+ public final int numericHintForFingerprint;
public final int buttonText;
+
+ public @StringRes int getHint(boolean isAlpha, boolean isFingerprint) {
+ if (isAlpha) {
+ return isFingerprint ? alphaHintForFingerprint : alphaHint;
+ } else {
+ return isFingerprint ? numericHintForFingerprint : numericHint;
+ }
+ }
}
// required constructor for fragments
@@ -263,6 +296,8 @@ public class ChooseLockPassword extends SettingsActivity {
}
// Only take this argument into account if it belongs to the current profile.
mUserId = Utils.getUserIdFromBundle(getActivity(), intent.getExtras());
+ mForFingerprint = intent.getBooleanExtra(
+ ChooseLockSettingsHelper.EXTRA_KEY_FOR_FINGERPRINT, false);
processPasswordRequirements(intent);
mChooseLockSettingsHelper = new ChooseLockSettingsHelper(getActivity());
mHideDrawer = getActivity().getIntent().getBooleanExtra(EXTRA_HIDE_DRAWER, false);
@@ -357,9 +392,7 @@ public class ChooseLockPassword extends SettingsActivity {
if (activity instanceof SettingsActivity) {
final SettingsActivity sa = (SettingsActivity) activity;
- int id = mIsAlphaMode ? R.string.lockpassword_choose_your_password_header
- : R.string.lockpassword_choose_your_pin_header;
- CharSequence title = getText(id);
+ int title = Stage.Introduction.getHint(mIsAlphaMode, mForFingerprint);
sa.setTitle(title);
mLayout.setHeaderText(title);
}
@@ -779,8 +812,7 @@ public class ChooseLockPassword extends SettingsActivity {
} else {
// Hide password requirement view when we are just asking user to confirm the pw.
mPasswordRestrictionView.setVisibility(View.GONE);
- setHeaderText(getString(
- mIsAlphaMode ? mUiStage.alphaHint : mUiStage.numericHint));
+ setHeaderText(getString(mUiStage.getHint(mIsAlphaMode, mForFingerprint)));
setNextEnabled(canInput && length > 0);
}
setNextText(mUiStage.buttonText);
diff --git a/src/com/android/settings/password/ChooseLockPattern.java b/src/com/android/settings/password/ChooseLockPattern.java
index a9035c27f77..1ae2af2745e 100644
--- a/src/com/android/settings/password/ChooseLockPattern.java
+++ b/src/com/android/settings/password/ChooseLockPattern.java
@@ -106,6 +106,11 @@ public class ChooseLockPattern extends SettingsActivity {
return this;
}
+ public IntentBuilder setForFingerprint(boolean forFingerprint) {
+ mIntent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FINGERPRINT, forFingerprint);
+ return this;
+ }
+
public Intent build() {
return mIntent;
}
@@ -125,8 +130,10 @@ public class ChooseLockPattern extends SettingsActivity {
protected void onCreate(Bundle savedInstanceState) {
// requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
- CharSequence msg = getText(R.string.lockpassword_choose_your_pattern_header);
- setTitle(msg);
+ boolean forFingerprint = getIntent()
+ .getBooleanExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FINGERPRINT, false);
+ setTitle(forFingerprint ? R.string.lockpassword_choose_your_pattern_header_for_fingerprint
+ : R.string.lockpassword_choose_your_pattern_header);
LinearLayout layout = (LinearLayout) findViewById(R.id.content_parent);
layout.setFitsSystemWindows(false);
}