summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH. Lehmann <ByteHamster@users.noreply.github.com>2019-08-11 10:19:52 +0200
committerGitHub <noreply@github.com>2019-08-11 10:19:52 +0200
commit3ceb99d2e242244ab62f5ed4edc09ff416f2d965 (patch)
tree455f6bd857fb1628b7b4ac85e1dccaa9974d86f0
parent1348169d888836f241d4fe1de036c496c6d58a8e (diff)
parentc47ceb7f73372f7ce9d605383a32e5b8ec9fe85b (diff)
downloadAntennaPod-3ceb99d2e242244ab62f5ed4edc09ff416f2d965.zip
Merge pull request #3303 from rezanejati/develop
Add socks proxy in network settings
-rw-r--r--app/src/main/java/de/danoeh/antennapod/dialog/ProxyDialog.java17
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/download/ProxyConfig.java6
2 files changed, 20 insertions, 3 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/ProxyDialog.java b/app/src/main/java/de/danoeh/antennapod/dialog/ProxyDialog.java
index 8f2629b43..c1008a380 100644
--- a/app/src/main/java/de/danoeh/antennapod/dialog/ProxyDialog.java
+++ b/app/src/main/java/de/danoeh/antennapod/dialog/ProxyDialog.java
@@ -3,6 +3,7 @@ package de.danoeh.antennapod.dialog;
import android.app.Dialog;
import android.content.Context;
import android.content.res.TypedArray;
+import android.os.Build;
import android.support.v4.content.ContextCompat;
import android.text.Editable;
import android.text.TextUtils;
@@ -23,6 +24,8 @@ import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.SocketAddress;
+import java.util.ArrayList;
+import java.util.List;
import java.util.concurrent.TimeUnit;
import de.danoeh.antennapod.R;
@@ -92,7 +95,11 @@ public class ProxyDialog {
if(!TextUtils.isEmpty(port)) {
portValue = Integer.valueOf(port);
}
- proxy = ProxyConfig.http(host, portValue, username, password);
+ if (Proxy.Type.valueOf(type) == Proxy.Type.SOCKS) {
+ proxy = ProxyConfig.socks(host, portValue, username, password);
+ } else {
+ proxy = ProxyConfig.http(host, portValue, username, password);
+ }
}
UserPreferences.setProxyConfig(proxy);
AntennapodHttpClient.reinit();
@@ -103,7 +110,13 @@ public class ProxyDialog {
.build();
View view = dialog.getCustomView();
spType = view.findViewById(R.id.spType);
- String[] types = { Proxy.Type.DIRECT.name(), Proxy.Type.HTTP.name() };
+
+ List<String> types= new ArrayList<>();
+ types.add(Proxy.Type.DIRECT.name());
+ types.add(Proxy.Type.HTTP.name());
+ if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
+ types.add(Proxy.Type.SOCKS.name());
+ }
ArrayAdapter<String> adapter = new ArrayAdapter<>(context,
android.R.layout.simple_spinner_item, types);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/ProxyConfig.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/ProxyConfig.java
index 619b58471..c4096c3da 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/download/ProxyConfig.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/download/ProxyConfig.java
@@ -22,6 +22,10 @@ public class ProxyConfig {
return new ProxyConfig(Proxy.Type.HTTP, host, port, username, password);
}
+ public static ProxyConfig socks(String host, int port, String username, String password) {
+ return new ProxyConfig(Proxy.Type.SOCKS, host, port, username, password);
+ }
+
public ProxyConfig(Proxy.Type type, String host, int port, String username, String password) {
this.type = type;
this.host = host;
@@ -29,4 +33,4 @@ public class ProxyConfig {
this.username = username;
this.password = password;
}
-}
+} \ No newline at end of file