diff --git a/res/drawable/ic_lock_none.xml b/res/drawable/ic_lock_none.xml
new file mode 100644
index 00000000000..5e74dd10fe3
--- /dev/null
+++ b/res/drawable/ic_lock_none.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
diff --git a/res/drawable/ic_lock_pin.xml b/res/drawable/ic_lock_pin.xml
new file mode 100644
index 00000000000..e1821f6ec8b
--- /dev/null
+++ b/res/drawable/ic_lock_pin.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
diff --git a/res/drawable/ic_lock_swipe.xml b/res/drawable/ic_lock_swipe.xml
new file mode 100644
index 00000000000..b418a63f4bc
--- /dev/null
+++ b/res/drawable/ic_lock_swipe.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
diff --git a/res/layout/choose_lock_generic_biometric_header.xml b/res/layout/choose_lock_generic_biometric_header.xml
index 1db0cc6bbeb..25e5fbdb9cd 100644
--- a/res/layout/choose_lock_generic_biometric_header.xml
+++ b/res/layout/choose_lock_generic_biometric_header.xml
@@ -23,5 +23,4 @@
android:minHeight="56dp"
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
- android:text="@string/lock_settings_picker_biometric_message"
style="@style/BiometricHeaderStyle" />
diff --git a/res/layout/choose_lock_password.xml b/res/layout/choose_lock_password.xml
index 39145518018..70919a6fbce 100644
--- a/res/layout/choose_lock_password.xml
+++ b/res/layout/choose_lock_password.xml
@@ -21,8 +21,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:icon="@drawable/ic_lock"
- android:importantForAutofill="noExcludeDescendants"
- settings:sucHeaderText="@string/lockpassword_choose_your_screen_lock_header">
+ android:importantForAutofill="noExcludeDescendants">
+ android:layout="@layout/sud_glif_blank_template">
Choose screen lock
-
- Choose work lock
+
+ Choose a screen lock
+
+
+ Choose a new screen lock
+
+
+ Choose a lock for work apps
+
+
+ Choose a new work lock
Protect your tablet
@@ -1334,6 +1343,12 @@
Choose your backup screen lock method
+
+ This lock can\u2019t be reset by your IT admin. LINK_BEGINSet a separate work lock insteadLINK_END
+
+
+ If you forget this lock, ask your IT admin to reset it
+
Screen lock options
@@ -4289,10 +4304,19 @@
Loading\u2026
-
- Set screen lock
-
- For security, set password
+
+ Set a password
+
+ Set a work password
+
+ Set a PIN
+
+ Set a work PIN
+
+ Set a pattern
+
+ Set a work pattern
+
To use fingerprint, set password
@@ -4301,10 +4325,10 @@
For security, set PIN
To use fingerprint, set PIN
-
- For security, set pattern
Re-enter your password
+
+ Re-enter your work password
Enter your work password
@@ -4313,6 +4337,8 @@
Enter your work pattern
Re-enter your PIN
+
+ Re-enter your work PIN
Enter your work PIN
diff --git a/res/xml/security_settings_picker.xml b/res/xml/security_settings_picker.xml
index 8ce0d62fd95..aed702983cc 100644
--- a/res/xml/security_settings_picker.xml
+++ b/res/xml/security_settings_picker.xml
@@ -16,32 +16,36 @@
separate challenge is considered as adding
+ // a new lock to the profile, while if the profile already has a separate challenge
+ // it's an update.
+ updateExistingLock = mLockPatternUtils.isSeparateProfileChallengeEnabled(mUserId);
+ if (updateExistingLock) {
+ getActivity().setTitle(R.string.lock_settings_picker_update_profile_lock_title);
+ } else {
+ getActivity().setTitle(R.string.lock_settings_picker_new_profile_lock_title);
+ }
+ } else {
+ updateExistingLock = mLockPatternUtils.isSecure(mUserId);
+ if (updateExistingLock) {
+ getActivity().setTitle(R.string.lock_settings_picker_update_lock_title);
+ } else {
+ getActivity().setTitle(R.string.lock_settings_picker_new_lock_title);
+ }
+ }
+ }
+
protected boolean canRunBeforeDeviceProvisioned() {
PersistentDataBlockManager pdbm = (PersistentDataBlockManager)
getSystemService(Context.PERSISTENT_DATA_BLOCK_SERVICE);
@@ -333,14 +377,48 @@ public class ChooseLockGeneric extends SettingsActivity {
if (mForFingerprint) {
if (mIsSetNewPassword) {
textView.setText(R.string.fingerprint_unlock_title);
+ } else {
+ textView.setText(R.string.lock_settings_picker_biometric_message);
}
} else if (mForFace) {
if (mIsSetNewPassword) {
textView.setText(R.string.face_unlock_title);
+ } else {
+ textView.setText(R.string.lock_settings_picker_biometric_message);
}
} else if (mForBiometrics) {
if (mIsSetNewPassword) {
textView.setText(R.string.biometrics_unlock_title);
+ } else {
+ textView.setText(R.string.lock_settings_picker_biometric_message);
+ }
+ } else {
+ if (mIsManagedProfile) {
+ textView.setText(R.string.lock_settings_picker_profile_message);
+ } else {
+ int profileUserId = Utils.getManagedProfileId(mUserManager, mUserId);
+ if (mController.isScreenLockRestrictedByAdmin()
+ && profileUserId != UserHandle.USER_NULL) {
+ final StringBuilder description = new StringBuilder(getText(
+ R.string.lock_settings_picker_admin_restricted_personal_message));
+ final LinkifyUtils.OnClickListener clickListener = () -> {
+ final Bundle extras = new Bundle();
+ extras.putInt(Intent.EXTRA_USER_ID, profileUserId);
+ if (mUserPassword != null) {
+ extras.putParcelable(ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD,
+ mUserPassword);
+ }
+ new SubSettingLauncher(getActivity())
+ .setDestination(ChooseLockGenericFragment.class.getName())
+ .setSourceMetricsCategory(getMetricsCategory())
+ .setArguments(extras)
+ .launch();
+ finish();
+ };
+ LinkifyUtils.linkify(textView, description, clickListener);
+ } else {
+ textView.setText("");
+ }
}
}
}
@@ -891,8 +969,7 @@ public class ChooseLockGeneric extends SettingsActivity {
}
private int getResIdForFactoryResetProtectionWarningTitle() {
- boolean isProfile = UserManager.get(getActivity()).isManagedProfile(mUserId);
- return isProfile ? R.string.unlock_disable_frp_warning_title_profile
+ return mIsManagedProfile ? R.string.unlock_disable_frp_warning_title_profile
: R.string.unlock_disable_frp_warning_title;
}
@@ -903,26 +980,25 @@ public class ChooseLockGeneric extends SettingsActivity {
} else {
hasFingerprints = false;
}
- boolean isProfile = UserManager.get(getActivity()).isManagedProfile(mUserId);
switch (mLockPatternUtils.getKeyguardStoredPasswordQuality(mUserId)) {
case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING:
- if (hasFingerprints && isProfile) {
+ if (hasFingerprints && mIsManagedProfile) {
return R.string
.unlock_disable_frp_warning_content_pattern_fingerprint_profile;
- } else if (hasFingerprints && !isProfile) {
+ } else if (hasFingerprints && !mIsManagedProfile) {
return R.string.unlock_disable_frp_warning_content_pattern_fingerprint;
- } else if (isProfile) {
+ } else if (mIsManagedProfile) {
return R.string.unlock_disable_frp_warning_content_pattern_profile;
} else {
return R.string.unlock_disable_frp_warning_content_pattern;
}
case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC:
case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX:
- if (hasFingerprints && isProfile) {
+ if (hasFingerprints && mIsManagedProfile) {
return R.string.unlock_disable_frp_warning_content_pin_fingerprint_profile;
- } else if (hasFingerprints && !isProfile) {
+ } else if (hasFingerprints && !mIsManagedProfile) {
return R.string.unlock_disable_frp_warning_content_pin_fingerprint;
- } else if (isProfile) {
+ } else if (mIsManagedProfile) {
return R.string.unlock_disable_frp_warning_content_pin_profile;
} else {
return R.string.unlock_disable_frp_warning_content_pin;
@@ -931,23 +1007,23 @@ public class ChooseLockGeneric extends SettingsActivity {
case DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC:
case DevicePolicyManager.PASSWORD_QUALITY_COMPLEX:
case DevicePolicyManager.PASSWORD_QUALITY_MANAGED:
- if (hasFingerprints && isProfile) {
+ if (hasFingerprints && mIsManagedProfile) {
return R.string
.unlock_disable_frp_warning_content_password_fingerprint_profile;
- } else if (hasFingerprints && !isProfile) {
+ } else if (hasFingerprints && !mIsManagedProfile) {
return R.string.unlock_disable_frp_warning_content_password_fingerprint;
- } else if (isProfile) {
+ } else if (mIsManagedProfile) {
return R.string.unlock_disable_frp_warning_content_password_profile;
} else {
return R.string.unlock_disable_frp_warning_content_password;
}
default:
- if (hasFingerprints && isProfile) {
+ if (hasFingerprints && mIsManagedProfile) {
return R.string
.unlock_disable_frp_warning_content_unknown_fingerprint_profile;
- } else if (hasFingerprints && !isProfile) {
+ } else if (hasFingerprints && !mIsManagedProfile) {
return R.string.unlock_disable_frp_warning_content_unknown_fingerprint;
- } else if (isProfile) {
+ } else if (mIsManagedProfile) {
return R.string.unlock_disable_frp_warning_content_unknown_profile;
} else {
return R.string.unlock_disable_frp_warning_content_unknown;
diff --git a/src/com/android/settings/password/ChooseLockGenericController.java b/src/com/android/settings/password/ChooseLockGenericController.java
index 88b35f9c248..6900e3d0f60 100644
--- a/src/com/android/settings/password/ChooseLockGenericController.java
+++ b/src/com/android/settings/password/ChooseLockGenericController.java
@@ -18,6 +18,8 @@ package com.android.settings.password;
import static android.app.admin.DevicePolicyManager.PASSWORD_COMPLEXITY_NONE;
+import static com.android.internal.widget.LockPatternUtils.CREDENTIAL_TYPE_NONE;
+
import android.app.admin.DevicePolicyManager.PasswordComplexity;
import android.app.admin.PasswordMetrics;
import android.content.Context;
@@ -88,7 +90,7 @@ public class ChooseLockGenericController {
}
/**
- * Returns the highest quality among the specified {@code quality}, the password requiremnet
+ * Returns the highest quality among the specified {@code quality}, the password requirement
* set by device admins (legacy password quality metrics and password complexity), and the
* min password complexity requested by the calling app.
*/
@@ -207,4 +209,9 @@ public class ChooseLockGenericController {
mLockPatternUtils.getRequestedPasswordComplexity(
mUserId, mDevicePasswordRequirementOnly));
}
+
+ public boolean isScreenLockRestrictedByAdmin() {
+ return getAggregatedPasswordMetrics().credType != CREDENTIAL_TYPE_NONE
+ || getAggregatedPasswordComplexity() != PASSWORD_COMPLEXITY_NONE;
+ }
}
diff --git a/src/com/android/settings/password/ChooseLockPassword.java b/src/com/android/settings/password/ChooseLockPassword.java
index 7b6bc0c8967..de377a73d67 100644
--- a/src/com/android/settings/password/ChooseLockPassword.java
+++ b/src/com/android/settings/password/ChooseLockPassword.java
@@ -49,6 +49,7 @@ import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.UserHandle;
+import android.os.UserManager;
import android.text.Editable;
import android.text.InputType;
import android.text.Selection;
@@ -207,23 +208,6 @@ public class ChooseLockPassword extends SettingsActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- final boolean forFingerprint = getIntent()
- .getBooleanExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FINGERPRINT, false);
- final boolean forFace = getIntent()
- .getBooleanExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FACE, false);
- final boolean forBiometrics = getIntent()
- .getBooleanExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_BIOMETRICS, false);
-
- CharSequence msg = getText(R.string.lockpassword_choose_your_screen_lock_header);
- if (forFingerprint) {
- msg = getText(R.string.lockpassword_choose_your_password_header_for_fingerprint);
- } else if (forFace) {
- msg = getText(R.string.lockpassword_choose_your_password_header_for_face);
- } else if (forBiometrics) {
- msg = getText(R.string.lockpassword_choose_your_password_header_for_biometrics);
- }
-
- setTitle(msg);
findViewById(R.id.content_parent).setFitsSystemWindows(false);
}
@@ -262,6 +246,7 @@ public class ChooseLockPassword extends SettingsActivity {
private LockscreenCredential mFirstPassword;
private RecyclerView mPasswordRestrictionView;
protected boolean mIsAlphaMode;
+ protected boolean mIsManagedProfile;
protected FooterButton mSkipOrClearButton;
private FooterButton mNextButton;
private TextView mMessage;
@@ -277,33 +262,33 @@ public class ChooseLockPassword extends SettingsActivity {
protected enum Stage {
Introduction(
- R.string.lockpassword_choose_your_screen_lock_header, // password
+ R.string.lockpassword_choose_your_password_header, // password
+ R.string.lockpassword_choose_your_profile_password_header,
R.string.lockpassword_choose_your_password_header_for_fingerprint,
R.string.lockpassword_choose_your_password_header_for_face,
R.string.lockpassword_choose_your_password_header_for_biometrics,
- R.string.lockpassword_choose_your_screen_lock_header, // pin
+ R.string.lockpassword_choose_your_pin_header, // pin
+ R.string.lockpassword_choose_your_profile_pin_header,
R.string.lockpassword_choose_your_pin_header_for_fingerprint,
R.string.lockpassword_choose_your_pin_header_for_face,
R.string.lockpassword_choose_your_pin_header_for_biometrics,
- R.string.lockpassword_choose_your_password_message, // added security message
R.string.lock_settings_picker_biometrics_added_security_message,
- R.string.lockpassword_choose_your_pin_message,
R.string.lock_settings_picker_biometrics_added_security_message,
R.string.next_label),
NeedToConfirm(
R.string.lockpassword_confirm_your_password_header,
+ R.string.lockpassword_reenter_your_profile_password_header,
R.string.lockpassword_confirm_your_password_header,
R.string.lockpassword_confirm_your_password_header,
R.string.lockpassword_confirm_your_password_header,
R.string.lockpassword_confirm_your_pin_header,
+ R.string.lockpassword_reenter_your_profile_pin_header,
R.string.lockpassword_confirm_your_pin_header,
R.string.lockpassword_confirm_your_pin_header,
R.string.lockpassword_confirm_your_pin_header,
0,
0,
- 0,
- 0,
R.string.lockpassword_confirm_label),
ConfirmWrong(
@@ -311,36 +296,36 @@ public class ChooseLockPassword extends SettingsActivity {
R.string.lockpassword_confirm_passwords_dont_match,
R.string.lockpassword_confirm_passwords_dont_match,
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_confirm_pins_dont_match,
R.string.lockpassword_confirm_pins_dont_match,
R.string.lockpassword_confirm_pins_dont_match,
- 0,
- 0,
0,
0,
R.string.lockpassword_confirm_label);
- Stage(int hintInAlpha,
+ Stage(int hintInAlpha, int hintInAlphaForProfile,
int hintInAlphaForFingerprint, int hintInAlphaForFace, int hintInAlphaForBiometrics,
- int hintInNumeric,
+ int hintInNumeric, int hintInNumericForProfile,
int hintInNumericForFingerprint, int hintInNumericForFace, int hintInNumericForBiometrics,
- int messageInAlpha, int messageInAlphaForBiometrics,
- int messageInNumeric, int messageInNumericForBiometrics,
+ int messageInAlphaForBiometrics,
+ int messageInNumericForBiometrics,
int nextButtonText) {
this.alphaHint = hintInAlpha;
+ this.alphaHintForProfile = hintInAlphaForProfile;
this.alphaHintForFingerprint = hintInAlphaForFingerprint;
this.alphaHintForFace = hintInAlphaForFace;
this.alphaHintForBiometrics = hintInAlphaForBiometrics;
this.numericHint = hintInNumeric;
+ this.numericHintForProfile = hintInNumericForProfile;
this.numericHintForFingerprint = hintInNumericForFingerprint;
this.numericHintForFace = hintInNumericForFace;
this.numericHintForBiometrics = hintInNumericForBiometrics;
- this.alphaMessage = messageInAlpha;
this.alphaMessageForBiometrics = messageInAlphaForBiometrics;
- this.numericMessage = messageInNumeric;
this.numericMessageForBiometrics = messageInNumericForBiometrics;
this.buttonText = nextButtonText;
}
@@ -352,23 +337,23 @@ public class ChooseLockPassword extends SettingsActivity {
// Password
public final int alphaHint;
+ public final int alphaHintForProfile;
public final int alphaHintForFingerprint;
public final int alphaHintForFace;
public final int alphaHintForBiometrics;
// PIN
public final int numericHint;
+ public final int numericHintForProfile;
public final int numericHintForFingerprint;
public final int numericHintForFace;
public final int numericHintForBiometrics;
- public final int alphaMessage;
public final int alphaMessageForBiometrics;
- public final int numericMessage;
public final int numericMessageForBiometrics;
public final int buttonText;
- public @StringRes int getHint(boolean isAlpha, int type) {
+ public @StringRes int getHint(boolean isAlpha, int type, boolean isProfile) {
if (isAlpha) {
if (type == TYPE_FINGERPRINT) {
return alphaHintForFingerprint;
@@ -377,7 +362,7 @@ public class ChooseLockPassword extends SettingsActivity {
} else if (type == TYPE_BIOMETRIC) {
return alphaHintForBiometrics;
} else {
- return alphaHint;
+ return isProfile ? alphaHintForProfile : alphaHint;
}
} else {
if (type == TYPE_FINGERPRINT) {
@@ -387,16 +372,16 @@ public class ChooseLockPassword extends SettingsActivity {
} else if (type == TYPE_BIOMETRIC) {
return numericHintForBiometrics;
} else {
- return numericHint;
+ return isProfile ? numericHintForProfile : numericHint;
}
}
}
public @StringRes int getMessage(boolean isAlpha, int type) {
if (isAlpha) {
- return type != TYPE_NONE ? alphaMessageForBiometrics : alphaMessage;
+ return type != TYPE_NONE ? alphaMessageForBiometrics : 0;
} else {
- return type != TYPE_NONE ? numericMessageForBiometrics : numericMessage;
+ return type != TYPE_NONE ? numericMessageForBiometrics : 0;
}
}
}
@@ -416,6 +401,7 @@ public class ChooseLockPassword extends SettingsActivity {
}
// Only take this argument into account if it belongs to the current profile.
mUserId = Utils.getUserIdFromBundle(getActivity(), intent.getExtras());
+ mIsManagedProfile = UserManager.get(getActivity()).isManagedProfile(mUserId);
mForFingerprint = intent.getBooleanExtra(
ChooseLockSettingsHelper.EXTRA_KEY_FOR_FINGERPRINT, false);
mForFace = intent.getBooleanExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FACE, false);
@@ -576,7 +562,8 @@ public class ChooseLockPassword extends SettingsActivity {
if (activity instanceof SettingsActivity) {
final SettingsActivity sa = (SettingsActivity) activity;
- int title = Stage.Introduction.getHint(mIsAlphaMode, getStageType());
+ int title = Stage.Introduction.getHint(mIsAlphaMode, getStageType(),
+ mIsManagedProfile);
sa.setTitle(title);
mLayout.setHeaderText(title);
}
@@ -870,7 +857,8 @@ 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(mUiStage.getHint(mIsAlphaMode, getStageType())));
+ setHeaderText(getString(mUiStage.getHint(mIsAlphaMode, getStageType(),
+ mIsManagedProfile)));
setNextEnabled(canInput && length >= LockPatternUtils.MIN_LOCK_PASSWORD_SIZE);
mSkipOrClearButton.setVisibility(toVisibility(canInput && length > 0));
}
diff --git a/src/com/android/settings/password/ChooseLockPattern.java b/src/com/android/settings/password/ChooseLockPattern.java
index a3c91cf15c0..6e5368de11f 100644
--- a/src/com/android/settings/password/ChooseLockPattern.java
+++ b/src/com/android/settings/password/ChooseLockPattern.java
@@ -27,6 +27,7 @@ import android.content.res.ColorStateList;
import android.content.res.Resources.Theme;
import android.os.Bundle;
import android.os.UserHandle;
+import android.os.UserManager;
import android.util.Log;
import android.util.Pair;
import android.util.TypedValue;
@@ -172,19 +173,6 @@ public class ChooseLockPattern extends SettingsActivity {
protected void onCreate(Bundle savedInstanceState) {
// requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
- final boolean forFingerprint = getIntent()
- .getBooleanExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FINGERPRINT, false);
- final boolean forFace = getIntent()
- .getBooleanExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FACE, false);
-
- int msg = R.string.lockpassword_choose_your_screen_lock_header;
- if (forFingerprint) {
- msg = R.string.lockpassword_choose_your_pattern_header_for_fingerprint;
- } else if (forFace) {
- msg = R.string.lockpassword_choose_your_pattern_header_for_face;
- }
-
- setTitle(msg);
findViewById(R.id.content_parent).setFitsSystemWindows(false);
}
@@ -390,7 +378,7 @@ public class ChooseLockPattern extends SettingsActivity {
Introduction(
R.string.lock_settings_picker_biometrics_added_security_message,
- R.string.lockpassword_choose_your_pattern_message,
+ ID_EMPTY_MESSAGE,
R.string.lockpattern_recording_intro_header,
LeftButtonMode.Gone, RightButtonMode.ContinueDisabled,
ID_EMPTY_MESSAGE, true),
@@ -399,13 +387,13 @@ public class ChooseLockPattern extends SettingsActivity {
LeftButtonMode.Gone, RightButtonMode.Ok, ID_EMPTY_MESSAGE, false),
ChoiceTooShort(
R.string.lock_settings_picker_biometrics_added_security_message,
- R.string.lockpassword_choose_your_pattern_message,
+ ID_EMPTY_MESSAGE,
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.lockpassword_choose_your_pattern_message,
+ ID_EMPTY_MESSAGE,
R.string.lockpattern_pattern_entered_header,
LeftButtonMode.Retry, RightButtonMode.Continue, ID_EMPTY_MESSAGE, false),
NeedToConfirm(
@@ -464,6 +452,7 @@ public class ChooseLockPattern extends SettingsActivity {
private LockPatternUtils mLockPatternUtils;
private SaveAndFinishWorker mSaveAndFinishWorker;
protected int mUserId;
+ protected boolean mIsManagedProfile;
protected boolean mForFingerprint;
protected boolean mForFace;
protected boolean mForBiometrics;
@@ -481,6 +470,7 @@ public class ChooseLockPattern extends SettingsActivity {
Intent intent = getActivity().getIntent();
// Only take this argument into account if it belongs to the current profile.
mUserId = Utils.getUserIdFromBundle(getActivity(), intent.getExtras());
+ mIsManagedProfile = UserManager.get(getActivity()).isManagedProfile(mUserId);
mLockPatternUtils = new LockPatternUtils(getActivity());
@@ -504,6 +494,20 @@ public class ChooseLockPattern extends SettingsActivity {
ChooseLockSettingsHelper.EXTRA_KEY_FOR_BIOMETRICS, false);
}
+ private void updateActivityTitle() {
+ final int msg;
+ if (mForFingerprint) {
+ msg = R.string.lockpassword_choose_your_pattern_header_for_fingerprint;
+ } else if (mForFace) {
+ msg = R.string.lockpassword_choose_your_pattern_header_for_face;
+ } else {
+ msg = mIsManagedProfile
+ ? R.string.lockpassword_choose_your_profile_pattern_header
+ : R.string.lockpassword_choose_your_pattern_header;
+ }
+ getActivity().setTitle(msg);
+ }
+
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
@@ -515,7 +519,7 @@ public class ChooseLockPattern extends SettingsActivity {
layout.setLandscapeHeaderAreaVisible(false /* visible */);
break;
}
- layout.setHeaderText(getActivity().getTitle());
+ updateActivityTitle();
if (getResources().getBoolean(R.bool.config_lock_pattern_minimal_ui)) {
View iconView = layout.findViewById(R.id.sud_layout_icon);
if (iconView != null) {
diff --git a/src/com/android/settings/password/SetupChooseLockPattern.java b/src/com/android/settings/password/SetupChooseLockPattern.java
index e80599f3fa4..b34863debb2 100644
--- a/src/com/android/settings/password/SetupChooseLockPattern.java
+++ b/src/com/android/settings/password/SetupChooseLockPattern.java
@@ -60,7 +60,7 @@ public class SetupChooseLockPattern extends ChooseLockPattern {
// Show generic pattern title when pattern lock screen launch in Setup wizard flow before
// fingerprint and face setup.
- setTitle(R.string.lockpassword_choose_your_screen_lock_header);
+ setTitle(R.string.lockpassword_choose_your_pattern_header);
}
public static class SetupChooseLockPatternFragment extends ChooseLockPatternFragment
diff --git a/src/com/android/settings/security/ChangeProfileScreenLockPreferenceController.java b/src/com/android/settings/security/ChangeProfileScreenLockPreferenceController.java
index 26370d9f528..1da32dcacd3 100644
--- a/src/com/android/settings/security/ChangeProfileScreenLockPreferenceController.java
+++ b/src/com/android/settings/security/ChangeProfileScreenLockPreferenceController.java
@@ -78,7 +78,6 @@ public class ChangeProfileScreenLockPreferenceController extends
extras.putInt(Intent.EXTRA_USER_ID, mProfileChallengeUserId);
new SubSettingLauncher(mContext)
.setDestination(ChooseLockGeneric.ChooseLockGenericFragment.class.getName())
- .setTitleRes(R.string.lock_settings_picker_title_profile)
.setSourceMetricsCategory(mHost.getMetricsCategory())
.setArguments(extras)
.launch();
diff --git a/src/com/android/settings/security/ChangeScreenLockPreferenceController.java b/src/com/android/settings/security/ChangeScreenLockPreferenceController.java
index d678d86654a..1587746fbab 100644
--- a/src/com/android/settings/security/ChangeScreenLockPreferenceController.java
+++ b/src/com/android/settings/security/ChangeScreenLockPreferenceController.java
@@ -136,7 +136,6 @@ public class ChangeScreenLockPreferenceController extends AbstractPreferenceCont
new SubSettingLauncher(mContext)
.setDestination(ChooseLockGeneric.ChooseLockGenericFragment.class.getName())
- .setTitleRes(R.string.lock_settings_picker_title)
.setSourceMetricsCategory(mHost.getMetricsCategory())
.launch();
return true;
diff --git a/src/com/android/settings/security/LockUnificationPreferenceController.java b/src/com/android/settings/security/LockUnificationPreferenceController.java
index e47180ee34f..e8a23b7e3b1 100644
--- a/src/com/android/settings/security/LockUnificationPreferenceController.java
+++ b/src/com/android/settings/security/LockUnificationPreferenceController.java
@@ -170,7 +170,6 @@ public class LockUnificationPreferenceController extends AbstractPreferenceContr
extras.putParcelable(ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD, mCurrentDevicePassword);
new SubSettingLauncher(mContext)
.setDestination(ChooseLockGeneric.ChooseLockGenericFragment.class.getName())
- .setTitleRes(R.string.lock_settings_picker_title_profile)
.setSourceMetricsCategory(mHost.getMetricsCategory())
.setArguments(extras)
.launch();