Fix crash when changing encrypt with credential

Bug: 27173979
Change-Id: If8ef7a9342bcb1b0602791df1dc7634b3e980ee7
This commit is contained in:
Adrian Roos
2016-02-25 15:43:24 -08:00
parent b671780528
commit 77181e9478
3 changed files with 7 additions and 2 deletions

View File

@@ -292,7 +292,7 @@ public class ChooseLockGeneric extends SettingsActivity {
} }
} else if (requestCode == CHOOSE_LOCK_REQUEST } else if (requestCode == CHOOSE_LOCK_REQUEST
|| requestCode == ENABLE_ENCRYPTION_REQUEST) { || requestCode == ENABLE_ENCRYPTION_REQUEST) {
if (resultCode != RESULT_CANCELED) { if (resultCode != RESULT_CANCELED || mForChangeCredRequiredForBoot) {
getActivity().setResult(resultCode, data); getActivity().setResult(resultCode, data);
finish(); finish();
} }

View File

@@ -17,6 +17,7 @@
package com.android.settings; package com.android.settings;
import android.app.Fragment; import android.app.Fragment;
import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.AsyncTask; import android.os.AsyncTask;
import android.os.Bundle; import android.os.Bundle;
@@ -70,7 +71,10 @@ abstract class SaveChosenLockWorkerBase extends Fragment {
mUtils.setSeparateProfileChallengeEnabled(mUserId, true); mUtils.setSeparateProfileChallengeEnabled(mUserId, true);
mWasSecureBefore = mUtils.isSecure(mUserId); mWasSecureBefore = mUtils.isSecure(mUserId);
if (UserManager.get(getContext()).getUserInfo(mUserId).isPrimary()) { Context context = getContext();
// If context is null, we're being invoked to change the setCredentialRequiredToDecrypt,
// and we made sure that this is the primary user already.
if (context == null || UserManager.get(context).getUserInfo(mUserId).isPrimary()) {
mUtils.setCredentialRequiredToDecrypt(credentialRequired); mUtils.setCredentialRequiredToDecrypt(credentialRequired);
} }

View File

@@ -1054,6 +1054,7 @@ public class SecuritySettings extends SettingsPreferenceFragment
static boolean canChangeRequireCredentialBeforeStartup(Context context) { static boolean canChangeRequireCredentialBeforeStartup(Context context) {
DevicePolicyManager dpm = context.getSystemService(DevicePolicyManager.class); DevicePolicyManager dpm = context.getSystemService(DevicePolicyManager.class);
return UserManager.get(context).isAdminUser() return UserManager.get(context).isAdminUser()
&& UserManager.get(context).isPrimaryUser()
&& LockPatternUtils.isDeviceEncryptionEnabled() && LockPatternUtils.isDeviceEncryptionEnabled()
&& !dpm.getDoNotAskCredentialsOnBoot(); && !dpm.getDoNotAskCredentialsOnBoot();
} }