am ef2c5ac2: Merge change 8071 into donut

Merge commit 'ef2c5ac2e4c42d0280c4c4839ec7286180fe4be8'

* commit 'ef2c5ac2e4c42d0280c4c4839ec7286180fe4be8':
  Disable suggestion for certain types of text boxes.
This commit is contained in:
Android (Google) Code Review
2009-07-21 15:05:06 -07:00
committed by Android Git Automerger
2 changed files with 29 additions and 17 deletions

View File

@@ -25,6 +25,7 @@ import android.preference.EditTextPreference;
import android.preference.ListPreference; import android.preference.ListPreference;
import android.preference.Preference; import android.preference.Preference;
import android.preference.PreferenceGroup; import android.preference.PreferenceGroup;
import android.text.InputType;
import android.text.TextUtils; import android.text.TextUtils;
import android.text.method.PasswordTransformationMethod; import android.text.method.PasswordTransformationMethod;
@@ -32,6 +33,9 @@ import android.text.method.PasswordTransformationMethod;
* The common class for editing {@link VpnProfile}. * The common class for editing {@link VpnProfile}.
*/ */
class VpnProfileEditor { class VpnProfileEditor {
static final String SECRET_SET_INDICATOR =
new String(new byte[] {(byte) 1, (byte) 0});
private static final String KEY_VPN_NAME = "vpn_name"; private static final String KEY_VPN_NAME = "vpn_name";
private EditTextPreference mName; private EditTextPreference mName;
@@ -95,7 +99,7 @@ class VpnProfileEditor {
* Creates a preference for users to input domain suffices. * Creates a preference for users to input domain suffices.
*/ */
protected EditTextPreference createDomainSufficesPreference(Context c) { protected EditTextPreference createDomainSufficesPreference(Context c) {
mDomainSuffices = createEditTextPreference(c, EditTextPreference pref = mDomainSuffices = createEditTextPreference(c,
R.string.vpn_dns_search_list_title, R.string.vpn_dns_search_list_title,
R.string.vpn_dns_search_list, R.string.vpn_dns_search_list,
mProfile.getDomainSuffices(), mProfile.getDomainSuffices(),
@@ -108,11 +112,12 @@ class VpnProfileEditor {
return true; return true;
} }
}); });
return mDomainSuffices; pref.getEditText().setInputType(InputType.TYPE_TEXT_VARIATION_URI);
return pref;
} }
private Preference createServerNamePreference(Context c) { private Preference createServerNamePreference(Context c) {
mServerName = createEditTextPreference(c, EditTextPreference pref = mServerName = createEditTextPreference(c,
R.string.vpn_vpn_server_title, R.string.vpn_vpn_server_title,
R.string.vpn_vpn_server, R.string.vpn_vpn_server,
mProfile.getServerName(), mProfile.getServerName(),
@@ -125,7 +130,8 @@ class VpnProfileEditor {
return true; return true;
} }
}); });
return mServerName; pref.getEditText().setInputType(InputType.TYPE_TEXT_VARIATION_URI);
return pref;
} }
protected EditTextPreference createEditTextPreference(Context c, int titleId, protected EditTextPreference createEditTextPreference(Context c, int titleId,
@@ -147,9 +153,10 @@ class VpnProfileEditor {
EditTextPreference pref = new EditTextPreference(c); EditTextPreference pref = new EditTextPreference(c);
pref.setTitle(titleId); pref.setTitle(titleId);
pref.setDialogTitle(titleId); pref.setDialogTitle(titleId);
pref.getEditText().setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
pref.getEditText().setTransformationMethod( pref.getEditText().setTransformationMethod(
new PasswordTransformationMethod()); new PasswordTransformationMethod());
pref.setText(value); pref.setText(TextUtils.isEmpty(value) ? "" : SECRET_SET_INDICATOR);
setSecretSummary(pref, fieldNameId, value); setSecretSummary(pref, fieldNameId, value);
pref.setPersistent(true); pref.setPersistent(true);
pref.setOnPreferenceChangeListener(listener); pref.setOnPreferenceChangeListener(listener);

View File

@@ -18,6 +18,7 @@ package com.android.settings.vpn;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.SecuritySettings; import com.android.settings.SecuritySettings;
import static com.android.settings.vpn.VpnProfileEditor.SECRET_SET_INDICATOR;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.app.Dialog; import android.app.Dialog;
@@ -109,6 +110,10 @@ public class VpnSettings extends PreferenceActivity implements
private static final int NO_ERROR = 0; private static final int NO_ERROR = 0;
private static final String NAMESPACE_VPN = "vpn";
private static final String KEY_PREFIX_IPSEC_PSK = "ipsk000";
private static final String KEY_PREFIX_L2TP_SECRET = "lscrt000";
private PreferenceScreen mAddVpn; private PreferenceScreen mAddVpn;
private PreferenceCategory mVpnListContainer; private PreferenceCategory mVpnListContainer;
@@ -838,37 +843,37 @@ public class VpnSettings extends PreferenceActivity implements
return mVpnManager.createVpnProfile(Enum.valueOf(VpnType.class, type)); return mVpnManager.createVpnProfile(Enum.valueOf(VpnType.class, type));
} }
private static final String NAMESPACE_VPN = "vpn"; private String keyNameForDaemon(String keyName) {
private static final String KEY_PREFIX_IPSEC_PSK = "ipsk000"; return NAMESPACE_VPN + "_" + keyName;
private static final String KEY_PREFIX_L2TP_SECRET = "lscrt000"; }
private void processSecrets(VpnProfile p) { private void processSecrets(VpnProfile p) {
Keystore ks = Keystore.getInstance(); Keystore ks = Keystore.getInstance();
switch (p.getType()) { switch (p.getType()) {
case L2TP_IPSEC_PSK: case L2TP_IPSEC_PSK:
L2tpIpsecPskProfile pskProfile = (L2tpIpsecPskProfile) p; L2tpIpsecPskProfile pskProfile = (L2tpIpsecPskProfile) p;
String keyName = KEY_PREFIX_IPSEC_PSK + p.getId();
String keyNameForDaemon = NAMESPACE_VPN + "_" + keyName;
String presharedKey = pskProfile.getPresharedKey(); String presharedKey = pskProfile.getPresharedKey();
if (!presharedKey.equals(keyNameForDaemon)) { if (!presharedKey.equals(SECRET_SET_INDICATOR)) {
String keyName = KEY_PREFIX_IPSEC_PSK + p.getId();
int ret = ks.put(NAMESPACE_VPN, keyName, presharedKey); int ret = ks.put(NAMESPACE_VPN, keyName, presharedKey);
if (ret < 0) Log.e(TAG, "keystore write failed: key=" + keyName); if (ret < 0) {
pskProfile.setPresharedKey(keyNameForDaemon); Log.e(TAG, "keystore write failed: key=" + keyName);
}
pskProfile.setPresharedKey(keyNameForDaemon(keyName));
} }
// pass through // pass through
case L2TP: case L2TP:
L2tpProfile l2tpProfile = (L2tpProfile) p; L2tpProfile l2tpProfile = (L2tpProfile) p;
keyName = KEY_PREFIX_L2TP_SECRET + p.getId(); String keyName = KEY_PREFIX_L2TP_SECRET + p.getId();
if (l2tpProfile.isSecretEnabled()) { if (l2tpProfile.isSecretEnabled()) {
keyNameForDaemon = NAMESPACE_VPN + "_" + keyName;
String secret = l2tpProfile.getSecretString(); String secret = l2tpProfile.getSecretString();
if (!secret.equals(keyNameForDaemon)) { if (!secret.equals(SECRET_SET_INDICATOR)) {
int ret = ks.put(NAMESPACE_VPN, keyName, secret); int ret = ks.put(NAMESPACE_VPN, keyName, secret);
if (ret < 0) { if (ret < 0) {
Log.e(TAG, "keystore write failed: key=" + keyName); Log.e(TAG, "keystore write failed: key=" + keyName);
} }
l2tpProfile.setSecretString(keyNameForDaemon); l2tpProfile.setSecretString(keyNameForDaemon(keyName));
} }
} else { } else {
ks.remove(NAMESPACE_VPN, keyName); ks.remove(NAMESPACE_VPN, keyName);