diff --git a/app/src/main/java/ru/vtosters/lite/proxy/ProxyUtils.java b/app/src/main/java/ru/vtosters/lite/proxy/ProxyUtils.java index 2a32c6611..90530f2fd 100644 --- a/app/src/main/java/ru/vtosters/lite/proxy/ProxyUtils.java +++ b/app/src/main/java/ru/vtosters/lite/proxy/ProxyUtils.java @@ -93,33 +93,27 @@ public class ProxyUtils{ return list.contains(":"); // proxy format: ip:port } - public static void setProxy(){ - new Thread(() -> { - try { - switch(getPrefsValue("proxy")) { - case "zaborona": - Zaborona.loadProxy(); - break; - case "randomproxy": - RandomProxy.loadProxy(); - break; - case "socks": - CustomSocks.loadProxy(); - break; - case "http": - CustomHttp.loadProxy(); - break; - case "https": - CustomHttps.loadProxy(); - break; - default: - resetProxy(); - break; - } - } catch (IOException e) { - e.printStackTrace(); - } - }).start(); + public static void setProxy() throws IOException{ + switch(getPrefsValue("proxy")) { + case "zaborona": + Zaborona.loadProxy(); + break; + case "randomproxy": + RandomProxy.loadProxy(); + break; + case "socks": + CustomSocks.loadProxy(); + break; + case "http": + CustomHttp.loadProxy(); + break; + case "https": + CustomHttps.loadProxy(); + break; + default: + resetProxy(); + break; + } } public static void resetProxy(){ diff --git a/app/src/main/java/ru/vtosters/lite/proxy/RandomProxy.java b/app/src/main/java/ru/vtosters/lite/proxy/RandomProxy.java index c1268b862..ac5d25d1f 100644 --- a/app/src/main/java/ru/vtosters/lite/proxy/RandomProxy.java +++ b/app/src/main/java/ru/vtosters/lite/proxy/RandomProxy.java @@ -1,4 +1,10 @@ package ru.vtosters.lite.proxy; +import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying; +import static ru.vtosters.lite.proxy.ProxyUtils.resetProxy; +import static ru.vtosters.lite.utils.AndroidUtils.edit; +import static ru.vtosters.lite.utils.AndroidUtils.sendToast; +import static ru.vtosters.lite.utils.Preferences.preferences; + import java.io.IOException; import ru.vtosters.lite.proxy.socks.Hookzof; @@ -7,7 +13,45 @@ import ru.vtosters.lite.proxy.socks.Roosterkid; import ru.vtosters.lite.proxy.socks.TheSpeedX; public class RandomProxy{ + public static String type = preferences.getString("random_type", "none"); + public static String host = preferences.getString("random_host", ""); + public static boolean showProxyResult = false; + public static void loadProxy() throws IOException{ + if (host.isEmpty()) { + getProxy(); + loadProxy(); + return; + } + + switch(type) { + case "socks": + System.setProperty("socksProxyHost", host.split(":")[0]); + System.setProperty("socksProxyPort", host.split(":")[1]); + break; + case "http": + System.setProperty("http.proxyHost", host.split(":")[0]); + System.setProperty("http.proxyPort", host.split(":")[1]); + break; + case "https": + System.setProperty("https.proxyHost", host.split(":")[0]); + System.setProperty("https.proxyPort", host.split(":")[1]); + break; + } + } + + public static void setupNewProxy() throws IOException{ + edit().putString("random_type", "none").putString("random_host", "").commit(); + + resetProxy(); + forceProxyApplying(); + + showProxyResult = true; + getProxy(); + edit().putString("proxy", "randomproxy").commit(); + } + + public static void getProxy() throws IOException{ var random = new java.util.Random(); var randomInt = random.nextInt(7); switch(randomInt) { diff --git a/app/src/main/java/ru/vtosters/lite/proxy/http/Jetkai.java b/app/src/main/java/ru/vtosters/lite/proxy/http/Jetkai.java index 39ebab98e..3fc7f3670 100644 --- a/app/src/main/java/ru/vtosters/lite/proxy/http/Jetkai.java +++ b/app/src/main/java/ru/vtosters/lite/proxy/http/Jetkai.java @@ -2,12 +2,16 @@ package ru.vtosters.lite.proxy.http; import static ru.vtosters.lite.proxy.GithubList.getProxy; import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying; import static ru.vtosters.lite.proxy.ProxyUtils.hasProxy; +import static ru.vtosters.lite.utils.AndroidUtils.edit; import android.util.Log; import java.io.IOException; import java.util.ArrayList; +import ru.vtosters.lite.proxy.RandomProxy; +import ru.vtosters.lite.utils.AndroidUtils; + public class Jetkai{ private static final String TAG = "Jetkai_Http"; @@ -28,6 +32,14 @@ public class Jetkai{ Log.d(TAG, "Setting proxy: " + proxy.split(":")[0] + ":" + proxy.split(":")[1]); + if (RandomProxy.showProxyResult) { + AndroidUtils.sendToast("Прокси установлен, хост: " + proxy); + RandomProxy.showProxyResult = false; + RandomProxy.showProxyResult = false; + } + + edit().putString("random_type", "http").putString("random_host", proxy).commit(); + System.setProperty("http.proxyHost", proxy.split(":")[0]); System.setProperty("http.proxyPort", proxy.split(":")[1]); forceProxyApplying(); diff --git a/app/src/main/java/ru/vtosters/lite/proxy/http/TheSpeedX.java b/app/src/main/java/ru/vtosters/lite/proxy/http/TheSpeedX.java index 57cd822d3..5db322317 100644 --- a/app/src/main/java/ru/vtosters/lite/proxy/http/TheSpeedX.java +++ b/app/src/main/java/ru/vtosters/lite/proxy/http/TheSpeedX.java @@ -2,12 +2,16 @@ package ru.vtosters.lite.proxy.http; import static ru.vtosters.lite.proxy.GithubList.getProxy; import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying; import static ru.vtosters.lite.proxy.ProxyUtils.hasProxy; +import static ru.vtosters.lite.utils.AndroidUtils.edit; import android.util.Log; import java.io.IOException; import java.util.ArrayList; +import ru.vtosters.lite.proxy.RandomProxy; +import ru.vtosters.lite.utils.AndroidUtils; + public class TheSpeedX{ private static final String TAG = "TheSpeedX_Http"; @@ -28,6 +32,13 @@ public class TheSpeedX{ Log.d(TAG, "Setting proxy: " + proxy.split(":")[0] + ":" + proxy.split(":")[1]); + if (RandomProxy.showProxyResult) { + AndroidUtils.sendToast("Прокси установлен, хост: " + proxy); + RandomProxy.showProxyResult = false; + } + + edit().putString("random_type", "http").putString("random_host", proxy).commit(); + System.setProperty("http.proxyHost", proxy.split(":")[0]); System.setProperty("http.proxyPort", proxy.split(":")[1]); forceProxyApplying(); diff --git a/app/src/main/java/ru/vtosters/lite/proxy/https/Jetkai.java b/app/src/main/java/ru/vtosters/lite/proxy/https/Jetkai.java index 8495e89d4..ee777b665 100644 --- a/app/src/main/java/ru/vtosters/lite/proxy/https/Jetkai.java +++ b/app/src/main/java/ru/vtosters/lite/proxy/https/Jetkai.java @@ -2,12 +2,16 @@ package ru.vtosters.lite.proxy.https; import static ru.vtosters.lite.proxy.GithubList.getProxy; import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying; import static ru.vtosters.lite.proxy.ProxyUtils.hasProxy; +import static ru.vtosters.lite.utils.AndroidUtils.edit; import android.util.Log; import java.io.IOException; import java.util.ArrayList; +import ru.vtosters.lite.proxy.RandomProxy; +import ru.vtosters.lite.utils.AndroidUtils; + public class Jetkai{ private static final String TAG = "Jetkai_Https"; @@ -28,6 +32,13 @@ public class Jetkai{ Log.d(TAG, "Setting proxy: " + proxy.split(":")[0] + ":" + proxy.split(":")[1]); + if (RandomProxy.showProxyResult) { + AndroidUtils.sendToast("Прокси установлен, хост: " + proxy); + RandomProxy.showProxyResult = false; + } + + edit().putString("random_type", "https").putString("random_host", proxy).commit(); + System.setProperty("https.proxyHost", proxy.split(":")[0]); System.setProperty("https.proxyPort", proxy.split(":")[1]); forceProxyApplying(); diff --git a/app/src/main/java/ru/vtosters/lite/proxy/https/Roosterkid.java b/app/src/main/java/ru/vtosters/lite/proxy/https/Roosterkid.java index a3f268efc..face17a39 100644 --- a/app/src/main/java/ru/vtosters/lite/proxy/https/Roosterkid.java +++ b/app/src/main/java/ru/vtosters/lite/proxy/https/Roosterkid.java @@ -2,12 +2,16 @@ package ru.vtosters.lite.proxy.https; import static ru.vtosters.lite.proxy.GithubList.getProxy; import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying; import static ru.vtosters.lite.proxy.ProxyUtils.hasProxy; +import static ru.vtosters.lite.utils.AndroidUtils.edit; import android.util.Log; import java.io.IOException; import java.util.ArrayList; +import ru.vtosters.lite.proxy.RandomProxy; +import ru.vtosters.lite.utils.AndroidUtils; + public class Roosterkid{ private static final String TAG = "Roosterkid_Https"; @@ -28,6 +32,13 @@ public class Roosterkid{ Log.d(TAG, "Setting proxy: " + proxy.split(":")[0] + ":" + proxy.split(":")[1]); + if (RandomProxy.showProxyResult) { + AndroidUtils.sendToast("Прокси установлен, хост: " + proxy); + RandomProxy.showProxyResult = false; + } + + edit().putString("random_type", "https").putString("random_host", proxy).commit(); + System.setProperty("https.proxyHost", proxy.split(":")[0]); System.setProperty("https.proxyPort", proxy.split(":")[1]); forceProxyApplying(); diff --git a/app/src/main/java/ru/vtosters/lite/proxy/socks/Hookzof.java b/app/src/main/java/ru/vtosters/lite/proxy/socks/Hookzof.java index 0b9044aa1..1d0d9e7ce 100644 --- a/app/src/main/java/ru/vtosters/lite/proxy/socks/Hookzof.java +++ b/app/src/main/java/ru/vtosters/lite/proxy/socks/Hookzof.java @@ -2,12 +2,16 @@ package ru.vtosters.lite.proxy.socks; import static ru.vtosters.lite.proxy.GithubList.getProxy; import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying; import static ru.vtosters.lite.proxy.ProxyUtils.hasProxy; +import static ru.vtosters.lite.utils.AndroidUtils.edit; import android.util.Log; import java.io.IOException; import java.util.ArrayList; +import ru.vtosters.lite.proxy.RandomProxy; +import ru.vtosters.lite.utils.AndroidUtils; + public class Hookzof{ private static final String TAG = "Hookzof_Socks"; @@ -28,6 +32,13 @@ public class Hookzof{ Log.d(TAG, "Setting proxy: " + proxy.split(":")[0] + ":" + proxy.split(":")[1]); + if (RandomProxy.showProxyResult) { + AndroidUtils.sendToast("Прокси установлен, хост: " + proxy); + RandomProxy.showProxyResult = false; + } + + edit().putString("random_type", "socks").putString("random_host", proxy).commit(); + System.setProperty("socksProxyHost", proxy.split(":")[0]); System.setProperty("socksProxyPort", proxy.split(":")[1]); forceProxyApplying(); diff --git a/app/src/main/java/ru/vtosters/lite/proxy/socks/Jetkai.java b/app/src/main/java/ru/vtosters/lite/proxy/socks/Jetkai.java index 5dde69311..e8e6815ee 100644 --- a/app/src/main/java/ru/vtosters/lite/proxy/socks/Jetkai.java +++ b/app/src/main/java/ru/vtosters/lite/proxy/socks/Jetkai.java @@ -2,12 +2,16 @@ package ru.vtosters.lite.proxy.socks; import static ru.vtosters.lite.proxy.GithubList.getProxy; import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying; import static ru.vtosters.lite.proxy.ProxyUtils.hasProxy; +import static ru.vtosters.lite.utils.AndroidUtils.edit; import android.util.Log; import java.io.IOException; import java.util.ArrayList; +import ru.vtosters.lite.proxy.RandomProxy; +import ru.vtosters.lite.utils.AndroidUtils; + public class Jetkai{ private static final String TAG = "Jetkai_Socks"; @@ -28,6 +32,13 @@ public class Jetkai{ Log.d(TAG, "Setting proxy: " + proxy.split(":")[0] + ":" + proxy.split(":")[1]); + if (RandomProxy.showProxyResult) { + AndroidUtils.sendToast("Прокси установлен, хост: " + proxy); + RandomProxy.showProxyResult = false; + } + + edit().putString("random_type", "socks").putString("random_host", proxy).commit(); + System.setProperty("socksProxyHost", proxy.split(":")[0]); System.setProperty("socksProxyPort", proxy.split(":")[1]); forceProxyApplying(); diff --git a/app/src/main/java/ru/vtosters/lite/proxy/socks/Roosterkid.java b/app/src/main/java/ru/vtosters/lite/proxy/socks/Roosterkid.java index 5d75acd12..8a53527ef 100644 --- a/app/src/main/java/ru/vtosters/lite/proxy/socks/Roosterkid.java +++ b/app/src/main/java/ru/vtosters/lite/proxy/socks/Roosterkid.java @@ -2,12 +2,16 @@ package ru.vtosters.lite.proxy.socks; import static ru.vtosters.lite.proxy.GithubList.getProxy; import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying; import static ru.vtosters.lite.proxy.ProxyUtils.hasProxy; +import static ru.vtosters.lite.utils.AndroidUtils.edit; import android.util.Log; import java.io.IOException; import java.util.ArrayList; +import ru.vtosters.lite.proxy.RandomProxy; +import ru.vtosters.lite.utils.AndroidUtils; + public class Roosterkid{ private static final String TAG = "Roosterkid_Socks"; @@ -28,6 +32,13 @@ public class Roosterkid{ Log.d(TAG, "Setting proxy: " + proxy.split(":")[0] + ":" + proxy.split(":")[1]); + if (RandomProxy.showProxyResult) { + AndroidUtils.sendToast("Прокси установлен, хост: " + proxy); + RandomProxy.showProxyResult = false; + } + + edit().putString("random_type", "socks").putString("random_host", proxy).commit(); + System.setProperty("socksProxyHost", proxy.split(":")[0]); System.setProperty("socksProxyPort", proxy.split(":")[1]); forceProxyApplying(); diff --git a/app/src/main/java/ru/vtosters/lite/proxy/socks/TheSpeedX.java b/app/src/main/java/ru/vtosters/lite/proxy/socks/TheSpeedX.java index 1b9d63e15..296b6925f 100644 --- a/app/src/main/java/ru/vtosters/lite/proxy/socks/TheSpeedX.java +++ b/app/src/main/java/ru/vtosters/lite/proxy/socks/TheSpeedX.java @@ -2,12 +2,16 @@ package ru.vtosters.lite.proxy.socks; import static ru.vtosters.lite.proxy.GithubList.getProxy; import static ru.vtosters.lite.proxy.ProxyUtils.forceProxyApplying; import static ru.vtosters.lite.proxy.ProxyUtils.hasProxy; +import static ru.vtosters.lite.utils.AndroidUtils.edit; import android.util.Log; import java.io.IOException; import java.util.ArrayList; +import ru.vtosters.lite.proxy.RandomProxy; +import ru.vtosters.lite.utils.AndroidUtils; + public class TheSpeedX{ private static final String TAG = "TheSpeedX_Socks"; @@ -28,6 +32,13 @@ public class TheSpeedX{ Log.d(TAG, "Setting proxy: " + proxy.split(":")[0] + ":" + proxy.split(":")[1]); + if (RandomProxy.showProxyResult) { + AndroidUtils.sendToast("Прокси установлен, хост: " + proxy); + RandomProxy.showProxyResult = false; + } + + edit().putString("random_type", "socks").putString("random_host", proxy).commit(); + System.setProperty("socksProxyHost", proxy.split(":")[0]); System.setProperty("socksProxyPort", proxy.split(":")[1]); forceProxyApplying(); diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/ProxySettingsFragment.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/ProxySettingsFragment.java index 84b74cc20..b57dafd83 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/ProxySettingsFragment.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/ProxySettingsFragment.java @@ -1,15 +1,30 @@ package ru.vtosters.lite.ui.fragments; +import static ru.vtosters.lite.proxy.RandomProxy.setupNewProxy; +import static ru.vtosters.lite.utils.AndroidUtils.edit; import static ru.vtosters.lite.utils.AndroidUtils.getIdentifier; +import static ru.vtosters.lite.utils.AndroidUtils.sendToast; import android.os.Bundle; import com.vtosters.lite.general.fragments.MaterialPreferenceToolbarFragment; +import java.io.IOException; + +import ru.vtosters.lite.proxy.RandomProxy; + public class ProxySettingsFragment extends MaterialPreferenceToolbarFragment { @Override public void onCreate(Bundle bundle) { super.onCreate(bundle); addPreferencesFromResource(getIdentifier("preferences_proxy", "xml")); + findPreference("random_proxy").setOnPreferenceClickListener(preference -> { + try { + setupNewProxy(); + } catch (IOException e) { + sendToast("Ошибка при получении прокси"); + } + return true; + }); } } diff --git a/smali/res/xml/preferences_proxy.xml b/smali/res/xml/preferences_proxy.xml index e4e06d0cc..575f65e7b 100644 --- a/smali/res/xml/preferences_proxy.xml +++ b/smali/res/xml/preferences_proxy.xml @@ -16,6 +16,10 @@ android:entryValues="@array/proxy_value" android:key="proxy" android:title="@string/useproxy" /> +