diff options
author | Rubin Xu <rubinxu@google.com> | 2019-09-11 17:36:37 +0100 |
---|---|---|
committer | Rubin Xu <rubinxu@google.com> | 2019-10-13 21:20:02 +0100 |
commit | 010116a173ed63e58498ce210101203fea097ac6 (patch) | |
tree | 7947f2e576eff0fe37ae593aaaba87269373e073 /src/com/android/settings/security | |
parent | 4c1bfdfe7384d3d22e40d4ee2e6b154a74ba7cfa (diff) | |
download | packages_apps_Settings-010116a173ed63e58498ce210101203fea097ac6.tar.gz packages_apps_Settings-010116a173ed63e58498ce210101203fea097ac6.tar.bz2 packages_apps_Settings-010116a173ed63e58498ce210101203fea097ac6.zip |
Introduce LockscreenCredential
Bug: 65239740
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.password
Change-Id: Icb73d639291d6d2eda8015e18e93d0906f916bb2
Diffstat (limited to 'src/com/android/settings/security')
-rw-r--r-- | src/com/android/settings/security/CryptKeeperSettings.java | 8 | ||||
-rw-r--r-- | src/com/android/settings/security/LockUnificationPreferenceController.java | 24 |
2 files changed, 14 insertions, 18 deletions
diff --git a/src/com/android/settings/security/CryptKeeperSettings.java b/src/com/android/settings/security/CryptKeeperSettings.java index 6555f56894..aa47b2b4da 100644 --- a/src/com/android/settings/security/CryptKeeperSettings.java +++ b/src/com/android/settings/security/CryptKeeperSettings.java @@ -37,6 +37,7 @@ import android.widget.Button; import androidx.appcompat.app.AlertDialog; import androidx.preference.Preference; +import com.android.internal.widget.LockscreenCredential; import com.android.settings.CryptKeeperConfirm; import com.android.settings.R; import com.android.settings.SettingsActivity; @@ -193,9 +194,10 @@ public class CryptKeeperSettings extends InstrumentedPreferenceFragment { // confirmation prompt; otherwise, go back to the initial state. if (resultCode == Activity.RESULT_OK && data != null) { int type = data.getIntExtra(ChooseLockSettingsHelper.EXTRA_KEY_TYPE, -1); - byte[] password = data.getByteArrayExtra(ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD); - if (!(password == null || password.length == 0)) { - showFinalConfirmation(type, password); + LockscreenCredential password = data.getParcelableExtra( + ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD); + if (password != null && !password.isNone()) { + showFinalConfirmation(type, password.getCredential()); } } } diff --git a/src/com/android/settings/security/LockUnificationPreferenceController.java b/src/com/android/settings/security/LockUnificationPreferenceController.java index bf374de81c..4bac601cf2 100644 --- a/src/com/android/settings/security/LockUnificationPreferenceController.java +++ b/src/com/android/settings/security/LockUnificationPreferenceController.java @@ -32,6 +32,7 @@ import androidx.preference.Preference; import androidx.preference.PreferenceScreen; import com.android.internal.widget.LockPatternUtils; +import com.android.internal.widget.LockscreenCredential; import com.android.settings.R; import com.android.settings.Utils; import com.android.settings.core.PreferenceControllerMixin; @@ -70,8 +71,8 @@ public class LockUnificationPreferenceController extends AbstractPreferenceContr private RestrictedSwitchPreference mUnifyProfile; - private byte[] mCurrentDevicePassword; - private byte[] mCurrentProfilePassword; + private LockscreenCredential mCurrentDevicePassword; + private LockscreenCredential mCurrentProfilePassword; private boolean mKeepDeviceLock; @Override @@ -89,6 +90,8 @@ public class LockUnificationPreferenceController extends AbstractPreferenceContr .getSecurityFeatureProvider() .getLockPatternUtils(context); mProfileUserId = Utils.getManagedProfileId(mUm, MY_USER_ID); + mCurrentDevicePassword = LockscreenCredential.createNone(); + mCurrentProfilePassword = LockscreenCredential.createNone(); } @Override @@ -151,13 +154,13 @@ public class LockUnificationPreferenceController extends AbstractPreferenceContr } else if (requestCode == UNIFY_LOCK_CONFIRM_DEVICE_REQUEST && resultCode == Activity.RESULT_OK) { mCurrentDevicePassword = - data.getByteArrayExtra(ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD); + data.getParcelableExtra(ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD); launchConfirmProfileLock(); return true; } else if (requestCode == UNIFY_LOCK_CONFIRM_PROFILE_REQUEST && resultCode == Activity.RESULT_OK) { mCurrentProfilePassword = - data.getByteArrayExtra(ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD); + data.getParcelableExtra(ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD); unifyLocks(); return true; } @@ -221,17 +224,8 @@ public class LockUnificationPreferenceController extends AbstractPreferenceContr } private void unifyKeepingWorkLock() { - final int profileQuality = - mLockPatternUtils.getKeyguardStoredPasswordQuality(mProfileUserId); - // PASSWORD_QUALITY_SOMETHING means pattern, everything above means PIN/password. - if (profileQuality == DevicePolicyManager.PASSWORD_QUALITY_SOMETHING) { - mLockPatternUtils.saveLockPattern( - LockPatternUtils.byteArrayToPattern(mCurrentProfilePassword), - mCurrentDevicePassword, MY_USER_ID); - } else { - mLockPatternUtils.saveLockPassword( - mCurrentProfilePassword, mCurrentDevicePassword, profileQuality, MY_USER_ID); - } + mLockPatternUtils.setLockCredential( + mCurrentProfilePassword, mCurrentDevicePassword, MY_USER_ID); mLockPatternUtils.setSeparateProfileChallengeEnabled(mProfileUserId, false, mCurrentProfilePassword); final boolean profilePatternVisibility = |