diff options
author | Adrian Roos <roosa@google.com> | 2015-04-28 22:09:35 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-04-28 22:09:44 +0000 |
commit | fb4c4de81d72faa13bd4f0629b0272d2668d884b (patch) | |
tree | 693ce21a9f4004d60f11161764823f14cb9ec0ad /src/com | |
parent | 28077b9cc86388f9b5dfa29a79a5a42c3d545d29 (diff) | |
parent | 5437588abd69bf3eff59684528aaf50e09b6cffc (diff) | |
download | packages_apps_Settings-fb4c4de81d72faa13bd4f0629b0272d2668d884b.tar.gz packages_apps_Settings-fb4c4de81d72faa13bd4f0629b0272d2668d884b.tar.bz2 packages_apps_Settings-fb4c4de81d72faa13bd4f0629b0272d2668d884b.zip |
Merge "Require explicit userId in LockPatternUtils" into mnc-dev
Diffstat (limited to 'src/com')
18 files changed, 112 insertions, 69 deletions
diff --git a/src/com/android/settings/ChooseLockGeneric.java b/src/com/android/settings/ChooseLockGeneric.java index a3bd5a108..4b2de72a9 100644 --- a/src/com/android/settings/ChooseLockGeneric.java +++ b/src/com/android/settings/ChooseLockGeneric.java @@ -29,6 +29,7 @@ import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.os.Process; +import android.os.UserHandle; import android.preference.Preference; import android.preference.PreferenceScreen; import android.security.KeyStore; @@ -168,7 +169,7 @@ public class ChooseLockGeneric extends SettingsActivity { Preference preference) { final String key = preference.getKey(); - if (!isUnlockMethodSecure(key) && mLockPatternUtils.isSecure()) { + if (!isUnlockMethodSecure(key) && mLockPatternUtils.isSecure(UserHandle.myUserId())) { // Show the disabling FRP warning only when the user is switching from a secure // unlock method to an insecure one showFactoryResetProtectionWarningDialog(key); @@ -268,10 +269,10 @@ public class ChooseLockGeneric extends SettingsActivity { } private String getKeyForCurrent() { - if (mLockPatternUtils.isLockScreenDisabled()) { + if (mLockPatternUtils.isLockScreenDisabled(UserHandle.myUserId())) { return KEY_UNLOCK_SET_OFF; } - switch (mLockPatternUtils.getKeyguardStoredPasswordQuality()) { + switch (mLockPatternUtils.getKeyguardStoredPasswordQuality(UserHandle.myUserId())) { case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING: return KEY_UNLOCK_SET_PATTERN; case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC: @@ -474,8 +475,9 @@ public class ChooseLockGeneric extends SettingsActivity { } startActivityForResult(intent, CHOOSE_LOCK_REQUEST); } else if (quality == DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED) { - mChooseLockSettingsHelper.utils().clearLock(); - mChooseLockSettingsHelper.utils().setLockScreenDisabled(disabled); + mChooseLockSettingsHelper.utils().clearLock(UserHandle.myUserId()); + mChooseLockSettingsHelper.utils().setLockScreenDisabled(disabled, + UserHandle.myUserId()); removeAllFingerprintTemplates(); getActivity().setResult(Activity.RESULT_OK); finish(); @@ -502,7 +504,7 @@ public class ChooseLockGeneric extends SettingsActivity { } private int getResIdForFactoryResetProtectionWarningTitle() { - switch (mLockPatternUtils.getKeyguardStoredPasswordQuality()) { + switch (mLockPatternUtils.getKeyguardStoredPasswordQuality(UserHandle.myUserId())) { case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING: return R.string.unlock_disable_lock_pattern_summary; case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC: diff --git a/src/com/android/settings/ChooseLockPassword.java b/src/com/android/settings/ChooseLockPassword.java index e15d3fc4e..0817eeb0e 100644 --- a/src/com/android/settings/ChooseLockPassword.java +++ b/src/com/android/settings/ChooseLockPassword.java @@ -31,6 +31,7 @@ import android.inputmethodservice.KeyboardView; import android.os.Bundle; import android.os.Handler; import android.os.Message; +import android.os.UserHandle; import android.text.Editable; import android.text.InputType; import android.text.Selection; @@ -200,24 +201,31 @@ public class ChooseLockPassword extends SettingsActivity { throw new SecurityException("Fragment contained in wrong activity"); } mRequestedQuality = Math.max(intent.getIntExtra(LockPatternUtils.PASSWORD_TYPE_KEY, - mRequestedQuality), mLockPatternUtils.getRequestedPasswordQuality()); + mRequestedQuality), mLockPatternUtils.getRequestedPasswordQuality( + UserHandle.myUserId())); mPasswordMinLength = Math.max(Math.max( LockPatternUtils.MIN_LOCK_PASSWORD_SIZE, intent.getIntExtra(PASSWORD_MIN_KEY, mPasswordMinLength)), - mLockPatternUtils.getRequestedMinimumPasswordLength()); + mLockPatternUtils.getRequestedMinimumPasswordLength(UserHandle.myUserId())); mPasswordMaxLength = intent.getIntExtra(PASSWORD_MAX_KEY, mPasswordMaxLength); mPasswordMinLetters = Math.max(intent.getIntExtra(PASSWORD_MIN_LETTERS_KEY, - mPasswordMinLetters), mLockPatternUtils.getRequestedPasswordMinimumLetters()); + mPasswordMinLetters), mLockPatternUtils.getRequestedPasswordMinimumLetters( + UserHandle.myUserId())); mPasswordMinUpperCase = Math.max(intent.getIntExtra(PASSWORD_MIN_UPPERCASE_KEY, - mPasswordMinUpperCase), mLockPatternUtils.getRequestedPasswordMinimumUpperCase()); + mPasswordMinUpperCase), mLockPatternUtils.getRequestedPasswordMinimumUpperCase( + UserHandle.myUserId())); mPasswordMinLowerCase = Math.max(intent.getIntExtra(PASSWORD_MIN_LOWERCASE_KEY, - mPasswordMinLowerCase), mLockPatternUtils.getRequestedPasswordMinimumLowerCase()); + mPasswordMinLowerCase), mLockPatternUtils.getRequestedPasswordMinimumLowerCase( + UserHandle.myUserId())); mPasswordMinNumeric = Math.max(intent.getIntExtra(PASSWORD_MIN_NUMERIC_KEY, - mPasswordMinNumeric), mLockPatternUtils.getRequestedPasswordMinimumNumeric()); + mPasswordMinNumeric), mLockPatternUtils.getRequestedPasswordMinimumNumeric( + UserHandle.myUserId())); mPasswordMinSymbols = Math.max(intent.getIntExtra(PASSWORD_MIN_SYMBOLS_KEY, - mPasswordMinSymbols), mLockPatternUtils.getRequestedPasswordMinimumSymbols()); + mPasswordMinSymbols), mLockPatternUtils.getRequestedPasswordMinimumSymbols( + UserHandle.myUserId())); mPasswordMinNonLetter = Math.max(intent.getIntExtra(PASSWORD_MIN_NONLETTER_KEY, - mPasswordMinNonLetter), mLockPatternUtils.getRequestedPasswordMinimumNonLetter()); + mPasswordMinNonLetter), mLockPatternUtils.getRequestedPasswordMinimumNonLetter( + UserHandle.myUserId())); mChooseLockSettingsHelper = new ChooseLockSettingsHelper(getActivity()); } @@ -448,7 +456,7 @@ public class ChooseLockPassword extends SettingsActivity { return getString(R.string.lockpassword_password_requires_digit); } } - if(mLockPatternUtils.checkPasswordHistory(password)) { + if(mLockPatternUtils.checkPasswordHistory(password, UserHandle.myUserId())) { return getString(mIsAlphaMode ? R.string.lockpassword_password_recently_used : R.string.lockpassword_pin_recently_used); } @@ -473,15 +481,17 @@ public class ChooseLockPassword extends SettingsActivity { } } else if (mUiStage == Stage.NeedToConfirm) { if (mFirstPin.equals(pin)) { - boolean wasSecureBefore = mLockPatternUtils.isSecure(); + boolean wasSecureBefore = mLockPatternUtils.isSecure(UserHandle.myUserId()); final boolean required = getActivity().getIntent().getBooleanExtra( EncryptionInterstitial.EXTRA_REQUIRE_PASSWORD, true); mLockPatternUtils.setCredentialRequiredToDecrypt(required); - mLockPatternUtils.saveLockPassword(pin, mCurrentPassword, mRequestedQuality); + mLockPatternUtils.saveLockPassword(pin, mCurrentPassword, mRequestedQuality, + UserHandle.myUserId()); if (mHasChallenge) { Intent intent = new Intent(); - byte[] token = mLockPatternUtils.verifyPassword(pin, mChallenge); + byte[] token = mLockPatternUtils.verifyPassword(pin, mChallenge, + UserHandle.myUserId()); intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, token); getActivity().setResult(RESULT_FINISHED, intent); } else { diff --git a/src/com/android/settings/ChooseLockPattern.java b/src/com/android/settings/ChooseLockPattern.java index e3b7d4b61..99e8d2490 100644 --- a/src/com/android/settings/ChooseLockPattern.java +++ b/src/com/android/settings/ChooseLockPattern.java @@ -31,6 +31,7 @@ import android.app.Fragment; import android.content.Context; import android.content.Intent; import android.os.Bundle; +import android.os.UserHandle; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; @@ -603,18 +604,18 @@ public class ChooseLockPattern extends SettingsActivity { private void saveChosenPatternAndFinish() { if (mDone) return; LockPatternUtils utils = mChooseLockSettingsHelper.utils(); - final boolean lockVirgin = !utils.isPatternEverChosen(); + final boolean lockVirgin = !utils.isPatternEverChosen(UserHandle.myUserId()); - boolean wasSecureBefore = utils.isSecure(); + boolean wasSecureBefore = utils.isSecure(UserHandle.myUserId()); final boolean required = getActivity().getIntent().getBooleanExtra( EncryptionInterstitial.EXTRA_REQUIRE_PASSWORD, true); utils.setCredentialRequiredToDecrypt(required); - utils.saveLockPattern(mChosenPattern, mCurrentPattern); + utils.saveLockPattern(mChosenPattern, mCurrentPattern, UserHandle.myUserId()); if (lockVirgin) { - utils.setVisiblePatternEnabled(true); + utils.setVisiblePatternEnabled(true, UserHandle.myUserId()); } if (!wasSecureBefore) { @@ -623,7 +624,8 @@ public class ChooseLockPattern extends SettingsActivity { if (mHasChallenge) { Intent intent = new Intent(); - byte[] token = utils.verifyPattern(mChosenPattern, mChallenge); + byte[] token = utils.verifyPattern(mChosenPattern, mChallenge, + UserHandle.myUserId()); intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, token); getActivity().setResult(RESULT_FINISHED, intent); } else { diff --git a/src/com/android/settings/ChooseLockSettingsHelper.java b/src/com/android/settings/ChooseLockSettingsHelper.java index c9f20ffa8..8b8d97647 100644 --- a/src/com/android/settings/ChooseLockSettingsHelper.java +++ b/src/com/android/settings/ChooseLockSettingsHelper.java @@ -21,6 +21,7 @@ import android.app.Activity; import android.app.Fragment; import android.app.admin.DevicePolicyManager; import android.content.Intent; +import android.os.UserHandle; import com.android.internal.widget.LockPatternUtils; @@ -116,7 +117,7 @@ public final class ChooseLockSettingsHelper { boolean returnCredentials, boolean external, boolean hasChallenge, long challenge) { boolean launched = false; - switch (mLockPatternUtils.getKeyguardStoredPasswordQuality()) { + switch (mLockPatternUtils.getKeyguardStoredPasswordQuality(UserHandle.myUserId())) { 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 bec3a45a2..099408692 100644 --- a/src/com/android/settings/ConfirmLockPassword.java +++ b/src/com/android/settings/ConfirmLockPassword.java @@ -17,6 +17,7 @@ package com.android.settings; import android.annotation.Nullable; +import android.os.UserHandle; import android.text.TextUtils; import com.android.internal.logging.MetricsLogger; import com.android.internal.widget.LockPatternUtils; @@ -90,7 +91,8 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - final int storedQuality = mLockPatternUtils.getKeyguardStoredPasswordQuality(); + final int storedQuality = mLockPatternUtils.getKeyguardStoredPasswordQuality( + UserHandle.myUserId()); View view = inflater.inflate(R.layout.confirm_lock_password, null); mPasswordEntry = (TextView) view.findViewById(R.id.password_entry); @@ -156,7 +158,7 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity { @Override public void onResume() { super.onResume(); - long deadline = mLockPatternUtils.getLockoutAttemptDeadline(); + long deadline = mLockPatternUtils.getLockoutAttemptDeadline(UserHandle.myUserId()); if (deadline != 0) { handleAttemptLockout(deadline); } @@ -185,13 +187,14 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity { if (getActivity() instanceof ConfirmLockPassword.InternalActivity) { long challenge = getActivity().getIntent().getLongExtra( ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE, 0); - byte[] token = mLockPatternUtils.verifyPassword(pin, challenge); + byte[] token = mLockPatternUtils.verifyPassword(pin, challenge, + UserHandle.myUserId()); if (token != null) { matched = true; intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, token); } } - } else if (mLockPatternUtils.checkPassword(pin)) { + } else if (mLockPatternUtils.checkPassword(pin, UserHandle.myUserId())) { matched = true; if (getActivity() instanceof ConfirmLockPassword.InternalActivity) { intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_TYPE, @@ -206,7 +209,8 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity { getActivity().finish(); } else { if (++mNumWrongConfirmAttempts >= LockPatternUtils.FAILED_ATTEMPTS_BEFORE_TIMEOUT) { - long deadline = mLockPatternUtils.setLockoutAttemptDeadline(); + long deadline = mLockPatternUtils.setLockoutAttemptDeadline( + UserHandle.myUserId()); handleAttemptLockout(deadline); } else { showError(getErrorMessage()); diff --git a/src/com/android/settings/ConfirmLockPattern.java b/src/com/android/settings/ConfirmLockPattern.java index 420a7f8d0..2d0d11778 100644 --- a/src/com/android/settings/ConfirmLockPattern.java +++ b/src/com/android/settings/ConfirmLockPattern.java @@ -28,6 +28,7 @@ import android.content.Intent; import android.os.CountDownTimer; import android.os.SystemClock; import android.os.Bundle; +import android.os.UserHandle; import android.os.storage.StorageManager; import android.view.MenuItem; import android.widget.TextView; @@ -135,7 +136,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()) { + if (!mLockPatternUtils.isLockPatternEnabled(UserHandle.myUserId())) { getActivity().setResult(Activity.RESULT_OK); getActivity().finish(); } @@ -168,7 +169,7 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity { super.onResume(); // if the user is currently locked out, enforce it. - long deadline = mLockPatternUtils.getLockoutAttemptDeadline(); + long deadline = mLockPatternUtils.getLockoutAttemptDeadline(UserHandle.myUserId()); if (deadline != 0) { handleAttemptLockout(deadline); } else if (!mLockPatternView.isEnabled()) { @@ -276,13 +277,14 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity { if (getActivity() instanceof ConfirmLockPattern.InternalActivity) { long challenge = getActivity().getIntent().getLongExtra( ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE, 0); - byte[] token = mLockPatternUtils.verifyPattern(pattern, challenge); + byte[] token = mLockPatternUtils.verifyPattern(pattern, challenge, + UserHandle.myUserId()); if (token != null) { matched = true; intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, token); } } - } else if (mLockPatternUtils.checkPattern(pattern)) { + } else if (mLockPatternUtils.checkPattern(pattern, UserHandle.myUserId())) { matched = true; if (getActivity() instanceof ConfirmLockPattern.InternalActivity) { intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_TYPE, @@ -300,7 +302,8 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity { if (pattern.size() >= LockPatternUtils.MIN_PATTERN_REGISTER_FAIL && ++mNumWrongConfirmAttempts >= LockPatternUtils.FAILED_ATTEMPTS_BEFORE_TIMEOUT) { - long deadline = mLockPatternUtils.setLockoutAttemptDeadline(); + long deadline = mLockPatternUtils.setLockoutAttemptDeadline( + UserHandle.myUserId()); handleAttemptLockout(deadline); } else { updateStage(Stage.NeedToUnlockWrong); diff --git a/src/com/android/settings/CredentialStorage.java b/src/com/android/settings/CredentialStorage.java index 8506964d8..81e0a4641 100644 --- a/src/com/android/settings/CredentialStorage.java +++ b/src/com/android/settings/CredentialStorage.java @@ -200,7 +200,8 @@ public final class CredentialStorage extends Activity { * Returns true if the currently set key guard matches our minimum quality requirements. */ private boolean checkKeyGuardQuality() { - int quality = new LockPatternUtils(this).getActivePasswordQuality(); + int quality = new LockPatternUtils(this).getActivePasswordQuality( + UserHandle.myUserId()); return (quality >= MIN_PASSWORD_QUALITY); } diff --git a/src/com/android/settings/CryptKeeperConfirm.java b/src/com/android/settings/CryptKeeperConfirm.java index 77a1c4563..513a42871 100644 --- a/src/com/android/settings/CryptKeeperConfirm.java +++ b/src/com/android/settings/CryptKeeperConfirm.java @@ -120,8 +120,10 @@ public class CryptKeeperConfirm extends InstrumentedFragment { // 1. The owner info. LockPatternUtils utils = new LockPatternUtils(getActivity()); - utils.setVisiblePatternEnabled(utils.isVisiblePatternEnabled()); - if (utils.isOwnerInfoEnabled()) { + utils.setVisiblePatternEnabled( + utils.isVisiblePatternEnabled(UserHandle.USER_OWNER), + UserHandle.USER_OWNER); + if (utils.isOwnerInfoEnabled(UserHandle.USER_OWNER)) { utils.setOwnerInfo(utils.getOwnerInfo(UserHandle.USER_OWNER), UserHandle.USER_OWNER); } diff --git a/src/com/android/settings/CryptKeeperSettings.java b/src/com/android/settings/CryptKeeperSettings.java index 2e4aeb89f..c5a06eb64 100644 --- a/src/com/android/settings/CryptKeeperSettings.java +++ b/src/com/android/settings/CryptKeeperSettings.java @@ -27,6 +27,7 @@ import android.content.IntentFilter; import android.content.res.Resources; import android.os.BatteryManager; import android.os.Bundle; +import android.os.UserHandle; import android.os.storage.StorageManager; import android.preference.Preference; import android.text.TextUtils; @@ -160,7 +161,7 @@ public class CryptKeeperSettings extends InstrumentedFragment { Resources res = getActivity().getResources(); ChooseLockSettingsHelper helper = new ChooseLockSettingsHelper(getActivity(), this); - if (helper.utils().getKeyguardStoredPasswordQuality() + if (helper.utils().getKeyguardStoredPasswordQuality(UserHandle.myUserId()) == DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED) { showFinalConfirmation(StorageManager.CRYPT_TYPE_DEFAULT, ""); return true; diff --git a/src/com/android/settings/EncryptionInterstitial.java b/src/com/android/settings/EncryptionInterstitial.java index 9b6444cde..794005b0b 100644 --- a/src/com/android/settings/EncryptionInterstitial.java +++ b/src/com/android/settings/EncryptionInterstitial.java @@ -33,6 +33,7 @@ import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.Intent; import android.os.Bundle; +import android.os.UserHandle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -149,7 +150,7 @@ public class EncryptionInterstitial extends SettingsActivity { switch(dialogId) { case ACCESSIBILITY_WARNING_DIALOG: { final int quality = new LockPatternUtils(getActivity()) - .getKeyguardStoredPasswordQuality(); + .getKeyguardStoredPasswordQuality(UserHandle.myUserId()); final int titleId; final int messageId; switch (quality) { diff --git a/src/com/android/settings/OwnerInfoSettings.java b/src/com/android/settings/OwnerInfoSettings.java index 56da63768..9cc78ea2c 100644 --- a/src/com/android/settings/OwnerInfoSettings.java +++ b/src/com/android/settings/OwnerInfoSettings.java @@ -101,7 +101,7 @@ public class OwnerInfoSettings extends DialogFragment implements OnClickListener public void onClick(DialogInterface dialog, int which) { if (which == AlertDialog.BUTTON_POSITIVE) { String info = mOwnerInfo.getText().toString(); - mLockPatternUtils.setOwnerInfoEnabled(!TextUtils.isEmpty(info)); + mLockPatternUtils.setOwnerInfoEnabled(!TextUtils.isEmpty(info), mUserId); mLockPatternUtils.setOwnerInfo(info, mUserId); if (getTargetFragment() instanceof SecuritySettings) { diff --git a/src/com/android/settings/ScreenPinningSettings.java b/src/com/android/settings/ScreenPinningSettings.java index adda01b00..cfeddbbcd 100644 --- a/src/com/android/settings/ScreenPinningSettings.java +++ b/src/com/android/settings/ScreenPinningSettings.java @@ -20,6 +20,7 @@ import android.content.Context; import android.content.Intent; import android.content.res.Resources; import android.os.Bundle; +import android.os.UserHandle; import android.preference.Preference; import android.preference.Preference.OnPreferenceChangeListener; import android.preference.PreferenceScreen; @@ -103,8 +104,9 @@ public class ScreenPinningSettings extends SettingsPreferenceFragment private boolean setScreenLockUsed(boolean isEnabled) { if (isEnabled) { LockPatternUtils lockPatternUtils = new LockPatternUtils(getActivity()); - if (lockPatternUtils.getKeyguardStoredPasswordQuality() - == DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED) { + int passwordQuality = lockPatternUtils + .getKeyguardStoredPasswordQuality(UserHandle.myUserId()); + if (passwordQuality == DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED) { Intent chooseLockIntent = new Intent(DevicePolicyManager.ACTION_SET_NEW_PASSWORD); chooseLockIntent.putExtra( ChooseLockGeneric.ChooseLockGenericFragment.MINIMUM_QUALITY_KEY, @@ -123,7 +125,8 @@ public class ScreenPinningSettings extends SettingsPreferenceFragment super.onActivityResult(requestCode, resultCode, data); if (requestCode == CHANGE_LOCK_METHOD_REQUEST) { LockPatternUtils lockPatternUtils = new LockPatternUtils(getActivity()); - boolean validPassQuality = lockPatternUtils.getKeyguardStoredPasswordQuality() + boolean validPassQuality = lockPatternUtils.getKeyguardStoredPasswordQuality( + UserHandle.myUserId()) != DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED; setScreenLockUsed(validPassQuality); // Make sure the screen updates. @@ -132,7 +135,8 @@ public class ScreenPinningSettings extends SettingsPreferenceFragment } private int getCurrentSecurityTitle() { - int quality = mLockPatternUtils.getKeyguardStoredPasswordQuality(); + int quality = mLockPatternUtils.getKeyguardStoredPasswordQuality( + UserHandle.myUserId()); switch (quality) { case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC: case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX: @@ -142,7 +146,7 @@ public class ScreenPinningSettings extends SettingsPreferenceFragment case DevicePolicyManager.PASSWORD_QUALITY_COMPLEX: return R.string.screen_pinning_unlock_password; case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING: - if (mLockPatternUtils.isLockPatternEnabled()) { + if (mLockPatternUtils.isLockPatternEnabled(UserHandle.myUserId())) { return R.string.screen_pinning_unlock_pattern; } } diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java index 132281fa0..1c0f445ba 100644 --- a/src/com/android/settings/SecuritySettings.java +++ b/src/com/android/settings/SecuritySettings.java @@ -111,6 +111,8 @@ public class SecuritySettings extends SettingsPreferenceFragment // Only allow one trust agent on the platform. private static final boolean ONLY_ONE_TRUST_AGENT = true; + private static final int MY_USER_ID = UserHandle.myUserId(); + private DevicePolicyManager mDPM; private SubscriptionManager mSubscriptionManager; @@ -160,14 +162,14 @@ public class SecuritySettings extends SettingsPreferenceFragment private static int getResIdForLockUnlockScreen(Context context, LockPatternUtils lockPatternUtils) { int resid = 0; - if (!lockPatternUtils.isSecure()) { - if (lockPatternUtils.isLockScreenDisabled()) { + if (!lockPatternUtils.isSecure(MY_USER_ID)) { + if (lockPatternUtils.isLockScreenDisabled(MY_USER_ID)) { resid = R.xml.security_settings_lockscreen; } else { resid = R.xml.security_settings_chooser; } } else { - switch (lockPatternUtils.getKeyguardStoredPasswordQuality()) { + switch (lockPatternUtils.getKeyguardStoredPasswordQuality(MY_USER_ID)) { case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING: resid = R.xml.security_settings_pattern; break; @@ -204,7 +206,7 @@ public class SecuritySettings extends SettingsPreferenceFragment addPreferencesFromResource(resid); // Add options for device encryption - mIsPrimary = UserHandle.myUserId() == UserHandle.USER_OWNER; + mIsPrimary = MY_USER_ID == UserHandle.USER_OWNER; mOwnerInfoPref = findPreference(KEY_OWNER_INFO_SETTINGS); if (mOwnerInfoPref != null) { @@ -304,7 +306,7 @@ public class SecuritySettings extends SettingsPreferenceFragment mToggleAppInstallation.setChecked(isNonMarketAppsAllowed()); // Side loading of apps. // Disable for restricted profiles. For others, check if policy disallows it. - mToggleAppInstallation.setEnabled(!um.getUserInfo(UserHandle.myUserId()).isRestricted()); + mToggleAppInstallation.setEnabled(!um.getUserInfo(MY_USER_ID).isRestricted()); if (um.hasUserRestriction(UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES) || um.hasUserRestriction(UserManager.DISALLOW_INSTALL_APPS)) { mToggleAppInstallation.setEnabled(false); @@ -315,7 +317,7 @@ public class SecuritySettings extends SettingsPreferenceFragment (PreferenceGroup)root.findPreference(KEY_ADVANCED_SECURITY); if (advancedCategory != null) { Preference manageAgents = advancedCategory.findPreference(KEY_MANAGE_TRUST_AGENTS); - if (manageAgents != null && !mLockPatternUtils.isSecure()) { + if (manageAgents != null && !mLockPatternUtils.isSecure(MY_USER_ID)) { manageAgents.setEnabled(false); manageAgents.setSummary(R.string.disabled_because_no_backup_security); } @@ -348,7 +350,8 @@ public class SecuritySettings extends SettingsPreferenceFragment final List<Fingerprint> items = fpm.getEnrolledFingerprints(); final int fingerprintCount = items != null ? items.size() : 0; final String clazz; - boolean hasPassword = mChooseLockSettingsHelper.utils().getActivePasswordQuality() + boolean hasPassword = mChooseLockSettingsHelper.utils().getActivePasswordQuality( + MY_USER_ID) != DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED; if (fingerprintCount > 0) { fingerprintPreference.setSummary(getResources().getQuantityString( @@ -368,7 +371,7 @@ public class SecuritySettings extends SettingsPreferenceFragment } private void addTrustAgentSettings(PreferenceGroup securityCategory) { - final boolean hasSecurity = mLockPatternUtils.isSecure(); + final boolean hasSecurity = mLockPatternUtils.isSecure(MY_USER_ID); ArrayList<TrustAgentComponentInfo> agents = getActiveTrustAgents(getPackageManager(), mLockPatternUtils, mDPM); for (int i = 0; i < agents.size(); i++) { @@ -438,7 +441,7 @@ public class SecuritySettings extends SettingsPreferenceFragment ArrayList<TrustAgentComponentInfo> result = new ArrayList<TrustAgentComponentInfo>(); List<ResolveInfo> resolveInfos = pm.queryIntentServices(TRUST_AGENT_INTENT, PackageManager.GET_META_DATA); - List<ComponentName> enabledTrustAgents = utils.getEnabledTrustAgents(); + List<ComponentName> enabledTrustAgents = utils.getEnabledTrustAgents(MY_USER_ID); boolean disableTrustAgents = (dpm.getKeyguardDisabledFeatures(null) & DevicePolicyManager.KEYGUARD_DISABLE_TRUST_AGENTS) != 0; @@ -597,10 +600,12 @@ public class SecuritySettings extends SettingsPreferenceFragment final LockPatternUtils lockPatternUtils = mChooseLockSettingsHelper.utils(); if (mVisiblePattern != null) { - mVisiblePattern.setChecked(lockPatternUtils.isVisiblePatternEnabled()); + mVisiblePattern.setChecked(lockPatternUtils.isVisiblePatternEnabled( + MY_USER_ID)); } if (mPowerButtonInstantlyLocks != null) { - mPowerButtonInstantlyLocks.setChecked(lockPatternUtils.getPowerButtonInstantlyLocks()); + mPowerButtonInstantlyLocks.setChecked(lockPatternUtils.getPowerButtonInstantlyLocks( + MY_USER_ID)); } if (mShowPassword != null) { @@ -617,8 +622,8 @@ public class SecuritySettings extends SettingsPreferenceFragment public void updateOwnerInfo() { if (mOwnerInfoPref != null) { - mOwnerInfoPref.setSummary(mLockPatternUtils.isOwnerInfoEnabled() - ? mLockPatternUtils.getOwnerInfo(UserHandle.myUserId()) + mOwnerInfoPref.setSummary(mLockPatternUtils.isOwnerInfoEnabled(MY_USER_ID) + ? mLockPatternUtils.getOwnerInfo(MY_USER_ID) : getString(R.string.owner_info_settings_summary)); } } @@ -678,9 +683,9 @@ public class SecuritySettings extends SettingsPreferenceFragment } updateLockAfterPreferenceSummary(); } else if (KEY_VISIBLE_PATTERN.equals(key)) { - lockPatternUtils.setVisiblePatternEnabled((Boolean) value); + lockPatternUtils.setVisiblePatternEnabled((Boolean) value, MY_USER_ID); } else if (KEY_POWER_INSTANTLY_LOCKS.equals(key)) { - mLockPatternUtils.setPowerButtonInstantlyLocks((Boolean) value); + mLockPatternUtils.setPowerButtonInstantlyLocks((Boolean) value, MY_USER_ID); } else if (KEY_SHOW_PASSWORD.equals(key)) { Settings.System.putInt(getContentResolver(), Settings.System.TEXT_SHOW_PASSWORD, ((Boolean) value) ? 1 : 0); @@ -715,7 +720,7 @@ public class SecuritySettings extends SettingsPreferenceFragment public SecuritySearchIndexProvider() { super(); - mIsPrimary = UserHandle.myUserId() == UserHandle.USER_OWNER; + mIsPrimary = MY_USER_ID == UserHandle.USER_OWNER; } @Override @@ -800,7 +805,7 @@ public class SecuritySettings extends SettingsPreferenceFragment // Advanced final LockPatternUtils lockPatternUtils = new LockPatternUtils(context); - if (lockPatternUtils.isSecure()) { + if (lockPatternUtils.isSecure(MY_USER_ID)) { ArrayList<TrustAgentComponentInfo> agents = getActiveTrustAgents(context.getPackageManager(), lockPatternUtils, context.getSystemService(DevicePolicyManager.class)); @@ -835,7 +840,7 @@ public class SecuritySettings extends SettingsPreferenceFragment } // TrustAgent settings disappear when the user has no primary security. - if (!lockPatternUtils.isSecure()) { + if (!lockPatternUtils.isSecure(MY_USER_ID)) { keys.add(KEY_TRUST_AGENT); keys.add(KEY_MANAGE_TRUST_AGENTS); } diff --git a/src/com/android/settings/TrustAgentSettings.java b/src/com/android/settings/TrustAgentSettings.java index 4c6b4ee79..37a86ebb1 100644 --- a/src/com/android/settings/TrustAgentSettings.java +++ b/src/com/android/settings/TrustAgentSettings.java @@ -26,6 +26,7 @@ import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.graphics.drawable.Drawable; import android.os.Bundle; +import android.os.UserHandle; import android.preference.Preference; import android.preference.PreferenceGroup; import android.preference.SwitchPreference; @@ -120,14 +121,16 @@ public class TrustAgentSettings extends SettingsPreferenceFragment implements } private void loadActiveAgents() { - List<ComponentName> activeTrustAgents = mLockPatternUtils.getEnabledTrustAgents(); + List<ComponentName> activeTrustAgents = mLockPatternUtils.getEnabledTrustAgents( + UserHandle.myUserId()); if (activeTrustAgents != null) { mActiveAgents.addAll(activeTrustAgents); } } private void saveActiveAgents() { - mLockPatternUtils.setEnabledTrustAgents(mActiveAgents); + mLockPatternUtils.setEnabledTrustAgents(mActiveAgents, + UserHandle.myUserId()); } ArrayMap<ComponentName, AgentInfo> findAvailableTrustAgents() { diff --git a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java index 609253292..16389cb80 100644 --- a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java @@ -29,6 +29,7 @@ import android.content.pm.ResolveInfo; import android.net.Uri; import android.os.Bundle; import android.os.Handler; +import android.os.UserHandle; import android.provider.Settings; import android.text.TextUtils; import android.view.LayoutInflater; @@ -368,7 +369,7 @@ public class ToggleAccessibilityServicePreferenceFragment private String createConfirmCredentialReasonMessage() { int resId = R.string.enable_service_password_reason; - switch (mLockPatternUtils.getKeyguardStoredPasswordQuality()) { + switch (mLockPatternUtils.getKeyguardStoredPasswordQuality(UserHandle.myUserId())) { case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING: { resId = R.string.enable_service_pattern_reason; } break; diff --git a/src/com/android/settings/notification/AppNotificationSettings.java b/src/com/android/settings/notification/AppNotificationSettings.java index 129c35955..883975a5a 100644 --- a/src/com/android/settings/notification/AppNotificationSettings.java +++ b/src/com/android/settings/notification/AppNotificationSettings.java @@ -26,6 +26,7 @@ import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.ResolveInfo; import android.os.Bundle; +import android.os.UserHandle; import android.preference.Preference; import android.preference.Preference.OnPreferenceChangeListener; import android.preference.SwitchPreference; @@ -191,7 +192,8 @@ public class AppNotificationSettings extends SettingsPreferenceFragment { } private void updateDependents(boolean banned) { - final boolean lockscreenSecure = new LockPatternUtils(getActivity()).isSecure(); + final boolean lockscreenSecure = new LockPatternUtils(getActivity()).isSecure( + UserHandle.myUserId()); final boolean lockscreenNotificationsEnabled = getLockscreenNotificationsEnabled(); final boolean allowPrivate = getLockscreenAllowPrivateNotifications(); diff --git a/src/com/android/settings/notification/NotificationSettings.java b/src/com/android/settings/notification/NotificationSettings.java index 581b7078b..cdff32f26 100644 --- a/src/com/android/settings/notification/NotificationSettings.java +++ b/src/com/android/settings/notification/NotificationSettings.java @@ -36,6 +36,7 @@ import android.os.Bundle; import android.os.Handler; import android.os.Looper; import android.os.Message; +import android.os.UserHandle; import android.os.Vibrator; import android.preference.Preference; import android.preference.Preference.OnPreferenceChangeListener; @@ -116,7 +117,7 @@ public class NotificationSettings extends SettingsPreferenceFragment implements mContext = getActivity(); mPM = mContext.getPackageManager(); mVoiceCapable = Utils.isVoiceCapable(mContext); - mSecure = new LockPatternUtils(getActivity()).isSecure(); + mSecure = new LockPatternUtils(getActivity()).isSecure(UserHandle.myUserId()); mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE); mVibrator = (Vibrator) getActivity().getSystemService(Context.VIBRATOR_SERVICE); diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java index f3b60fc99..cef083335 100644 --- a/src/com/android/settings/users/UserSettings.java +++ b/src/com/android/settings/users/UserSettings.java @@ -357,7 +357,7 @@ public class UserSettings extends SettingsPreferenceFragment private boolean hasLockscreenSecurity() { LockPatternUtils lpu = new LockPatternUtils(getActivity()); - return lpu.isLockPasswordEnabled() || lpu.isLockPatternEnabled(); + return lpu.isSecure(UserHandle.myUserId()); } private void launchChooseLockscreen() { |