Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e73e27dc authored by Takuo Kitame's avatar Takuo Kitame
Browse files

OpenVPN: Replace OpenvpnEditor.java with latest eclair's one

parent b20c3dbb
Loading
Loading
Loading
Loading
+247 −211
Original line number Diff line number Diff line
@@ -31,9 +31,9 @@ import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceGroup;
import android.security.CertTool;
import android.text.InputType;
import android.text.TextUtils;
import android.security.Credentials;
import android.security.KeyStore;

import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
@@ -45,14 +45,19 @@ import android.view.MenuItem;
class OpenvpnEditor extends VpnProfileEditor {

    private static final String KEY_PROFILE = "openvpn_profile";

    private static final int REQUEST_ADVANCED = 1;

    private static final String TAG = OpenvpnEditor.class.getSimpleName();

    private int MENU_ID_ADVANCED;

    private KeyStore mKeyStore = KeyStore.getInstance();

    private CheckBoxPreference mUserAuth;

    private ListPreference mCert;

    private ListPreference mCACert;

    public OpenvpnEditor(OpenvpnProfile p) {
@@ -67,10 +72,8 @@ class OpenvpnEditor extends VpnProfileEditor {
        mUserAuth.setTitle(R.string.vpn_openvpn_userauth);
        mUserAuth.setSummary(R.string.vpn_openvpn_userauth_summary);
        mUserAuth.setChecked(profile.getUserAuth());
	mUserAuth.setOnPreferenceChangeListener(
            new Preference.OnPreferenceChangeListener() {
	        public boolean onPreferenceChange(
                    Preference pref, Object newValue) {
        mUserAuth.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
            public boolean onPreferenceChange(Preference pref, Object newValue) {
                boolean enabled = (Boolean) newValue;
                profile.setUserAuth(enabled);
                mUserAuth.setChecked(enabled);
@@ -78,15 +81,12 @@ class OpenvpnEditor extends VpnProfileEditor {
            }
        });
        subpanel.addPreference(mUserAuth);
	mCACert = createList(c, R.string.vpn_ca_certificate_title,
            profile.getCAName(),
	    CertTool.getInstance().getAllCaCertificateKeys(),
            new Preference.OnPreferenceChangeListener() {
        mCACert = createList(c, R.string.vpn_ca_certificate_title, profile.getCAName(), mKeyStore
                .saw(Credentials.CA_CERTIFICATE), new Preference.OnPreferenceChangeListener() {
            public boolean onPreferenceChange(Preference pref, Object newValue) {
                String f = (String) newValue;
                profile.setCAName(f);
		    setSummary(mCACert, R.string.vpn_ca_certificate, 
			       profile.getCAName());
                setSummary(mCACert, R.string.vpn_ca_certificate, profile.getCAName());

                return true;
            }
@@ -94,15 +94,12 @@ class OpenvpnEditor extends VpnProfileEditor {
        setSummary(mCACert, R.string.vpn_ca_certificate, profile.getCAName());
        subpanel.addPreference(mCACert);

 	mCert = createList(c, R.string.vpn_user_certificate_title,
            profile.getCertName(),
            CertTool.getInstance().getAllUserCertificateKeys(),
            new Preference.OnPreferenceChangeListener() {
        mCert = createList(c, R.string.vpn_user_certificate_title, profile.getCertName(), mKeyStore
                .saw(Credentials.USER_CERTIFICATE), new Preference.OnPreferenceChangeListener() {
            public boolean onPreferenceChange(Preference pref, Object newValue) {
                String f = (String) newValue;
                profile.setCertName(f);
		    setSummary(mCert, R.string.vpn_user_certificate,
			       profile.getCertName());
                setSummary(mCert, R.string.vpn_user_certificate, profile.getCertName());

                return true;
            }
@@ -117,9 +114,11 @@ class OpenvpnEditor extends VpnProfileEditor {
        if (result != null)
            return result;
        
        if (!mUserAuth.isChecked()) {
            result = validate(mCert, R.string.vpn_a_user_certificate);        
            if (result != null)
                return result;
        }
        
        return validate(mCert, R.string.vpn_a_ca_certificate);
    }
@@ -128,8 +127,8 @@ class OpenvpnEditor extends VpnProfileEditor {
    protected void onCreateOptionsMenu(Menu menu, int last_item) {
        MENU_ID_ADVANCED = last_item + 1;

	menu.add(0, MENU_ID_ADVANCED, 0, R.string.wifi_menu_advanced)
            .setIcon(android.R.drawable.ic_menu_manage);
        menu.add(0, MENU_ID_ADVANCED, 0, R.string.wifi_menu_advanced).setIcon(
                android.R.drawable.ic_menu_manage);
    }

    @Override
@@ -145,8 +144,7 @@ class OpenvpnEditor extends VpnProfileEditor {
    }

    @Override
    protected void onActivityResult(final int requestCode, final int resultCode,
            final Intent data) {
    protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
        if (requestCode != REQUEST_ADVANCED)
            return;

@@ -159,14 +157,15 @@ class OpenvpnEditor extends VpnProfileEditor {
        // manually copy across all advanced settings
        p.setPort(newP.getPort());
        p.setProto(newP.getProto());
        p.setDevice(newP.getDevice());
        p.setUseCompLzo(newP.getUseCompLzo());
        p.setRedirectGateway(newP.getRedirectGateway());
        p.setSupplyAddr(newP.getSupplyAddr());
        p.setLocalAddr(newP.getLocalAddr());
        p.setRemoteAddr(newP.getRemoteAddr());
    }

    private ListPreference createList(Context c, int titleResId,
            String selection, String[] keys,
    private ListPreference createList(Context c, int titleResId, String selection, String[] keys,
            Preference.OnPreferenceChangeListener listener) {
        ListPreference pref = new ListPreference(c);
        pref.setTitle(titleResId);
@@ -181,18 +180,37 @@ class OpenvpnEditor extends VpnProfileEditor {

    public static class AdvancedSettings extends PreferenceActivity {
        private static final String KEY_PORT = "set_port";

        private static final String KEY_PROTO = "set_protocol";

        private static final String KEY_DEVICE = "set_device";

        private static final String KEY_COMP_LZO = "set_comp_lzo";

        private static final String KEY_REDIRECT_GATEWAY = "set_redirect_gateway";
        
        private static final String KEY_SET_ADDR = "set_addr";

        private static final String KEY_LOCAL_ADDR = "set_local_addr";

        private static final String KEY_REMOTE_ADDR = "set_remote_addr";

        private EditTextPreference mPort;

        private ListPreference mProto;

        private ListPreference mDevice;

        private CheckBoxPreference mCompLzo;

        private CheckBoxPreference mRedirectGateway;
        
        private CheckBoxPreference mSetAddr;

        private EditTextPreference mLocalAddr;

        private EditTextPreference mRemoteAddr;

        private OpenvpnProfile profile;

        @Override
@@ -205,15 +223,16 @@ class OpenvpnEditor extends VpnProfileEditor {

            mPort = (EditTextPreference) findPreference(KEY_PORT);
            mProto = (ListPreference) findPreference(KEY_PROTO);
            mDevice = (ListPreference) findPreference(KEY_DEVICE);
            mCompLzo = (CheckBoxPreference) findPreference(KEY_COMP_LZO);
            mRedirectGateway = (CheckBoxPreference) findPreference(KEY_REDIRECT_GATEWAY);
            mSetAddr = (CheckBoxPreference) findPreference(KEY_SET_ADDR);
            mLocalAddr = (EditTextPreference) findPreference(KEY_LOCAL_ADDR);
            mRemoteAddr = (EditTextPreference) findPreference(KEY_REMOTE_ADDR);

            mPort.setSummary(profile.getPort());
            mPort.setText(profile.getPort());
	    mPort.setOnPreferenceChangeListener(
	        new Preference.OnPreferenceChangeListener() {
            mPort.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
                public boolean onPreferenceChange(Preference pref, Object newValue) {
                    String name = (String) newValue;
                    name.trim();
@@ -226,8 +245,7 @@ class OpenvpnEditor extends VpnProfileEditor {

            mProto.setSummary(profile.getProto());
            mProto.setValue(profile.getProto());
	    mProto.setOnPreferenceChangeListener(
                new Preference.OnPreferenceChangeListener() {
            mProto.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
                public boolean onPreferenceChange(Preference pref, Object newValue) {
                    String name = (String) newValue;
                    name.trim();
@@ -238,9 +256,21 @@ class OpenvpnEditor extends VpnProfileEditor {
                }
            });

            mDevice.setSummary(profile.getDevice());
            mDevice.setValue(profile.getDevice());
            mDevice.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
                public boolean onPreferenceChange(Preference pref, Object newValue) {
                    String name = (String) newValue;
                    name.trim();
                    profile.setDevice(name);
                    mDevice.setSummary(profile.getDevice());

                    return true;
                }
            });

            mCompLzo.setChecked(profile.getUseCompLzo());
	    mCompLzo.setOnPreferenceChangeListener(
                new Preference.OnPreferenceChangeListener() {
            mCompLzo.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
                public boolean onPreferenceChange(Preference pref, Object newValue) {
                    Boolean b = (Boolean) newValue;
                    profile.setUseCompLzo(b);
@@ -249,10 +279,19 @@ class OpenvpnEditor extends VpnProfileEditor {
                }
            });

            mRedirectGateway.setChecked(profile.getRedirectGateway());
            mRedirectGateway.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
                public boolean onPreferenceChange(Preference pref, Object newValue) {
                    Boolean b = (Boolean) newValue;
                    profile.setRedirectGateway(b);

                    return true;
                }
            });
            
            // This is inverted to cope with the way dependencies work
            mSetAddr.setChecked(!profile.getSupplyAddr());
	    mSetAddr.setOnPreferenceChangeListener(
                new Preference.OnPreferenceChangeListener() {
            mSetAddr.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
                public boolean onPreferenceChange(Preference pref, Object newValue) {
                    Boolean b = (Boolean) newValue;
                    profile.setSupplyAddr(!b);
@@ -263,8 +302,7 @@ class OpenvpnEditor extends VpnProfileEditor {

            mLocalAddr.setSummary(profile.getLocalAddr());
            mLocalAddr.setText(profile.getLocalAddr());
	    mLocalAddr.setOnPreferenceChangeListener(
	        new Preference.OnPreferenceChangeListener() {
            mLocalAddr.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
                public boolean onPreferenceChange(Preference pref, Object newValue) {
                    String name = (String) newValue;
                    name.trim();
@@ -277,8 +315,7 @@ class OpenvpnEditor extends VpnProfileEditor {

            mRemoteAddr.setSummary(profile.getRemoteAddr());
            mRemoteAddr.setText(profile.getRemoteAddr());
	    mRemoteAddr.setOnPreferenceChangeListener(
	        new Preference.OnPreferenceChangeListener() {
            mRemoteAddr.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
                public boolean onPreferenceChange(Preference pref, Object newValue) {
                    String name = (String) newValue;
                    name.trim();
@@ -304,6 +341,5 @@ class OpenvpnEditor extends VpnProfileEditor {
            return super.onKeyDown(keyCode, event);
        }


    }
}