diff options
author | Andres Morales <anmorales@google.com> | 2015-08-04 16:55:00 -0700 |
---|---|---|
committer | Andres Morales <anmorales@google.com> | 2015-08-05 19:57:51 -0700 |
commit | 7bdffd85ebae7b5b14eef07059cb501451476c7d (patch) | |
tree | 4d934dfc88ecce20022dd5a07fd4654fcff42ff2 /src/com/android | |
parent | 1adca55ffe10f1741e5fb75bf0e7530ca200d712 (diff) | |
download | packages_apps_Settings-7bdffd85ebae7b5b14eef07059cb501451476c7d.zip packages_apps_Settings-7bdffd85ebae7b5b14eef07059cb501451476c7d.tar.gz packages_apps_Settings-7bdffd85ebae7b5b14eef07059cb501451476c7d.tar.bz2 |
fix CC for work profiles
Bug: 22257554
Change-Id: I09f62956d01f91d3014d9fa250aaff68ab5e1a9b
Diffstat (limited to 'src/com/android')
-rw-r--r-- | src/com/android/settings/ChooseLockSettingsHelper.java | 5 | ||||
-rw-r--r-- | src/com/android/settings/ConfirmLockPassword.java | 26 | ||||
-rw-r--r-- | src/com/android/settings/ConfirmLockPattern.java | 27 | ||||
-rw-r--r-- | src/com/android/settings/Utils.java | 13 |
4 files changed, 49 insertions, 22 deletions
diff --git a/src/com/android/settings/ChooseLockSettingsHelper.java b/src/com/android/settings/ChooseLockSettingsHelper.java index c07186f..327e622 100644 --- a/src/com/android/settings/ChooseLockSettingsHelper.java +++ b/src/com/android/settings/ChooseLockSettingsHelper.java @@ -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 diff --git a/src/com/android/settings/ConfirmLockPassword.java b/src/com/android/settings/ConfirmLockPassword.java index 5a8a47e..1c42045 100644 --- a/src/com/android/settings/ConfirmLockPassword.java +++ b/src/com/android/settings/ConfirmLockPassword.java @@ -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; @@ -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() { @@ -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); @@ -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); @@ -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 { @@ -314,7 +317,7 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity { return; } - onPasswordChecked(false, intent, 0); + onPasswordChecked(false, intent, 0, mEffectiveUserId); } private boolean isInternalActivity() { @@ -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) { @@ -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) { @@ -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); } }); } @@ -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()); diff --git a/src/com/android/settings/ConfirmLockPattern.java b/src/com/android/settings/ConfirmLockPattern.java index 4f8d726..62a8ecd 100644 --- a/src/com/android/settings/ConfirmLockPattern.java +++ b/src/com/android/settings/ConfirmLockPattern.java @@ -102,6 +102,8 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity { private AppearAnimationUtils mAppearAnimationUtils; private DisappearAnimationUtils mDisappearAnimationUtils; + private int mEffectiveUserId; + // required constructor for fragments public ConfirmLockPatternFragment() { @@ -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 @@ -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(); } @@ -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()) { @@ -385,7 +388,7 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity { return; } - onPatternChecked(pattern, false, intent, 0); + onPatternChecked(pattern, false, intent, 0, mEffectiveUserId); } private boolean isInternalActivity() { @@ -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) { @@ -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); } }); } @@ -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) { @@ -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); diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java index a18d860..d25d8c3 100644 --- a/src/com/android/settings/Utils.java +++ b/src/com/android/settings/Utils.java @@ -1235,4 +1235,15 @@ public final class Utils { Spannable.SPAN_INCLUSIVE_INCLUSIVE); return str; } -}
\ No newline at end of file + + 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(); + } + } +} + |