Display the correct encryption settings.

* You can no longer try to encrypt the device when it is encrypted.
* Moved the encryption section below the lock screen section. It will be more common to change the lock screen settings.
* If the device doesn't support encryption don't display the encryption section.

Bug: 3384074
Change-Id: I172f5894a3cea57b1b8d03a84f1ecf0ee500c1f3
This commit is contained in:
Jason parks
2011-01-25 09:26:55 -06:00
parent f1dbf55819
commit 4112199ed6
4 changed files with 54 additions and 9 deletions

View File

@@ -583,11 +583,17 @@
<string name="security_passwords_title">Passwords</string> <string name="security_passwords_title">Passwords</string>
<string name="crypt_keeper_settings_title">Device encryption</string> <string name="crypt_keeper_settings_title">Device encryption</string>
<string name="crypt_keeper_encrypt_title">Encrypt data on device</string> <string name="crypt_keeper_encrypt_title">Encrypt data on device</string>
<string name="crypt_keeper_encrypt_summary">Requires you to set a device unlock pin or password</string> <string name="crypt_keeper_encrypt_summary">Requires you to set a device unlock pin or password</string>
<string name="crypt_keeper_confirm_title">Confirm encrypt</string> <string name="crypt_keeper_encrypted_summary">Encrypted</string>
<string name="crypt_keeper_confirm_title">Confirm encryption</string>
<string name="crypt_keeper_desc" product="tablet">You can encrypt your accounts, settings, downloaded applications and their data, media, and other files. Once you encrypt your tablet, you can\'t unencrypt it except by performing a factory data reset, erasing all the data on your tablet.\n\nEncryption takes up to an hour. You must start with a charged battery and keep your tablet plugged in until encryption is complete. If you interrupt the encryption process, you will lose some or all of your data.</string>
<string name="crypt_keeper_desc" product="default">You can encrypt your accounts, settings, downloaded applications and their data, media, and other files. Once you encrypt your phone, you can\'t unencrypt it except by performing a factory data reset, erasing all the data on your phone.\n\nEncryption takes up to an hour. You must start with a charged battery and keep your phone plugged in until encryption is complete. If you interrupt the encryption process, you will lose some or all of your data.</string>
<string name="crypt_keeper_desc">You can encrypt your accounts, settings, downloaded applications and their data, media, and other files. Once you encrypt your tablet, you can\'t unencrypt it except by performing a factory data reset, erasing all the data on your tablet.\n\nEncryption takes up to an hour. You must start with a charged battery and keep your tablet plugged in until encryption is complete. If you interrupt the encryption process, you will lose some or all of your data.</string>
<string name="crypt_keeper_button_text" product="tablet">Encrypt tablet</string> <string name="crypt_keeper_button_text" product="tablet">Encrypt tablet</string>
<string name="crypt_keeper_button_text" product="default">Encrypt phone</string> <string name="crypt_keeper_button_text" product="default">Encrypt phone</string>

View File

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2011 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
android:key="security_category"
android:title="@string/crypt_keeper_settings_title"
>
<Preference
style="?android:preferenceInformationStyle"
android:title="@string/crypt_keeper_encrypt_title"
android:summary="@string/crypt_keeper_encrypted_summary"
/>
</PreferenceCategory>
</PreferenceScreen>

View File

@@ -29,6 +29,7 @@ import android.content.Intent;
import android.database.Cursor; import android.database.Cursor;
import android.location.LocationManager; import android.location.LocationManager;
import android.os.Bundle; import android.os.Bundle;
import android.os.SystemProperties;
import android.os.Vibrator; import android.os.Vibrator;
import android.preference.CheckBoxPreference; import android.preference.CheckBoxPreference;
import android.preference.ListPreference; import android.preference.ListPreference;
@@ -50,7 +51,6 @@ import java.util.Observer;
*/ */
public class SecuritySettings extends SettingsPreferenceFragment public class SecuritySettings extends SettingsPreferenceFragment
implements OnPreferenceChangeListener { implements OnPreferenceChangeListener {
private static final String KEY_ENCRYPTION = "encryption";
// Lock Settings // Lock Settings
private static final String KEY_UNLOCK_SET_OR_CHANGE = "unlock_set_or_change"; private static final String KEY_UNLOCK_SET_OR_CHANGE = "unlock_set_or_change";
@@ -161,12 +161,6 @@ public class SecuritySettings extends SettingsPreferenceFragment
mUseLocation = useLocation; mUseLocation = useLocation;
} }
// Add options for device encryption
// TODO: It still needs to be determined how a device specifies that it supports
// encryption. That mechanism needs to be checked before adding the following code
addPreferencesFromResource(R.xml.security_settings_encryption);
// Add options for lock/unlock screen // Add options for lock/unlock screen
int resid = 0; int resid = 0;
if (!mLockPatternUtils.isSecure()) { if (!mLockPatternUtils.isSecure()) {
@@ -192,6 +186,19 @@ public class SecuritySettings extends SettingsPreferenceFragment
} }
addPreferencesFromResource(resid); addPreferencesFromResource(resid);
// Add options for device encryption
String status = SystemProperties.get("ro.crypto.state", "unsupported");
if ("encrypted".equalsIgnoreCase(status)) {
// The device is currently encrypted
addPreferencesFromResource(R.xml.security_settings_encrypted);
} else if ("unencrypted".equalsIgnoreCase(status)) {
// This device support encryption but isn't encrypted
addPreferencesFromResource(R.xml.security_settings_unencrypted);
}
// lock after preference // lock after preference
mLockAfter = (ListPreference) root.findPreference(KEY_LOCK_AFTER_TIMEOUT); mLockAfter = (ListPreference) root.findPreference(KEY_LOCK_AFTER_TIMEOUT);
if (mLockAfter != null) { if (mLockAfter != null) {