Loading src/com/android/settings/ChooseLockSettingsHelper.java +4 −1 Original line number Diff line number Diff line Loading @@ -118,7 +118,10 @@ public final class ChooseLockSettingsHelper { boolean returnCredentials, boolean external, boolean hasChallenge, long challenge) { boolean launched = false; switch (mLockPatternUtils.getKeyguardStoredPasswordQuality(UserHandle.myUserId())) { int effectiveUserId = Utils.getEffectiveUserId(mActivity); switch (mLockPatternUtils.getKeyguardStoredPasswordQuality(effectiveUserId)) { case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING: launched = launchConfirmationActivity(request, title, header, description, returnCredentials || hasChallenge Loading src/com/android/settings/ConfirmLockPassword.java +16 −10 Original line number Diff line number Diff line Loading @@ -28,8 +28,8 @@ import com.android.settingslib.animation.DisappearAnimationUtils; import android.app.Fragment; import android.app.admin.DevicePolicyManager; import android.content.Context; import android.content.Intent; import android.content.Context; import android.os.AsyncTask; import android.os.Bundle; import android.os.CountDownTimer; Loading Loading @@ -98,6 +98,7 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity { private AppearAnimationUtils mAppearAnimationUtils; private DisappearAnimationUtils mDisappearAnimationUtils; private boolean mBlockImm; private int mEffectiveUserId; // required constructor for fragments public ConfirmLockPasswordFragment() { Loading @@ -108,6 +109,8 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mLockPatternUtils = new LockPatternUtils(getActivity()); mEffectiveUserId = Utils.getEffectiveUserId(getActivity()); if (savedInstanceState != null) { mNumWrongConfirmAttempts = savedInstanceState.getInt( KEY_NUM_WRONG_CONFIRM_ATTEMPTS, 0); Loading @@ -118,7 +121,7 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final int storedQuality = mLockPatternUtils.getKeyguardStoredPasswordQuality( UserHandle.myUserId()); mEffectiveUserId); View view = inflater.inflate(R.layout.confirm_lock_password, null); mPasswordEntry = (TextView) view.findViewById(R.id.password_entry); Loading Loading @@ -238,7 +241,7 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity { @Override public void onResume() { super.onResume(); long deadline = mLockPatternUtils.getLockoutAttemptDeadline(UserHandle.myUserId()); long deadline = mLockPatternUtils.getLockoutAttemptDeadline(mEffectiveUserId); if (deadline != 0) { handleAttemptLockout(deadline); } else { Loading Loading @@ -314,7 +317,7 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity { return; } onPasswordChecked(false, intent, 0); onPasswordChecked(false, intent, 0, mEffectiveUserId); } private boolean isInternalActivity() { Loading @@ -324,11 +327,12 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity { private void startVerifyPassword(final String pin, final Intent intent) { long challenge = getActivity().getIntent().getLongExtra( ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE, 0); final int localEffectiveUserId = mEffectiveUserId; mPendingLockCheck = LockPatternChecker.verifyPassword( mLockPatternUtils, pin, challenge, UserHandle.myUserId(), localEffectiveUserId, new LockPatternChecker.OnVerifyCallback() { @Override public void onVerified(byte[] token, int timeoutMs) { Loading @@ -340,16 +344,17 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity { ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, token); } onPasswordChecked(matched, intent, timeoutMs); onPasswordChecked(matched, intent, timeoutMs, localEffectiveUserId); } }); } private void startCheckPassword(final String pin, final Intent intent) { final int localEffectiveUserId = mEffectiveUserId; mPendingLockCheck = LockPatternChecker.checkPassword( mLockPatternUtils, pin, UserHandle.myUserId(), localEffectiveUserId, new LockPatternChecker.OnCheckCallback() { @Override public void onChecked(boolean matched, int timeoutMs) { Loading @@ -361,7 +366,7 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity { intent.putExtra( ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD, pin); } onPasswordChecked(matched, intent, timeoutMs); onPasswordChecked(matched, intent, timeoutMs, localEffectiveUserId); } }); } Loading @@ -384,14 +389,15 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity { } } private void onPasswordChecked(boolean matched, Intent intent, int timeoutMs) { private void onPasswordChecked(boolean matched, Intent intent, int timeoutMs, int effectiveUserId) { mPasswordEntryInputDisabler.setInputEnabled(true); if (matched) { startDisappearAnimation(intent); } else { if (timeoutMs > 0) { long deadline = mLockPatternUtils.setLockoutAttemptDeadline( UserHandle.myUserId(), timeoutMs); effectiveUserId, timeoutMs); handleAttemptLockout(deadline); } else { showError(getErrorMessage()); Loading src/com/android/settings/ConfirmLockPattern.java +17 −10 Original line number Diff line number Diff line Loading @@ -102,6 +102,8 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity { private AppearAnimationUtils mAppearAnimationUtils; private DisappearAnimationUtils mDisappearAnimationUtils; private int mEffectiveUserId; // required constructor for fragments public ConfirmLockPatternFragment() { Loading @@ -111,6 +113,7 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mLockPatternUtils = new LockPatternUtils(getActivity()); mEffectiveUserId = Utils.getEffectiveUserId(getActivity()); } @Override Loading Loading @@ -151,7 +154,7 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity { // on first launch, if no lock pattern is set, then finish with // success (don't want user to get stuck confirming something that // doesn't exist). if (!mLockPatternUtils.isLockPatternEnabled(UserHandle.myUserId())) { if (!mLockPatternUtils.isLockPatternEnabled(mEffectiveUserId)) { getActivity().setResult(Activity.RESULT_OK); getActivity().finish(); } Loading Loading @@ -203,7 +206,7 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity { super.onResume(); // if the user is currently locked out, enforce it. long deadline = mLockPatternUtils.getLockoutAttemptDeadline(UserHandle.myUserId()); long deadline = mLockPatternUtils.getLockoutAttemptDeadline(mEffectiveUserId); if (deadline != 0) { handleAttemptLockout(deadline); } else if (!mLockPatternView.isEnabled()) { Loading Loading @@ -385,7 +388,7 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity { return; } onPatternChecked(pattern, false, intent, 0); onPatternChecked(pattern, false, intent, 0, mEffectiveUserId); } private boolean isInternalActivity() { Loading @@ -394,13 +397,14 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity { private void startVerifyPattern(final List<LockPatternView.Cell> pattern, final Intent intent) { final int localEffectiveUserId = mEffectiveUserId; long challenge = getActivity().getIntent().getLongExtra( ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE, 0); mPendingLockCheck = LockPatternChecker.verifyPattern( mLockPatternUtils, pattern, challenge, UserHandle.myUserId(), localEffectiveUserId, new LockPatternChecker.OnVerifyCallback() { @Override public void onVerified(byte[] token, int timeoutMs) { Loading @@ -412,7 +416,8 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity { ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, token); } onPatternChecked(pattern, matched, intent, timeoutMs); onPatternChecked(pattern, matched, intent, timeoutMs, localEffectiveUserId); } }); } Loading @@ -420,14 +425,15 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity { private void startCheckPattern(final List<LockPatternView.Cell> pattern, final Intent intent) { if (pattern.size() < LockPatternUtils.MIN_PATTERN_REGISTER_FAIL) { onPatternChecked(pattern, false, intent, 0); onPatternChecked(pattern, false, intent, 0, mEffectiveUserId); return; } final int localEffectiveUserId = mEffectiveUserId; mPendingLockCheck = LockPatternChecker.checkPattern( mLockPatternUtils, pattern, UserHandle.myUserId(), localEffectiveUserId, new LockPatternChecker.OnCheckCallback() { @Override public void onChecked(boolean matched, int timeoutMs) { Loading @@ -438,20 +444,21 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity { intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD, LockPatternUtils.patternToString(pattern)); } onPatternChecked(pattern, matched, intent, timeoutMs); onPatternChecked(pattern, matched, intent, timeoutMs, localEffectiveUserId); } }); } private void onPatternChecked(List<LockPatternView.Cell> pattern, boolean matched, Intent intent, int timeoutMs) { boolean matched, Intent intent, int timeoutMs, int effectiveUserId) { mLockPatternView.setEnabled(true); if (matched) { startDisappearAnimation(intent); } else { if (timeoutMs > 0) { long deadline = mLockPatternUtils.setLockoutAttemptDeadline( UserHandle.myUserId(), timeoutMs); effectiveUserId, timeoutMs); handleAttemptLockout(deadline); } else { updateStage(Stage.NeedToUnlockWrong); Loading src/com/android/settings/Utils.java +12 −1 Original line number Diff line number Diff line Loading @@ -1235,4 +1235,15 @@ public final class Utils { Spannable.SPAN_INCLUSIVE_INCLUSIVE); return str; } public static int getEffectiveUserId(Context context) { UserManager um = UserManager.get(context); if (um != null) { return um.getCredentialOwnerProfile(UserHandle.myUserId()); } else { Log.e(TAG, "Unable to acquire UserManager"); return UserHandle.myUserId(); } } } Loading
src/com/android/settings/ChooseLockSettingsHelper.java +4 −1 Original line number Diff line number Diff line Loading @@ -118,7 +118,10 @@ public final class ChooseLockSettingsHelper { boolean returnCredentials, boolean external, boolean hasChallenge, long challenge) { boolean launched = false; switch (mLockPatternUtils.getKeyguardStoredPasswordQuality(UserHandle.myUserId())) { int effectiveUserId = Utils.getEffectiveUserId(mActivity); switch (mLockPatternUtils.getKeyguardStoredPasswordQuality(effectiveUserId)) { case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING: launched = launchConfirmationActivity(request, title, header, description, returnCredentials || hasChallenge Loading
src/com/android/settings/ConfirmLockPassword.java +16 −10 Original line number Diff line number Diff line Loading @@ -28,8 +28,8 @@ import com.android.settingslib.animation.DisappearAnimationUtils; import android.app.Fragment; import android.app.admin.DevicePolicyManager; import android.content.Context; import android.content.Intent; import android.content.Context; import android.os.AsyncTask; import android.os.Bundle; import android.os.CountDownTimer; Loading Loading @@ -98,6 +98,7 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity { private AppearAnimationUtils mAppearAnimationUtils; private DisappearAnimationUtils mDisappearAnimationUtils; private boolean mBlockImm; private int mEffectiveUserId; // required constructor for fragments public ConfirmLockPasswordFragment() { Loading @@ -108,6 +109,8 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mLockPatternUtils = new LockPatternUtils(getActivity()); mEffectiveUserId = Utils.getEffectiveUserId(getActivity()); if (savedInstanceState != null) { mNumWrongConfirmAttempts = savedInstanceState.getInt( KEY_NUM_WRONG_CONFIRM_ATTEMPTS, 0); Loading @@ -118,7 +121,7 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final int storedQuality = mLockPatternUtils.getKeyguardStoredPasswordQuality( UserHandle.myUserId()); mEffectiveUserId); View view = inflater.inflate(R.layout.confirm_lock_password, null); mPasswordEntry = (TextView) view.findViewById(R.id.password_entry); Loading Loading @@ -238,7 +241,7 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity { @Override public void onResume() { super.onResume(); long deadline = mLockPatternUtils.getLockoutAttemptDeadline(UserHandle.myUserId()); long deadline = mLockPatternUtils.getLockoutAttemptDeadline(mEffectiveUserId); if (deadline != 0) { handleAttemptLockout(deadline); } else { Loading Loading @@ -314,7 +317,7 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity { return; } onPasswordChecked(false, intent, 0); onPasswordChecked(false, intent, 0, mEffectiveUserId); } private boolean isInternalActivity() { Loading @@ -324,11 +327,12 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity { private void startVerifyPassword(final String pin, final Intent intent) { long challenge = getActivity().getIntent().getLongExtra( ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE, 0); final int localEffectiveUserId = mEffectiveUserId; mPendingLockCheck = LockPatternChecker.verifyPassword( mLockPatternUtils, pin, challenge, UserHandle.myUserId(), localEffectiveUserId, new LockPatternChecker.OnVerifyCallback() { @Override public void onVerified(byte[] token, int timeoutMs) { Loading @@ -340,16 +344,17 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity { ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, token); } onPasswordChecked(matched, intent, timeoutMs); onPasswordChecked(matched, intent, timeoutMs, localEffectiveUserId); } }); } private void startCheckPassword(final String pin, final Intent intent) { final int localEffectiveUserId = mEffectiveUserId; mPendingLockCheck = LockPatternChecker.checkPassword( mLockPatternUtils, pin, UserHandle.myUserId(), localEffectiveUserId, new LockPatternChecker.OnCheckCallback() { @Override public void onChecked(boolean matched, int timeoutMs) { Loading @@ -361,7 +366,7 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity { intent.putExtra( ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD, pin); } onPasswordChecked(matched, intent, timeoutMs); onPasswordChecked(matched, intent, timeoutMs, localEffectiveUserId); } }); } Loading @@ -384,14 +389,15 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity { } } private void onPasswordChecked(boolean matched, Intent intent, int timeoutMs) { private void onPasswordChecked(boolean matched, Intent intent, int timeoutMs, int effectiveUserId) { mPasswordEntryInputDisabler.setInputEnabled(true); if (matched) { startDisappearAnimation(intent); } else { if (timeoutMs > 0) { long deadline = mLockPatternUtils.setLockoutAttemptDeadline( UserHandle.myUserId(), timeoutMs); effectiveUserId, timeoutMs); handleAttemptLockout(deadline); } else { showError(getErrorMessage()); Loading
src/com/android/settings/ConfirmLockPattern.java +17 −10 Original line number Diff line number Diff line Loading @@ -102,6 +102,8 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity { private AppearAnimationUtils mAppearAnimationUtils; private DisappearAnimationUtils mDisappearAnimationUtils; private int mEffectiveUserId; // required constructor for fragments public ConfirmLockPatternFragment() { Loading @@ -111,6 +113,7 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mLockPatternUtils = new LockPatternUtils(getActivity()); mEffectiveUserId = Utils.getEffectiveUserId(getActivity()); } @Override Loading Loading @@ -151,7 +154,7 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity { // on first launch, if no lock pattern is set, then finish with // success (don't want user to get stuck confirming something that // doesn't exist). if (!mLockPatternUtils.isLockPatternEnabled(UserHandle.myUserId())) { if (!mLockPatternUtils.isLockPatternEnabled(mEffectiveUserId)) { getActivity().setResult(Activity.RESULT_OK); getActivity().finish(); } Loading Loading @@ -203,7 +206,7 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity { super.onResume(); // if the user is currently locked out, enforce it. long deadline = mLockPatternUtils.getLockoutAttemptDeadline(UserHandle.myUserId()); long deadline = mLockPatternUtils.getLockoutAttemptDeadline(mEffectiveUserId); if (deadline != 0) { handleAttemptLockout(deadline); } else if (!mLockPatternView.isEnabled()) { Loading Loading @@ -385,7 +388,7 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity { return; } onPatternChecked(pattern, false, intent, 0); onPatternChecked(pattern, false, intent, 0, mEffectiveUserId); } private boolean isInternalActivity() { Loading @@ -394,13 +397,14 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity { private void startVerifyPattern(final List<LockPatternView.Cell> pattern, final Intent intent) { final int localEffectiveUserId = mEffectiveUserId; long challenge = getActivity().getIntent().getLongExtra( ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE, 0); mPendingLockCheck = LockPatternChecker.verifyPattern( mLockPatternUtils, pattern, challenge, UserHandle.myUserId(), localEffectiveUserId, new LockPatternChecker.OnVerifyCallback() { @Override public void onVerified(byte[] token, int timeoutMs) { Loading @@ -412,7 +416,8 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity { ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, token); } onPatternChecked(pattern, matched, intent, timeoutMs); onPatternChecked(pattern, matched, intent, timeoutMs, localEffectiveUserId); } }); } Loading @@ -420,14 +425,15 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity { private void startCheckPattern(final List<LockPatternView.Cell> pattern, final Intent intent) { if (pattern.size() < LockPatternUtils.MIN_PATTERN_REGISTER_FAIL) { onPatternChecked(pattern, false, intent, 0); onPatternChecked(pattern, false, intent, 0, mEffectiveUserId); return; } final int localEffectiveUserId = mEffectiveUserId; mPendingLockCheck = LockPatternChecker.checkPattern( mLockPatternUtils, pattern, UserHandle.myUserId(), localEffectiveUserId, new LockPatternChecker.OnCheckCallback() { @Override public void onChecked(boolean matched, int timeoutMs) { Loading @@ -438,20 +444,21 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity { intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD, LockPatternUtils.patternToString(pattern)); } onPatternChecked(pattern, matched, intent, timeoutMs); onPatternChecked(pattern, matched, intent, timeoutMs, localEffectiveUserId); } }); } private void onPatternChecked(List<LockPatternView.Cell> pattern, boolean matched, Intent intent, int timeoutMs) { boolean matched, Intent intent, int timeoutMs, int effectiveUserId) { mLockPatternView.setEnabled(true); if (matched) { startDisappearAnimation(intent); } else { if (timeoutMs > 0) { long deadline = mLockPatternUtils.setLockoutAttemptDeadline( UserHandle.myUserId(), timeoutMs); effectiveUserId, timeoutMs); handleAttemptLockout(deadline); } else { updateStage(Stage.NeedToUnlockWrong); Loading
src/com/android/settings/Utils.java +12 −1 Original line number Diff line number Diff line Loading @@ -1235,4 +1235,15 @@ public final class Utils { Spannable.SPAN_INCLUSIVE_INCLUSIVE); return str; } public static int getEffectiveUserId(Context context) { UserManager um = UserManager.get(context); if (um != null) { return um.getCredentialOwnerProfile(UserHandle.myUserId()); } else { Log.e(TAG, "Unable to acquire UserManager"); return UserHandle.myUserId(); } } }