summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/security
diff options
context:
space:
mode:
authorRubin Xu <rubinxu@google.com>2019-09-11 17:36:37 +0100
committerRubin Xu <rubinxu@google.com>2019-10-13 21:20:02 +0100
commit010116a173ed63e58498ce210101203fea097ac6 (patch)
tree7947f2e576eff0fe37ae593aaaba87269373e073 /src/com/android/settings/security
parent4c1bfdfe7384d3d22e40d4ee2e6b154a74ba7cfa (diff)
downloadpackages_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.java8
-rw-r--r--src/com/android/settings/security/LockUnificationPreferenceController.java24
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 =