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