From: Tobias Brunner Date: Thu, 5 Jun 2025 14:09:50 +0000 (+0200) Subject: android: Make proxy server configurable X-Git-Tag: android-2.5.6^2~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c80819c0adf8cb1a225535a99b9bf9f5f497f977;p=thirdparty%2Fstrongswan.git android: Make proxy server configurable --- diff --git a/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnProfileDetailActivity.java b/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnProfileDetailActivity.java index d33a16d078..cf1789d4b9 100644 --- a/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnProfileDetailActivity.java +++ b/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnProfileDetailActivity.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2023 Relution GmbH - * Copyright (C) 2012-2020 Tobias Brunner + * Copyright (C) 2012-2025 Tobias Brunner * Copyright (C) 2012 Giuliano Grassi * Copyright (C) 2012 Ralf Sager * @@ -147,6 +147,10 @@ public class VpnProfileDetailActivity extends AppCompatActivity private TextView mProfileId; private EditText mDnsServers; private TextInputLayoutHelper mDnsServersWrap; + private EditText mProxyHost; + private EditText mProxyPort; + private TextInputLayoutHelper mProxyPortWrap; + private EditText mProxyExclusions; private final ActivityResultLauncher mInstallPKCS12 = registerForActivityResult( new ActivityResultContracts.StartActivityForResult(), @@ -254,6 +258,11 @@ public class VpnProfileDetailActivity extends AppCompatActivity /* make the link clickable */ ((TextView)findViewById(R.id.proposal_intro)).setMovementMethod(LinkMovementMethod.getInstance()); + mProxyHost = findViewById(R.id.proxy_host); + mProxyPort = findViewById(R.id.proxy_port); + mProxyPortWrap = findViewById(R.id.proxy_port_wrap); + mProxyExclusions = findViewById(R.id.proxy_exclusions); + mProfileIdLabel = findViewById(R.id.profile_id_label); mProfileId = findViewById(R.id.profile_id); @@ -584,7 +593,9 @@ public class VpnProfileDetailActivity extends AppCompatActivity mProfile.getIncludedSubnets() != null || mProfile.getExcludedSubnets() != null || mProfile.getSelectedAppsHandling() != SelectedAppsHandling.SELECTED_APPS_DISABLE || mProfile.getIkeProposal() != null || mProfile.getEspProposal() != null || - mProfile.getDnsServers() != null || mProfile.getLocalId() != null; + mProfile.getDnsServers() != null || mProfile.getLocalId() != null || + mProfile.getProxyHost() != null || mProfile.getProxyPort() != null || + mProfile.getProxyExclusions() != null; } mShowAdvanced.setVisibility(!show ? View.VISIBLE : View.GONE); mAdvancedSettings.setVisibility(show ? View.VISIBLE : View.GONE); @@ -700,6 +711,11 @@ public class VpnProfileDetailActivity extends AppCompatActivity mDnsServersWrap.setError(getString(R.string.alert_text_no_ips)); valid = false; } + if (!validateInteger(mProxyPort, 1, 65535)) + { + mProxyPortWrap.setError(String.format(getString(R.string.alert_text_out_of_range), 1, 65535)); + valid = false; + } return valid; } @@ -749,6 +765,9 @@ public class VpnProfileDetailActivity extends AppCompatActivity mProfile.setIkeProposal(getString(mIkeProposal)); mProfile.setEspProposal(getString(mEspProposal)); mProfile.setDnsServers(getString(mDnsServers)); + mProfile.setProxyHost(getString(mProxyHost)); + mProfile.setProxyPort(getInteger(mProxyPort)); + mProfile.setProxyExclusions(getString(mProxyExclusions)); } /** @@ -786,6 +805,9 @@ public class VpnProfileDetailActivity extends AppCompatActivity mIkeProposal.setText(mProfile.getIkeProposal()); mEspProposal.setText(mProfile.getEspProposal()); mDnsServers.setText(mProfile.getDnsServers()); + mProxyHost.setText(mProfile.getProxyHost()); + mProxyPort.setText(mProfile.getProxyPort() != null ? mProfile.getProxyPort().toString() : null); + mProxyExclusions.setText(mProfile.getProxyExclusions()); mProfileId.setText(mProfile.getUUID().toString()); flags = mProfile.getFlags(); useralias = mProfile.getUserCertificateAlias(); @@ -877,6 +899,9 @@ public class VpnProfileDetailActivity extends AppCompatActivity mIkeProposal.setEnabled(!readOnly); mEspProposal.setEnabled(!readOnly); mDnsServers.setEnabled(!readOnly); + mProxyHost.setEnabled(!readOnly); + mProxyPort.setEnabled(!readOnly); + mProxyExclusions.setEnabled(!readOnly); mSelectVpnType.setEnabled(!readOnly); mCertReq.setEnabled(!readOnly); diff --git a/src/frontends/android/app/src/main/res/layout/profile_detail_view.xml b/src/frontends/android/app/src/main/res/layout/profile_detail_view.xml index eb67583bbe..04696058b6 100644 --- a/src/frontends/android/app/src/main/res/layout/profile_detail_view.xml +++ b/src/frontends/android/app/src/main/res/layout/profile_detail_view.xml @@ -1,6 +1,6 @@