diff --git a/app/src/main/java/app/fedilab/android/activities/TootActivity.java b/app/src/main/java/app/fedilab/android/activities/TootActivity.java index 18be7f99a..45dd73317 100644 --- a/app/src/main/java/app/fedilab/android/activities/TootActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/TootActivity.java @@ -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(); } } diff --git a/app/src/main/java/app/fedilab/android/helper/Helper.java b/app/src/main/java/app/fedilab/android/helper/Helper.java index 40f086345..7dfa44a8d 100644 --- a/app/src/main/java/app/fedilab/android/helper/Helper.java +++ b/app/src/main/java/app/fedilab/android/helper/Helper.java @@ -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(); }