diff --git a/app/src/main/java/ru/vtosters/lite/utils/Proxy.java b/app/src/main/java/ru/vtosters/lite/utils/Proxy.java index ae0bfa600..3579f727d 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/Proxy.java +++ b/app/src/main/java/ru/vtosters/lite/utils/Proxy.java @@ -1,5 +1,6 @@ package ru.vtosters.lite.utils; +import static java.lang.System.*; import static ru.vtosters.lite.utils.Globals.*; import static ru.vtosters.lite.utils.Preferences.*; @@ -81,54 +82,90 @@ public class Proxy { } public static void setProxy() { + Properties properties = getProperties(); switch (getPreferences().getString("proxy", "")) { case "zaborona": - Properties properties = System.getProperties(); properties.setProperty("socksProxyHost", "socks.zaboronahelp.pp.ua"); properties.setProperty("socksProxyPort", "1488"); - System.clearProperty("https.proxyHost"); - System.clearProperty("https.proxyPort"); - System.clearProperty("http.proxyHost"); - System.clearProperty("http.proxyPort"); + clearProperty("java.net.socks.username"); + clearProperty("java.net.socks.password"); + resetProxySocks(); break; case "socks": - Properties properties2 = System.getProperties(); - properties2.setProperty("socksProxyHost", proxyHostSocks()); - properties2.setProperty("socksProxyPort", proxyPortSocks()); - System.clearProperty("https.proxyHost"); - System.clearProperty("https.proxyPort"); - System.clearProperty("http.proxyHost"); - System.clearProperty("http.proxyPort"); + properties.setProperty("socksProxyHost", proxyHostSocks()); + properties.setProperty("socksProxyPort", proxyPortSocks()); + properties.setProperty("java.net.socks.username", proxyUserSocks()); + properties.setProperty("java.net.socks.password", proxyPassSocks()); + resetProxySocks(); break; case "http": - Properties properties3 = System.getProperties(); - properties3.setProperty("http.proxyHost", proxyHostHTTP()); - properties3.setProperty("http.proxyPort", proxyPortHTTP()); - System.clearProperty("socksProxyHost"); - System.clearProperty("socksPortHost"); - System.clearProperty("https.proxyHost"); - System.clearProperty("https.proxyPort"); + properties.setProperty("http.proxyHost", proxyHostHTTP()); + properties.setProperty("http.proxyPort", proxyPortHTTP()); + properties.setProperty("http.proxyUser", proxyUserHTTP()); + properties.setProperty("http.proxyPassword", proxyPassHTTP()); + resetProxyHttp(); break; case "https": - Properties properties4 = System.getProperties(); - properties4.setProperty("https.proxyHost", proxyHostHTTPS()); - properties4.setProperty("https.proxyPort", proxyPortHTTPS()); - System.clearProperty("socksProxyHost"); - System.clearProperty("socksPortHost"); - System.clearProperty("http.proxyHost"); - System.clearProperty("http.proxyPort"); + properties.setProperty("https.proxyHost", proxyHostHTTPS()); + properties.setProperty("https.proxyPort", proxyPortHTTPS()); + properties.setProperty("https.proxyUser", proxyUserHTTPS()); + properties.setProperty("https.proxyPassword", proxyPassHTTPS()); + resetProxyHttps(); break; default: - System.clearProperty("socksProxyHost"); - System.clearProperty("socksPortHost"); - System.clearProperty("https.proxyHost"); - System.clearProperty("https.proxyPort"); - System.clearProperty("http.proxyHost"); - System.clearProperty("http.proxyPort"); + resetProxy(); break; } } + public static void resetProxy() { + clearProperty("https.proxyHost"); + clearProperty("https.proxyPort"); + clearProperty("https.proxyUser"); + clearProperty("https.proxyPassword"); + clearProperty("http.proxyHost"); + clearProperty("http.proxyPort"); + clearProperty("http.proxyUser"); + clearProperty("http.proxyPassword"); + clearProperty("socksProxyHost"); + clearProperty("socksPortHost"); + clearProperty("java.net.socks.username"); + clearProperty("java.net.socks.password"); + } + + public static void resetProxySocks() { + clearProperty("https.proxyHost"); + clearProperty("https.proxyPort"); + clearProperty("https.proxyUser"); + clearProperty("https.proxyPassword"); + clearProperty("http.proxyHost"); + clearProperty("http.proxyPort"); + clearProperty("http.proxyUser"); + clearProperty("http.proxyPassword"); + } + + public static void resetProxyHttp() { + clearProperty("https.proxyHost"); + clearProperty("https.proxyPort"); + clearProperty("https.proxyUser"); + clearProperty("https.proxyPassword"); + clearProperty("socksProxyHost"); + clearProperty("socksPortHost"); + clearProperty("java.net.socks.username"); + clearProperty("java.net.socks.password"); + } + + public static void resetProxyHttps() { + clearProperty("http.proxyHost"); + clearProperty("http.proxyPort"); + clearProperty("http.proxyUser"); + clearProperty("http.proxyPassword"); + clearProperty("socksProxyHost"); + clearProperty("socksPortHost"); + clearProperty("java.net.socks.username"); + clearProperty("java.net.socks.password"); + } + public static String proxyHostHTTP() { String string = getPreferences().getString("proxyHostHTTP", ""); return string.isEmpty() ? "192.168.0.1" : string; @@ -159,6 +196,36 @@ public class Proxy { return string.isEmpty() ? "8888" : string; } + public static String proxyUserHTTP() { + String string = getPreferences().getString("proxyUserHTTP", ""); + return string.isEmpty() ? "" : string; + } + + public static String proxyUserHTTPS() { + String string = getPreferences().getString("proxyUserHTTPS", ""); + return string.isEmpty() ? "" : string; + } + + public static String proxyUserSocks() { + String string = getPreferences().getString("proxyUserSocks", ""); + return string.isEmpty() ? "" : string; + } + + public static String proxyPassHTTP() { + String string = getPreferences().getString("proxyPassHTTP", ""); + return string.isEmpty() ? "" : string; + } + + public static String proxyPassHTTPS() { + String string = getPreferences().getString("proxyPassHTTPS", ""); + return string.isEmpty() ? "" : string; + } + + public static String proxyPassSocks() { + String string = getPreferences().getString("proxyPassSocks", ""); + return string.isEmpty() ? "" : string; + } + public static boolean proxy() { return getPreferences().getString("proxy", "").equals("apiproxy"); } diff --git a/smali/res/xml/preferences_proxy.xml b/smali/res/xml/preferences_proxy.xml index 9d1afe863..8009547a4 100644 --- a/smali/res/xml/preferences_proxy.xml +++ b/smali/res/xml/preferences_proxy.xml @@ -38,6 +38,16 @@ android:defaultValue="" android:key="proxyPortHTTP" android:title="@string/proxyport" /> + + @@ -49,6 +59,16 @@ android:defaultValue="" android:key="proxyPortHTTPS" android:title="@string/proxyport" /> + + @@ -60,6 +80,16 @@ android:defaultValue="" android:key="proxyPortSocks" android:title="@string/proxyport" /> + +