From 84cfb0dc9b87534d89651bc45128fc21c9d24423 Mon Sep 17 00:00:00 2001 From: Hung-ying Tyan Date: Mon, 15 Jun 2009 12:36:04 +0800 Subject: [PATCH] Remove use of SingleServerProfile. * changes + mv SingleServerEditor.java VpnProfileEditor.java + Add loadExtraPreferecesTo() to VpnProfileEditor + Make L2tpIpsecEditor extend VpnProfileEditor and use loadExtraPreferencesTo() + Modify VpnEditor.getEditor() accordingly --- .../android/settings/vpn/L2tpIpsecEditor.java | 18 ++- .../settings/vpn/SingleServerEditor.java | 108 ------------------ src/com/android/settings/vpn/VpnEditor.java | 4 +- .../settings/vpn/VpnProfileEditor.java | 95 ++++++++++++++- 4 files changed, 98 insertions(+), 127 deletions(-) delete mode 100644 src/com/android/settings/vpn/SingleServerEditor.java diff --git a/src/com/android/settings/vpn/L2tpIpsecEditor.java b/src/com/android/settings/vpn/L2tpIpsecEditor.java index 51569896656..2dee92e2cfb 100644 --- a/src/com/android/settings/vpn/L2tpIpsecEditor.java +++ b/src/com/android/settings/vpn/L2tpIpsecEditor.java @@ -29,7 +29,7 @@ import android.security.Keystore; /** * The class for editing {@link L2tpIpsecProfile}. */ -class L2tpIpsecEditor extends SingleServerEditor { +class L2tpIpsecEditor extends VpnProfileEditor { private static final String TAG = L2tpIpsecEditor.class.getSimpleName(); private ListPreference mUserCertificate; @@ -43,17 +43,15 @@ class L2tpIpsecEditor extends SingleServerEditor { mProfile = p; } - //@Override - public void loadPreferencesTo(PreferenceGroup subsettings) { - super.loadPreferencesTo(subsettings); - Context c = subsettings.getContext(); - subsettings.addPreference(createUserkeyPreference(c)); - subsettings.addPreference(createUserCertificatePreference(c)); - subsettings.addPreference(createCaCertificatePreference(c)); - subsettings.addPreference(createDomainSufficesPreference(c)); + @Override + protected void loadExtraPreferencesTo(PreferenceGroup subpanel) { + Context c = subpanel.getContext(); + subpanel.addPreference(createUserkeyPreference(c)); + subpanel.addPreference(createUserCertificatePreference(c)); + subpanel.addPreference(createCaCertificatePreference(c)); } - //@Override + @Override public String validate(Context c) { String result = super.validate(c); if (result != null) { diff --git a/src/com/android/settings/vpn/SingleServerEditor.java b/src/com/android/settings/vpn/SingleServerEditor.java deleted file mode 100644 index a7848e03e56..00000000000 --- a/src/com/android/settings/vpn/SingleServerEditor.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright (C) 2007 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. - */ - -package com.android.settings.vpn; - -import com.android.settings.R; - -import android.content.Context; -import android.net.vpn.SingleServerProfile; -import android.net.vpn.VpnProfile; -import android.preference.EditTextPreference; -import android.preference.Preference; -import android.preference.PreferenceGroup; - -/** - * The class for editing {@link SingleServerProfile}. - */ -class SingleServerEditor implements VpnProfileEditor { - private EditTextPreference mServerName; - private EditTextPreference mDomainSuffices; - private SingleServerProfile mProfile; - - public SingleServerEditor(SingleServerProfile p) { - mProfile = p; - } - - //@Override - public VpnProfile getProfile() { - return mProfile; - } - - //@Override - public void loadPreferencesTo(PreferenceGroup subpanel) { - Context c = subpanel.getContext(); - subpanel.addPreference(createServerNamePreference(c)); - } - - //@Override - public String validate(Context c) { - return (Util.isNullOrEmpty(mServerName.getText()) - ? c.getString(R.string.vpn_error_server_name_empty) - : null); - } - - /** - * Creates a preference for users to input domain suffices. - */ - protected EditTextPreference createDomainSufficesPreference(Context c) { - EditTextPreference pref = mDomainSuffices = new EditTextPreference(c); - pref.setTitle(R.string.vpn_dns_search_list_title); - pref.setDialogTitle(R.string.vpn_dns_search_list_title); - pref.setPersistent(true); - pref.setText(mProfile.getDomainSuffices()); - pref.setSummary(mProfile.getDomainSuffices()); - pref.setOnPreferenceChangeListener( - new Preference.OnPreferenceChangeListener() { - public boolean onPreferenceChange( - Preference pref, Object newValue) { - String v = ((String) newValue).trim(); - mProfile.setDomainSuffices(v); - pref.setSummary(checkNull(v, pref.getContext())); - return true; - } - }); - return pref; - } - - private Preference createServerNamePreference(Context c) { - EditTextPreference serverName = mServerName = new EditTextPreference(c); - String title = c.getString(R.string.vpn_server_name_title); - serverName.setTitle(title); - serverName.setDialogTitle(title); - serverName.setSummary(checkNull(mProfile.getServerName(), c)); - serverName.setText(mProfile.getServerName()); - serverName.setPersistent(true); - serverName.setOnPreferenceChangeListener( - new Preference.OnPreferenceChangeListener() { - public boolean onPreferenceChange( - Preference pref, Object newValue) { - String v = ((String) newValue).trim(); - mProfile.setServerName(v); - pref.setSummary(checkNull(v, pref.getContext())); - return true; - } - }); - return mServerName; - } - - - String checkNull(String value, Context c) { - return ((value != null && value.length() > 0) - ? value - : c.getString(R.string.vpn_not_set)); - } -} diff --git a/src/com/android/settings/vpn/VpnEditor.java b/src/com/android/settings/vpn/VpnEditor.java index a37b3355d12..35c91ee3190 100644 --- a/src/com/android/settings/vpn/VpnEditor.java +++ b/src/com/android/settings/vpn/VpnEditor.java @@ -158,10 +158,8 @@ public class VpnEditor extends PreferenceActivity { private VpnProfileEditor getEditor(VpnProfile p) { if (p instanceof L2tpIpsecProfile) { return new L2tpIpsecEditor((L2tpIpsecProfile) p); - } else if (p instanceof SingleServerProfile) { - return new SingleServerEditor((SingleServerProfile) p); } else { - throw new RuntimeException("Unknown profile type: " + p.getType()); + return new VpnProfileEditor(p); } } diff --git a/src/com/android/settings/vpn/VpnProfileEditor.java b/src/com/android/settings/vpn/VpnProfileEditor.java index 686e513fe23..a245263c0ab 100644 --- a/src/com/android/settings/vpn/VpnProfileEditor.java +++ b/src/com/android/settings/vpn/VpnProfileEditor.java @@ -16,20 +16,48 @@ package com.android.settings.vpn; +import com.android.settings.R; + import android.content.Context; import android.net.vpn.VpnProfile; +import android.preference.EditTextPreference; +import android.preference.Preference; import android.preference.PreferenceGroup; /** - * The interface to set up preferences for editing a {@link VpnProfile}. + * The common class for editing {@link VpnProfile}. */ -public interface VpnProfileEditor { - VpnProfile getProfile(); +class VpnProfileEditor { + private EditTextPreference mServerName; + private EditTextPreference mDomainSuffices; + private VpnProfile mProfile; + + public VpnProfileEditor(VpnProfile p) { + mProfile = p; + } + + //@Override + public VpnProfile getProfile() { + return mProfile; + } /** - * Adds the preferences to the panel. + * Adds the preferences to the panel. Subclasses should override + * {@link #loadExtraPreferencesTo(PreferenceGroup)} instead of this method. */ - void loadPreferencesTo(PreferenceGroup subpanel); + public void loadPreferencesTo(PreferenceGroup subpanel) { + Context c = subpanel.getContext(); + subpanel.addPreference(createServerNamePreference(c)); + loadExtraPreferencesTo(subpanel); + subpanel.addPreference(createDomainSufficesPreference(c)); + } + + /** + * Adds the extra preferences to the panel. Subclasses should add + * additional preferences in this method. + */ + protected void loadExtraPreferencesTo(PreferenceGroup subpanel) { + } /** * Validates the inputs in the preferences. @@ -37,5 +65,60 @@ public interface VpnProfileEditor { * @return an error message that is ready to be displayed in a dialog; or * null if all the inputs are valid */ - String validate(Context c); + public String validate(Context c) { + return (Util.isNullOrEmpty(mServerName.getText()) + ? c.getString(R.string.vpn_error_server_name_empty) + : null); + } + + /** + * Creates a preference for users to input domain suffices. + */ + protected EditTextPreference createDomainSufficesPreference(Context c) { + EditTextPreference pref = mDomainSuffices = new EditTextPreference(c); + pref.setTitle(R.string.vpn_dns_search_list_title); + pref.setDialogTitle(R.string.vpn_dns_search_list_title); + pref.setPersistent(true); + pref.setText(mProfile.getDomainSuffices()); + pref.setSummary(mProfile.getDomainSuffices()); + pref.setOnPreferenceChangeListener( + new Preference.OnPreferenceChangeListener() { + public boolean onPreferenceChange( + Preference pref, Object newValue) { + String v = ((String) newValue).trim(); + mProfile.setDomainSuffices(v); + pref.setSummary(checkNull(v, pref.getContext())); + return true; + } + }); + return pref; + } + + private Preference createServerNamePreference(Context c) { + EditTextPreference serverName = mServerName = new EditTextPreference(c); + String title = c.getString(R.string.vpn_server_name_title); + serverName.setTitle(title); + serverName.setDialogTitle(title); + serverName.setSummary(checkNull(mProfile.getServerName(), c)); + serverName.setText(mProfile.getServerName()); + serverName.setPersistent(true); + serverName.setOnPreferenceChangeListener( + new Preference.OnPreferenceChangeListener() { + public boolean onPreferenceChange( + Preference pref, Object newValue) { + String v = ((String) newValue).trim(); + mProfile.setServerName(v); + pref.setSummary(checkNull(v, pref.getContext())); + return true; + } + }); + return mServerName; + } + + + String checkNull(String value, Context c) { + return ((value != null && value.length() > 0) + ? value + : c.getString(R.string.vpn_not_set)); + } }