diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java index 8a96484ad97..315cba12b2c 100644 --- a/src/com/android/settings/Utils.java +++ b/src/com/android/settings/Utils.java @@ -688,6 +688,15 @@ public final class Utils extends com.android.settingslib.Utils { return um.getCredentialOwnerProfile(userId); } + /** + * Returns the credential type of the given user id. + */ + public static @LockPatternUtils.CredentialType int getCredentialType(Context context, + int userId) { + final LockPatternUtils lpu = new LockPatternUtils(context); + return lpu.getCredentialTypeForUser(userId); + } + private static final StringBuilder sBuilder = new StringBuilder(50); private static final java.util.Formatter sFormatter = new java.util.Formatter( sBuilder, Locale.getDefault()); diff --git a/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java b/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java index 8947f8fa7e2..6f505bd21c9 100644 --- a/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java +++ b/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java @@ -182,6 +182,15 @@ public class ConfirmDeviceCredentialActivity extends FragmentActivity { if ((mTitle == null) && isManagedProfile) { mTitle = getTitleFromOrganizationName(mUserId); } + final @LockPatternUtils.CredentialType int credentialType = Utils.getCredentialType( + mContext, effectiveUserId); + if (mTitle == null) { + mTitle = getTitleFromCredentialType(credentialType, isManagedProfile); + } + if (mDetails == null) { + mDetails = getDetailsFromCredentialType(credentialType, isManagedProfile); + } + mChooseLockSettingsHelper = new ChooseLockSettingsHelper(this); final LockPatternUtils lockPatternUtils = new LockPatternUtils(this); @@ -233,6 +242,44 @@ public class ConfirmDeviceCredentialActivity extends FragmentActivity { } } + private String getTitleFromCredentialType(@LockPatternUtils.CredentialType int credentialType, + boolean isManagedProfile) { + switch (credentialType) { + case LockPatternUtils.CREDENTIAL_TYPE_PIN: + return isManagedProfile + ? getString(R.string.lockpassword_confirm_your_work_pin_header) + : getString(R.string.lockpassword_confirm_your_pin_header); + case LockPatternUtils.CREDENTIAL_TYPE_PATTERN: + return isManagedProfile + ? getString(R.string.lockpassword_confirm_your_work_pattern_header) + : getString(R.string.lockpassword_confirm_your_pattern_header); + case LockPatternUtils.CREDENTIAL_TYPE_PASSWORD: + return isManagedProfile + ? getString(R.string.lockpassword_confirm_your_work_password_header) + : getString(R.string.lockpassword_confirm_your_password_header); + } + return null; + } + + private String getDetailsFromCredentialType(@LockPatternUtils.CredentialType int credentialType, + boolean isManagedProfile) { + switch (credentialType) { + case LockPatternUtils.CREDENTIAL_TYPE_PIN: + return isManagedProfile + ? getString(R.string.lockpassword_confirm_your_pin_generic_profile) + : getString(R.string.lockpassword_confirm_your_pin_generic); + case LockPatternUtils.CREDENTIAL_TYPE_PATTERN: + return isManagedProfile + ? getString(R.string.lockpassword_confirm_your_pattern_generic_profile) + : getString(R.string.lockpassword_confirm_your_pattern_generic); + case LockPatternUtils.CREDENTIAL_TYPE_PASSWORD: + return isManagedProfile + ? getString(R.string.lockpassword_confirm_your_password_generic_profile) + : getString(R.string.lockpassword_confirm_your_password_generic); + } + return null; + } + @Override protected void onStart() { super.onStart();