Merge "Fix crash when changing encrypt with credential" into nyc-dev

This commit is contained in:
Adrian Roos
2016-02-26 00:11:07 +00:00
committed by Android (Google) Code Review
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
|| requestCode == ENABLE_ENCRYPTION_REQUEST) {
if (resultCode != RESULT_CANCELED) {
if (resultCode != RESULT_CANCELED || mForChangeCredRequiredForBoot) {
getActivity().setResult(resultCode, data);
finish();
}

View File

@@ -17,6 +17,7 @@
package com.android.settings;
import android.app.Fragment;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
@@ -70,7 +71,10 @@ abstract class SaveChosenLockWorkerBase extends Fragment {
mUtils.setSeparateProfileChallengeEnabled(mUserId, true);
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);
}

View File

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