Fix Continous loop in unifed screenlock when trying to Trust a CA cert
Cause: with unified screenlock, ConfirmDeviceCredentialActivity didn't forward result with FLAG_ACTIVITY_FORWARD_RESULT Also, fixed that ConfirmDeviceCredentialActivity didn't allow fingerprint authenication in unified screenlock after keystore unlocked. In ChooseLockSettingsHelper, add one new util function to allow extra option to set returnCredentials to false while external to true. Set StrongAuth to "not required" when it has been successfully unlocked. Test: 1. PO Unified Screenlock/Work Challenge x fingerprint -> ok to trust cert (Also, no credential is returned in intent) 2. WorkMode off -> Reboot -> turn on Work mode -> no fingerprint option, PIN unlock successful to turn work mode on Bug: 28752364 Change-Id: I6dc8865e8f005545f8577d7731afb4495647062b
This commit is contained in:
@@ -187,7 +187,7 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity {
|
||||
boolean isProfile = Utils.isManagedProfile(
|
||||
UserManager.get(getActivity()), mEffectiveUserId);
|
||||
// Map boolean flags to an index by isStrongAuth << 2 + isProfile << 1 + isAlpha.
|
||||
int index = ((mIsStrongAuthRequired ? 1 : 0) << 2) + ((isProfile ? 1 : 0 ) << 1)
|
||||
int index = ((mIsStrongAuthRequired ? 1 : 0) << 2) + ((isProfile ? 1 : 0) << 1)
|
||||
+ (mIsAlpha ? 1 : 0);
|
||||
return DETAIL_TEXTS[index];
|
||||
}
|
||||
@@ -356,9 +356,11 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity {
|
||||
boolean matched = false;
|
||||
if (token != null) {
|
||||
matched = true;
|
||||
intent.putExtra(
|
||||
ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN,
|
||||
token);
|
||||
if (mReturnCredentials) {
|
||||
intent.putExtra(
|
||||
ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN,
|
||||
token);
|
||||
}
|
||||
}
|
||||
mCredentialCheckResultTracker.setResult(matched, intent, timeoutMs,
|
||||
localUserId);
|
||||
@@ -382,7 +384,7 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity {
|
||||
@Override
|
||||
public void onChecked(boolean matched, int timeoutMs) {
|
||||
mPendingLockCheck = null;
|
||||
if (matched && isInternalActivity()) {
|
||||
if (matched && isInternalActivity() && mReturnCredentials) {
|
||||
intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_TYPE,
|
||||
mIsAlpha ? StorageManager.CRYPT_TYPE_PASSWORD
|
||||
: StorageManager.CRYPT_TYPE_PIN);
|
||||
|
Reference in New Issue
Block a user