diff --git a/app/src/main/java/ru/vtosters/hooks/VKProxy.java b/app/src/main/java/ru/vtosters/hooks/VKProxy.java
index ec389ce64..69854e991 100644
--- a/app/src/main/java/ru/vtosters/hooks/VKProxy.java
+++ b/app/src/main/java/ru/vtosters/hooks/VKProxy.java
@@ -12,23 +12,38 @@ import org.json.JSONException;
import org.json.JSONObject;
import ru.vtosters.hooks.other.Preferences;
import ru.vtosters.lite.di.singleton.VtOkHttpClient;
+import ru.vtosters.lite.utils.AndroidUtils;
import java.io.IOException;
public class VKProxy {
private static final OkHttpClient sClient = VtOkHttpClient.getInstance();
+ private static String nwProxy = Preferences.getPreferences().getString("configNetworkProxy", "");
+ private static String nwProxyCerts = Preferences.getPreferences().getString("configNetworkProxyCerts", "");
public static boolean isProxyEnabled() {
- return Preferences.getBoolValue("isVKProxyEnabled", false);
+ return Preferences.getBoolValue("useProxyServer", false);
}
public static void setProxyStatus(boolean status) {
- Preferences.getPreferences().edit().putBoolean("isVKProxyEnabled", status).apply();
+ Preferences.getPreferences().edit().putBoolean("useProxyServer", status).apply();
+ }
+
+ public static String getConfigNetworkProxy() {
+ if (nwProxyCerts.isEmpty()) {
+ load();
+ }
+ return nwProxy;
+ }
+
+ public static String getConfigNetworkProxyCerts() {
+ if (nwProxyCerts.isEmpty()) {
+ load();
+ }
+ return nwProxyCerts;
}
public static void load() {
- if (!isProxyEnabled()) return;
-
Request request = new Request.a()
.b("https://firebaseremoteconfig.googleapis.com/v1/projects/api-project-841415684880/namespaces/firebase:fetch")
.a(RequestBody.a(MediaType.b("application/json; charset=UTF-8"), "{\"appId\":\"1:841415684880:android:632f429381141121\",\"appInstanceId\":\"RB855168585SG\"}\n"))
@@ -51,7 +66,6 @@ public class VKProxy {
@Override
public void a(Call call, Response response) throws IOException {
String payload = response.a().g();
- Log.d("VKProxy", payload);
try {
JSONObject jsonObject = new JSONObject(payload).getJSONObject("entries");
@@ -64,11 +78,12 @@ public class VKProxy {
new ProxySettings().c(configNetworkProxy);
new ProxySettings().b(configNetworkProxyCerts);
- Preference.b("NetworkProxy", "proxy_enabled_cookie", true);
- Preference.b("NetworkProxy", "proxy_user_state", true);
- Network.l.b().a(true);
- new ProxyHost().a(true);
- new NetworkProxyPreferences().a(NetworkProxy.Reason.PROXY_ENABLED_SERVER);
+ Preferences.getPreferences().edit().putString("configNetworkProxy", configNetworkProxy).putString("configNetworkProxyCerts", configNetworkProxyCerts).apply();
+
+ nwProxy = configNetworkProxy;
+ nwProxyCerts = configNetworkProxyCerts;
+
+ AndroidUtils.sendToast("Инициализированы прокси");
} catch (JSONException e) {
throw new RuntimeException(e);
}
diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/DataSettingsFragment.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/DataSettingsFragment.java
index cb79f8892..ee31069b5 100644
--- a/app/src/main/java/ru/vtosters/lite/ui/fragments/DataSettingsFragment.java
+++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/DataSettingsFragment.java
@@ -14,10 +14,6 @@ import android.widget.Toast;
import androidx.appcompat.view.ContextThemeWrapper;
import b.h.g.m.FileUtils;
import com.vk.core.dialogs.alert.VkAlertDialog;
-import com.vk.core.network.Network;
-import com.vk.core.network.proxy.NetworkProxy;
-import com.vk.core.network.proxy.ProxyHost;
-import com.vk.core.preference.Preference;
import com.vk.im.engine.ImEngine1;
import com.vk.im.engine.ImEngineExt;
import com.vk.im.ui.providers.audiomsg.ImAudioMsgPlayerProvider;
@@ -26,10 +22,8 @@ import com.vk.imageloader.VKImageLoader;
import com.vk.media.player.cache.AutoPlayCacheHolder;
import com.vk.mediastore.MediaStorage;
import com.vk.stickers.Stickers;
-import com.vtosters.lite.NetworkProxyPreferences;
import com.vtosters.lite.im.ImEngineProvider;
import ru.vtosters.hooks.SwitchHook;
-import ru.vtosters.hooks.VKProxy;
import ru.vtosters.hooks.other.Preferences;
import ru.vtosters.hooks.other.ThemesUtils;
import ru.vtosters.lite.ui.PreferenceFragmentUtils;
@@ -282,32 +276,6 @@ public class DataSettingsFragment extends TrackedMaterialPreferenceToolbarFragme
PreferenceFragmentUtils.addPreferenceCategory(getPreferenceScreen(), AndroidUtils.getString("sett_other"));
- PreferenceFragmentUtils.addMaterialSwitchPreference(
- getPreferenceScreen(),
- "",
- "Use Proxy Server",
- null,
- null,
- VKProxy.isProxyEnabled(),
- (preference, o) -> {
- VKProxy.setProxyStatus((Boolean) o);
- VKProxy.load();
-
- if ((Boolean) o) {
- Preference.b("NetworkProxy", "proxy_enabled_cookie", true);
- Preference.b("NetworkProxy", "proxy_user_state", true);
- Network.l.b().a(true);
- new ProxyHost().a(true);
- } else {
- Preference.b("NetworkProxy", "proxy_enabled_cookie", false);
- Preference.b("NetworkProxy", "proxy_user_state", false);
- Network.l.b().a(false);
- new ProxyHost().a(false);
- }
- return true;
- }
- );
-
PreferenceFragmentUtils.addMaterialSwitchPreference(
getPreferenceScreen(),
"disableForceTrafficSaver",
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 370dd7aa4..4032ff931 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,25 +1,34 @@
package ru.vtosters.lite.ui.fragments;
import android.os.Bundle;
+import com.vk.core.preference.Preference;
import com.vtosters.lite.R;
+import ru.vtosters.hooks.VKProxy;
+import ru.vtosters.lite.ui.PreferenceFragmentUtils;
public class ProxySettingsFragment extends TrackedMaterialPreferenceToolbarFragment {
@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
addPreferencesFromResource(R.xml.preferences_proxy);
-// findPreference("random_proxy").setOnPreferenceClickListener(preference -> {
-// try {
-// setupNewProxy();
-// } catch (IOException e) {
-// sendToast(requireContext().getString(R.string.get_proxy_error));
-// }
-// return true;
-// });
+
+ PreferenceFragmentUtils.addMaterialSwitchPreference(
+ getPreferenceScreen(),
+ "",
+ "Use VK Proxy Server",
+ null,
+ null,
+ VKProxy.isProxyEnabled(),
+ (preference, o) -> {
+ VKProxy.setProxyStatus((Boolean) o);
+ VKProxy.load();
+ return true;
+ }
+ );
}
@Override
public int T4() {
return R.string.vtlproxy;
}
-}
+}
\ No newline at end of file
diff --git a/smali/res/xml/preferences_general_milkshake.xml b/smali/res/xml/preferences_general_milkshake.xml
index a73d819da..0c376c4e2 100644
--- a/smali/res/xml/preferences_general_milkshake.xml
+++ b/smali/res/xml/preferences_general_milkshake.xml
@@ -36,6 +36,11 @@
android:key="trackInstalledApps"
android:summary="@string/sett_mytracker_location_crap_summary"
android:title="@string/sett_mytracker_apps"/>
+
a:Lcom/vk/core/network/proxy/ProxyHost;
+
+ invoke-virtual {v0}, Lcom/vk/core/network/proxy/ProxyHost;->i()V
+
return-void
.end method
diff --git a/smali/smali_classes2/com/vk/core/network/proxy/ProxyHost.smali b/smali/smali_classes2/com/vk/core/network/proxy/ProxyHost.smali
index 779dffff9..ae64a0553 100644
--- a/smali/smali_classes2/com/vk/core/network/proxy/ProxyHost.smali
+++ b/smali/smali_classes2/com/vk/core/network/proxy/ProxyHost.smali
@@ -382,6 +382,8 @@
if-eqz p1, :cond_0
+ const/4 v3, 0x1
+
goto :goto_0
:cond_0
@@ -598,7 +600,9 @@
.locals 1
.line 1
- invoke-static {}, Lru/vtosters/hooks/VKProxy;->isProxyEnabled()Z
+ iget-object v0, p0, Lcom/vk/core/network/proxy/ProxyHost;->e:Ljava/util/concurrent/atomic/AtomicBoolean;
+
+ invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicBoolean;->get()Z
move-result v0
@@ -685,9 +689,13 @@
.method public i()V
.locals 3
- const-string v1, ""
+ invoke-static {}, Lru/vtosters/hooks/VKProxy;->getConfigNetworkProxy()Z
- const-string v0, ""
+ move-result-object v1
+
+ invoke-static {}, Lru/vtosters/hooks/VKProxy;->getConfigNetworkProxyCerts()Z
+
+ move-result-object v0
.line 3
iget-object v2, p0, Lcom/vk/core/network/proxy/ProxyHost;->d:Lcom/vk/core/network/proxy/ProxySettings;
diff --git a/smali/smali_classes2/com/vk/core/network/proxy/ProxyHostChecker.smali b/smali/smali_classes2/com/vk/core/network/proxy/ProxyHostChecker.smali
index fba82ebbe..63f9813bb 100644
--- a/smali/smali_classes2/com/vk/core/network/proxy/ProxyHostChecker.smali
+++ b/smali/smali_classes2/com/vk/core/network/proxy/ProxyHostChecker.smali
@@ -31,7 +31,17 @@
.locals 3
.line 1
- invoke-static {}, Lru/vtosters/hooks/VKProxy;->isProxyEnabled()Z
+ sget-object v0, Lcom/vk/core/util/AppContextHolder;->a:Landroid/content/Context;
+
+ invoke-static {v0}, Landroid/preference/PreferenceManager;->getDefaultSharedPreferences(Landroid/content/Context;)Landroid/content/SharedPreferences;
+
+ move-result-object v0
+
+ const-string v1, "__dbg_proxy_enable"
+
+ const/4 v2, 0x0
+
+ invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z
move-result v0
diff --git a/smali/smali_classes4/com/vtosters/lite/general/fragments/SettingsGeneralFragment.smali b/smali/smali_classes4/com/vtosters/lite/general/fragments/SettingsGeneralFragment.smali
index dcc67a9d7..6ad10d081 100644
--- a/smali/smali_classes4/com/vtosters/lite/general/fragments/SettingsGeneralFragment.smali
+++ b/smali/smali_classes4/com/vtosters/lite/general/fragments/SettingsGeneralFragment.smali
@@ -989,6 +989,36 @@
invoke-virtual {v0, p1}, Landroidx/preference/PreferenceGroup;->removePreference(Landroidx/preference/Preference;)Z
+ const-string p1, "useProxyServer"
+
+ .line 9
+ invoke-virtual {p0, p1}, Lcom/vtosters/lite/fragments/u2/PreferenceFragmentCompat;->findPreference(Ljava/lang/CharSequence;)Landroidx/preference/Preference;
+
+ move-result-object p1
+
+ check-cast p1, Landroidx/preference/SwitchPreference;
+
+ .line 10
+ sget-object v0, Lcom/vk/core/network/Network;->l:Lcom/vk/core/network/Network;
+
+ invoke-virtual {v0}, Lcom/vk/core/network/Network;->b()Lcom/vk/core/network/proxy/NetworkProxy;
+
+ move-result-object v0
+
+ .line 11
+ invoke-virtual {v0}, Lcom/vk/core/network/proxy/NetworkProxy;->d()Z
+
+ move-result v2
+
+ invoke-virtual {p1, v2}, Landroidx/preference/TwoStatePreference;->setChecked(Z)V
+
+ .line 12
+ new-instance v2, Lcom/vtosters/lite/general/fragments/SettingsGeneralFragment$b;
+
+ invoke-direct {v2, p0, v0, p1}, Lcom/vtosters/lite/general/fragments/SettingsGeneralFragment$b;->(Lcom/vtosters/lite/general/fragments/SettingsGeneralFragment;Lcom/vk/core/network/proxy/NetworkProxy;Landroidx/preference/SwitchPreference;)V
+
+ invoke-virtual {p1, v2}, Landroidx/preference/Preference;->setOnPreferenceChangeListener(Landroidx/preference/Preference$OnPreferenceChangeListener;)V
+
const-string p1, "isRoamingState"
.line 13