Accessibility no longer overrides strong encryption (Settings).

Updating the accessibility layer behavior to reflect the new
model where accessibility no longer overrides strong encryption.
Now enabling an accessibility service lowers the encryption
level but the user can bump it up in settings if desired.

bug:17881324

Change-Id: Iaf46cbabf1c19c193ea39b35add27aaa4ff509e4
This commit is contained in:
Svetoslav
2014-10-17 14:37:02 -07:00
parent 3ea423ae0f
commit 40ca78f6f3
2 changed files with 16 additions and 3 deletions

View File

@@ -331,6 +331,10 @@ public class ChooseLockGeneric extends SettingsActivity {
}
private void updatePreferenceSummaryIfNeeded() {
if (LockPatternUtils.isDeviceEncrypted()) {
return;
}
if (AccessibilityManager.getInstance(getActivity()).getEnabledAccessibilityServiceList(
AccessibilityServiceInfo.FEEDBACK_ALL_MASK).isEmpty()) {
return;

View File

@@ -55,7 +55,7 @@ public class ToggleAccessibilityServicePreferenceFragment
private static final int DIALOG_ID_ENABLE_WARNING = 1;
private static final int DIALOG_ID_DISABLE_WARNING = 2;
public static final int ACTIVITY_REQUEST_CONFIRM_CREDENTIAL = 1;
public static final int ACTIVITY_REQUEST_CONFIRM_CREDENTIAL_FOR_WEAKER_ENCRYPTION = 1;
private LockPatternUtils mLockPatternUtils;
@@ -284,9 +284,17 @@ public class ToggleAccessibilityServicePreferenceFragment
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == ACTIVITY_REQUEST_CONFIRM_CREDENTIAL) {
if (requestCode == ACTIVITY_REQUEST_CONFIRM_CREDENTIAL_FOR_WEAKER_ENCRYPTION) {
if (resultCode == Activity.RESULT_OK) {
handleConfirmServiceEnabled(true);
// The user confirmed that they accept weaker encryption when
// enabling the accessibility service, so change encryption.
// Since we came here asynchronously, check encryption again.
if (LockPatternUtils.isDeviceEncrypted()) {
mLockPatternUtils.clearEncryptionPassword();
Settings.Global.putInt(getContentResolver(),
Settings.Global.REQUIRE_PASSWORD_TO_DECRYPT, 0);
}
} else {
handleConfirmServiceEnabled(false);
}
@@ -302,7 +310,8 @@ public class ToggleAccessibilityServicePreferenceFragment
if (LockPatternUtils.isDeviceEncrypted()) {
String title = createConfirmCredentialReasonMessage();
Intent intent = ConfirmDeviceCredentialActivity.createIntent(title, null);
startActivityForResult(intent, ACTIVITY_REQUEST_CONFIRM_CREDENTIAL);
startActivityForResult(intent,
ACTIVITY_REQUEST_CONFIRM_CREDENTIAL_FOR_WEAKER_ENCRYPTION);
} else {
handleConfirmServiceEnabled(true);
}