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" />
+