diff --git a/src/frontends/android/app/src/main/java/org/strongswan/android/data/ManagedVpnProfile.java b/src/frontends/android/app/src/main/java/org/strongswan/android/data/ManagedVpnProfile.java
index 30943aa6b..47e85a5ca 100644
--- a/src/frontends/android/app/src/main/java/org/strongswan/android/data/ManagedVpnProfile.java
+++ b/src/frontends/android/app/src/main/java/org/strongswan/android/data/ManagedVpnProfile.java
@@ -83,6 +83,14 @@ public class ManagedVpnProfile extends VpnProfile
setIncludedSubnets(getString(splitTunneling, VpnProfileDataSource.KEY_INCLUDED_SUBNETS));
}
+ final Bundle proxyServer = bundle.getBundle(VpnProfileDataSource.KEY_PROXY_SERVER);
+ if (proxyServer != null)
+ {
+ setProxyHost(getString(proxyServer, VpnProfileDataSource.KEY_PROXY_HOST));
+ setProxyPort(getInt(proxyServer, VpnProfileDataSource.KEY_PROXY_PORT, 1, 65_535));
+ setProxyExclusions(getString(proxyServer, VpnProfileDataSource.KEY_PROXY_EXCLUSIONS));
+ }
+
setSplitTunneling(splitFlags);
setFlags(flags);
}
diff --git a/src/frontends/android/app/src/main/java/org/strongswan/android/data/VpnProfileDataSource.java b/src/frontends/android/app/src/main/java/org/strongswan/android/data/VpnProfileDataSource.java
index 541d2eb9a..b5289337c 100644
--- a/src/frontends/android/app/src/main/java/org/strongswan/android/data/VpnProfileDataSource.java
+++ b/src/frontends/android/app/src/main/java/org/strongswan/android/data/VpnProfileDataSource.java
@@ -50,6 +50,7 @@ public interface VpnProfileDataSource
String KEY_IKE_PROPOSAL = "ike_proposal";
String KEY_ESP_PROPOSAL = "esp_proposal";
String KEY_DNS_SERVERS = "dns_servers";
+ String KEY_PROXY_SERVER = "proxy_server";
String KEY_PROXY_HOST = "proxy_host";
String KEY_PROXY_PORT = "proxy_port";
String KEY_PROXY_EXCLUSIONS = "proxy_exclusions";
diff --git a/src/frontends/android/app/src/main/res/values-de/strings_managed_configuration.xml b/src/frontends/android/app/src/main/res/values-de/strings_managed_configuration.xml
index 74e59cfe7..c7d516011 100644
--- a/src/frontends/android/app/src/main/res/values-de/strings_managed_configuration.xml
+++ b/src/frontends/android/app/src/main/res/values-de/strings_managed_configuration.xml
@@ -108,4 +108,13 @@
@string/profile_split_tunnelingv6_title
Specifies whether to block IPv6 traffic that\'s not destined for the VPN. Forces all IPv6 traffic via VPN (traffic that does not match the negotiated traffic selector is then just dropped). Thus this is basically equivalent to including ::/0 in subnets
+
+ @string/profile_proxy_server_label
+ @string/profile_proxy_server_intro
+ @string/profile_proxy_host_label
+ @string/profile_proxy_host_hint
+ @string/profile_proxy_port_label
+ @string/profile_proxy_port_hint
+ @string/profile_proxy_exclusions_label
+ @string/profile_proxy_exclusions_hint
diff --git a/src/frontends/android/app/src/main/res/values-pl/strings_managed_configuration.xml b/src/frontends/android/app/src/main/res/values-pl/strings_managed_configuration.xml
index 74e59cfe7..c7d516011 100644
--- a/src/frontends/android/app/src/main/res/values-pl/strings_managed_configuration.xml
+++ b/src/frontends/android/app/src/main/res/values-pl/strings_managed_configuration.xml
@@ -108,4 +108,13 @@
@string/profile_split_tunnelingv6_title
Specifies whether to block IPv6 traffic that\'s not destined for the VPN. Forces all IPv6 traffic via VPN (traffic that does not match the negotiated traffic selector is then just dropped). Thus this is basically equivalent to including ::/0 in subnets
+
+ @string/profile_proxy_server_label
+ @string/profile_proxy_server_intro
+ @string/profile_proxy_host_label
+ @string/profile_proxy_host_hint
+ @string/profile_proxy_port_label
+ @string/profile_proxy_port_hint
+ @string/profile_proxy_exclusions_label
+ @string/profile_proxy_exclusions_hint
diff --git a/src/frontends/android/app/src/main/res/values-ru/strings_managed_configuration.xml b/src/frontends/android/app/src/main/res/values-ru/strings_managed_configuration.xml
index 74e59cfe7..c7d516011 100644
--- a/src/frontends/android/app/src/main/res/values-ru/strings_managed_configuration.xml
+++ b/src/frontends/android/app/src/main/res/values-ru/strings_managed_configuration.xml
@@ -108,4 +108,13 @@
@string/profile_split_tunnelingv6_title
Specifies whether to block IPv6 traffic that\'s not destined for the VPN. Forces all IPv6 traffic via VPN (traffic that does not match the negotiated traffic selector is then just dropped). Thus this is basically equivalent to including ::/0 in subnets
+
+ @string/profile_proxy_server_label
+ @string/profile_proxy_server_intro
+ @string/profile_proxy_host_label
+ @string/profile_proxy_host_hint
+ @string/profile_proxy_port_label
+ @string/profile_proxy_port_hint
+ @string/profile_proxy_exclusions_label
+ @string/profile_proxy_exclusions_hint
diff --git a/src/frontends/android/app/src/main/res/values-uk/strings_managed_configuration.xml b/src/frontends/android/app/src/main/res/values-uk/strings_managed_configuration.xml
index 74e59cfe7..c7d516011 100644
--- a/src/frontends/android/app/src/main/res/values-uk/strings_managed_configuration.xml
+++ b/src/frontends/android/app/src/main/res/values-uk/strings_managed_configuration.xml
@@ -108,4 +108,13 @@
@string/profile_split_tunnelingv6_title
Specifies whether to block IPv6 traffic that\'s not destined for the VPN. Forces all IPv6 traffic via VPN (traffic that does not match the negotiated traffic selector is then just dropped). Thus this is basically equivalent to including ::/0 in subnets
+
+ @string/profile_proxy_server_label
+ @string/profile_proxy_server_intro
+ @string/profile_proxy_host_label
+ @string/profile_proxy_host_hint
+ @string/profile_proxy_port_label
+ @string/profile_proxy_port_hint
+ @string/profile_proxy_exclusions_label
+ @string/profile_proxy_exclusions_hint
diff --git a/src/frontends/android/app/src/main/res/values-zh-rCN/strings_managed_configuration.xml b/src/frontends/android/app/src/main/res/values-zh-rCN/strings_managed_configuration.xml
index 74e59cfe7..c7d516011 100644
--- a/src/frontends/android/app/src/main/res/values-zh-rCN/strings_managed_configuration.xml
+++ b/src/frontends/android/app/src/main/res/values-zh-rCN/strings_managed_configuration.xml
@@ -108,4 +108,13 @@
@string/profile_split_tunnelingv6_title
Specifies whether to block IPv6 traffic that\'s not destined for the VPN. Forces all IPv6 traffic via VPN (traffic that does not match the negotiated traffic selector is then just dropped). Thus this is basically equivalent to including ::/0 in subnets
+
+ @string/profile_proxy_server_label
+ @string/profile_proxy_server_intro
+ @string/profile_proxy_host_label
+ @string/profile_proxy_host_hint
+ @string/profile_proxy_port_label
+ @string/profile_proxy_port_hint
+ @string/profile_proxy_exclusions_label
+ @string/profile_proxy_exclusions_hint
diff --git a/src/frontends/android/app/src/main/res/values-zh-rTW/strings_managed_configuration.xml b/src/frontends/android/app/src/main/res/values-zh-rTW/strings_managed_configuration.xml
index 74e59cfe7..c7d516011 100644
--- a/src/frontends/android/app/src/main/res/values-zh-rTW/strings_managed_configuration.xml
+++ b/src/frontends/android/app/src/main/res/values-zh-rTW/strings_managed_configuration.xml
@@ -108,4 +108,13 @@
@string/profile_split_tunnelingv6_title
Specifies whether to block IPv6 traffic that\'s not destined for the VPN. Forces all IPv6 traffic via VPN (traffic that does not match the negotiated traffic selector is then just dropped). Thus this is basically equivalent to including ::/0 in subnets
+
+ @string/profile_proxy_server_label
+ @string/profile_proxy_server_intro
+ @string/profile_proxy_host_label
+ @string/profile_proxy_host_hint
+ @string/profile_proxy_port_label
+ @string/profile_proxy_port_hint
+ @string/profile_proxy_exclusions_label
+ @string/profile_proxy_exclusions_hint
diff --git a/src/frontends/android/app/src/main/res/values/strings_managed_configuration.xml b/src/frontends/android/app/src/main/res/values/strings_managed_configuration.xml
index 74e59cfe7..04922033d 100644
--- a/src/frontends/android/app/src/main/res/values/strings_managed_configuration.xml
+++ b/src/frontends/android/app/src/main/res/values/strings_managed_configuration.xml
@@ -1,5 +1,6 @@
+ @string/profile_proxy_server_label
+ @string/profile_proxy_server_intro
+ @string/profile_proxy_host_label
+ @string/profile_proxy_host_hint
+ @string/profile_proxy_port_label
+ @string/profile_proxy_port_hint
+ @string/profile_proxy_exclusions_label
+ @string/profile_proxy_exclusions_hint
diff --git a/src/frontends/android/app/src/main/res/xml/managed_configuration.xml b/src/frontends/android/app/src/main/res/xml/managed_configuration.xml
index e86ad721e..8c2a70eb8 100644
--- a/src/frontends/android/app/src/main/res/xml/managed_configuration.xml
+++ b/src/frontends/android/app/src/main/res/xml/managed_configuration.xml
@@ -1,5 +1,6 @@