Search in sources :

Example 91 with VpnProfile

use of com.android.internal.net.VpnProfile in project android_packages_apps_Settings by SudaMod.

the class ConfigDialog method updateUiControls.

/**
 * Updates the UI according to the current configuration entered by the user.
 *
 * These include:
 * "Always-on VPN" checkbox
 * Reason for "Always-on VPN" being disabled, when necessary
 * "Save account information" checkbox
 * "Save" and "Connect" buttons
 */
private void updateUiControls() {
    VpnProfile profile = getProfile();
    // Always-on VPN
    if (profile.isValidLockdownProfile()) {
        mAlwaysOnVpn.setEnabled(true);
        mAlwaysOnInvalidReason.setVisibility(View.GONE);
    } else {
        mAlwaysOnVpn.setChecked(false);
        mAlwaysOnVpn.setEnabled(false);
        if (!profile.isTypeValidForLockdown()) {
            mAlwaysOnInvalidReason.setText(R.string.vpn_always_on_invalid_reason_type);
        } else if (!profile.isServerAddressNumeric()) {
            mAlwaysOnInvalidReason.setText(R.string.vpn_always_on_invalid_reason_server);
        } else if (!profile.hasDns()) {
            mAlwaysOnInvalidReason.setText(R.string.vpn_always_on_invalid_reason_no_dns);
        } else if (!profile.areDnsAddressesNumeric()) {
            mAlwaysOnInvalidReason.setText(R.string.vpn_always_on_invalid_reason_dns);
        } else {
            mAlwaysOnInvalidReason.setText(R.string.vpn_always_on_invalid_reason_other);
        }
        mAlwaysOnInvalidReason.setVisibility(View.VISIBLE);
    }
    // Save account information
    if (mAlwaysOnVpn.isChecked()) {
        mSaveLogin.setChecked(true);
        mSaveLogin.setEnabled(false);
    } else {
        mSaveLogin.setChecked(mProfile.saveLogin);
        mSaveLogin.setEnabled(true);
    }
    // Save or Connect button
    getButton(DialogInterface.BUTTON_POSITIVE).setEnabled(validate(mEditing));
}
Also used : VpnProfile(com.android.internal.net.VpnProfile)

Example 92 with VpnProfile

use of com.android.internal.net.VpnProfile in project android_packages_apps_Settings by SudaMod.

the class ConfigDialog method getProfile.

VpnProfile getProfile() {
    // First, save common fields.
    VpnProfile profile = new VpnProfile(mProfile.key);
    profile.name = mName.getText().toString();
    profile.type = mType.getSelectedItemPosition();
    profile.server = mServer.getText().toString().trim();
    profile.username = mUsername.getText().toString();
    profile.password = mPassword.getText().toString();
    profile.searchDomains = mSearchDomains.getText().toString().trim();
    profile.dnsServers = mDnsServers.getText().toString().trim();
    profile.routes = mRoutes.getText().toString().trim();
    // Then, save type-specific fields.
    switch(profile.type) {
        case VpnProfile.TYPE_PPTP:
            profile.mppe = mMppe.isChecked();
            break;
        case VpnProfile.TYPE_L2TP_IPSEC_PSK:
            profile.l2tpSecret = mL2tpSecret.getText().toString();
        // fall through
        case VpnProfile.TYPE_IPSEC_XAUTH_PSK:
            profile.ipsecIdentifier = mIpsecIdentifier.getText().toString();
            profile.ipsecSecret = mIpsecSecret.getText().toString();
            break;
        case VpnProfile.TYPE_L2TP_IPSEC_RSA:
            profile.l2tpSecret = mL2tpSecret.getText().toString();
        // fall through
        case VpnProfile.TYPE_IPSEC_XAUTH_RSA:
            if (mIpsecUserCert.getSelectedItemPosition() != 0) {
                profile.ipsecUserCert = (String) mIpsecUserCert.getSelectedItem();
            }
        // fall through
        case VpnProfile.TYPE_IPSEC_HYBRID_RSA:
            if (mIpsecCaCert.getSelectedItemPosition() != 0) {
                profile.ipsecCaCert = (String) mIpsecCaCert.getSelectedItem();
            }
            if (mIpsecServerCert.getSelectedItemPosition() != 0) {
                profile.ipsecServerCert = (String) mIpsecServerCert.getSelectedItem();
            }
            break;
    }
    final boolean hasLogin = !profile.username.isEmpty() || !profile.password.isEmpty();
    profile.saveLogin = mSaveLogin.isChecked() || (mEditing && hasLogin);
    return profile;
}
Also used : VpnProfile(com.android.internal.net.VpnProfile)

Example 93 with VpnProfile

use of com.android.internal.net.VpnProfile in project android_packages_apps_Settings by SudaMod.

