Fix issue #225 - Add proxy for uploads

This commit is contained in:
tom79 2019-10-20 11:25:28 +02:00
parent 357c34d9f3
commit 834ee4ab17
2 changed files with 36 additions and 3 deletions

View File

@ -1610,9 +1610,7 @@ public class TootActivity extends BaseActivity implements UploadStatusDelegate,
;
request.addParameter("filename", fileName).setMaxRetries(maxUploadRetryTimes)
.startUpload();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
} catch (MalformedURLException | FileNotFoundException e) {
e.printStackTrace();
}
}

View File

@ -163,7 +163,11 @@ import java.io.InputStreamReader;
import java.io.OutputStream;
import java.lang.ref.WeakReference;
import java.lang.reflect.Type;
import java.net.Authenticator;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.PasswordAuthentication;
import java.net.Proxy;
import java.net.URISyntaxException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
@ -4610,6 +4614,8 @@ public class Helper {
public static OkHttpClient getHttpClient(Context context) {
SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
boolean proxyEnabled = sharedpreferences.getBoolean(Helper.SET_PROXY_ENABLED, false);
OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder()
.followRedirects(true)
.followSslRedirects(true)
@ -4618,6 +4624,35 @@ public class Helper {
.writeTimeout(30, TimeUnit.SECONDS)
.readTimeout(30, TimeUnit.SECONDS)
.cache(null);
if (proxyEnabled) {
Proxy proxy;
int type = sharedpreferences.getInt(Helper.SET_PROXY_TYPE, 0);
try {
String host = sharedpreferences.getString(Helper.SET_PROXY_HOST, "127.0.0.1");
int port = sharedpreferences.getInt(Helper.SET_PROXY_PORT, 8118);
if (type == 0)
proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(host, port));
else
proxy = new Proxy(Proxy.Type.SOCKS, new InetSocketAddress(host, port));
final String login = sharedpreferences.getString(Helper.SET_PROXY_LOGIN, null);
final String pwd = sharedpreferences.getString(Helper.SET_PROXY_PASSWORD, null);
if (login != null) {
Authenticator authenticator = new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
assert pwd != null;
return (new PasswordAuthentication(login,
pwd.toCharArray()));
}
};
Authenticator.setDefault(authenticator);
}
} catch (Exception e) {
proxy = null;
}
if( proxy != null) {
clientBuilder.proxy(proxy);
}
}
return enableTls12OnPreLollipop(clientBuilder).build();
}