the class ConfigDialogFragment method onCreateDialog.

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    Bundle args = getArguments();
    VpnProfile profile = (VpnProfile) args.getParcelable(ARG_PROFILE);
    boolean editing = args.getBoolean(ARG_EDITING);
    boolean exists = args.getBoolean(ARG_EXISTS);
    final Dialog dialog = new ConfigDialog(getActivity(), this, profile, editing, exists);
    dialog.setOnShowListener(this);
    return dialog;
}
Also used : VpnProfile(com.android.internal.net.VpnProfile) Bundle(android.os.Bundle) Dialog(android.app.Dialog) AlertDialog(android.app.AlertDialog)

Example 94 with VpnProfile

use of com.android.internal.net.VpnProfile in project android_packages_apps_Settings by SudaMod.

the class VpnSettings method handleMessage.

@Override
@WorkerThread
public boolean handleMessage(Message message) {
    // Return if activity has been recycled
    final Activity activity = getActivity();
    if (activity == null) {
        return true;
    }
    final Context context = activity.getApplicationContext();
    // Run heavy RPCs before switching to UI thread
    final List<VpnProfile> vpnProfiles = loadVpnProfiles(mKeyStore);
    final List<AppVpnInfo> vpnApps = getVpnApps(context, /* includeProfiles */
    true);
    final Map<String, LegacyVpnInfo> connectedLegacyVpns = getConnectedLegacyVpns();
    final Set<AppVpnInfo> connectedAppVpns = getConnectedAppVpns();
    final Set<AppVpnInfo> alwaysOnAppVpnInfos = getAlwaysOnAppVpnInfos();
    final String lockdownVpnKey = VpnUtils.getLockdownVpn();
    // Refresh list of VPNs
    activity.runOnUiThread(new UpdatePreferences(this).legacyVpns(vpnProfiles, connectedLegacyVpns, lockdownVpnKey).appVpns(vpnApps, connectedAppVpns, alwaysOnAppVpnInfos));
    synchronized (this) {
        if (mUpdater != null) {
            mUpdater.removeMessages(RESCAN_MESSAGE);
            mUpdater.sendEmptyMessageDelayed(RESCAN_MESSAGE, RESCAN_INTERVAL_MS);
        }
    }
    return true;
}
Also used : Context(android.content.Context) VpnProfile(com.android.internal.net.VpnProfile) Activity(android.app.Activity) LegacyVpnInfo(com.android.internal.net.LegacyVpnInfo) WorkerThread(android.annotation.WorkerThread)

Example 95 with VpnProfile

use of com.android.internal.net.VpnProfile in project android_packages_apps_Settings by SudaMod.

the class VpnTests method testIpsecXauthRsaConnection.

/**
 * Test IPSec Xauth RSA VPN connection
 */
@LargeTest
public void testIpsecXauthRsaConnection() throws Exception {
    mPreviousIpAddress = getIpAddress();
    VpnInfo curVpnInfo = mVpnInfoPool.get(VpnProfile.TYPE_IPSEC_XAUTH_RSA);
    VpnProfile vpnProfile = curVpnInfo.getVpnProfile();
    if (DEBUG) {
        printVpnProfile(vpnProfile);
    }
    String certFile = curVpnInfo.getCertificateFile();
    String password = curVpnInfo.getPassword();
    installCertificatesFromFile(vpnProfile, certFile, password);
    connect(vpnProfile);
    validateVpnConnection(vpnProfile);
}
Also used : VpnProfile(com.android.internal.net.VpnProfile) LegacyVpnInfo(com.android.internal.net.LegacyVpnInfo) LargeTest(android.test.suitebuilder.annotation.LargeTest)

Aggregations

VpnProfile (com.android.internal.net.VpnProfile)119 LegacyVpnInfo (com.android.internal.net.LegacyVpnInfo)63 LargeTest (android.test.suitebuilder.annotation.LargeTest)42 SmallTest (android.test.suitebuilder.annotation.SmallTest)21 VpnSettings (com.android.settings.vpn2.VpnSettings)15 Context (android.content.Context)14 Bundle (android.os.Bundle)14 RemoteException (android.os.RemoteException)13 WorkerThread (android.annotation.WorkerThread)7 Activity (android.app.Activity)7 Dialog (android.app.Dialog)7 Intent (android.content.Intent)7 PackageInfo (android.content.pm.PackageInfo)7 PackageManager (android.content.pm.PackageManager)7 UserHandle (android.os.UserHandle)7 KeyStore (android.security.KeyStore)6 LockdownVpnTracker (com.android.server.net.LockdownVpnTracker)6 AlertDialog (android.app.AlertDialog)5 NetworkPolicyManager.uidRulesToString (android.net.NetworkPolicyManager.uidRulesToString)5 Vpn (com.android.server.connectivity.Vpn)5