Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6eb88e678f | ||
|
|
4aee200214 |
@@ -0,0 +1,93 @@
|
||||
package ru.vtosters.hooks;
|
||||
|
||||
import android.util.Log;
|
||||
import com.vk.core.network.Network;
|
||||
import com.vk.core.network.proxy.NetworkProxy;
|
||||
import com.vk.core.network.proxy.ProxyHost;
|
||||
import com.vk.core.network.proxy.ProxySettings;
|
||||
import com.vk.core.preference.Preference;
|
||||
import com.vtosters.lite.NetworkProxyPreferences;
|
||||
import okhttp3.*;
|
||||
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("useProxyServer", false);
|
||||
}
|
||||
|
||||
public static void setProxyStatus(boolean status) {
|
||||
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() {
|
||||
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"))
|
||||
// .a("Content-Encoding", "gzip")
|
||||
// .a("Accept-Encoding", "gzip")
|
||||
.a("Connection", "Keep-Alive")
|
||||
.a("X-Android-Package", "com.vkontakte.android")
|
||||
.a("X-Android-Cert", "C8EAB7342DA62B4A229E1BFDEB27B029DD6788A1")
|
||||
.a("Host", "firebaseremoteconfig.googleapis.com")
|
||||
.a("x-goog-api-key", "AIzaSyCL17U2Q5i1NVwIcXgMOZMidSRFHyGYgwM")
|
||||
.a("User-Agent", Network.l.c().a())
|
||||
.a();
|
||||
|
||||
sClient.a(request).a(new Callback() {
|
||||
@Override
|
||||
public void a(Call call, IOException e) {
|
||||
Log.d("VKProxy", e.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void a(Call call, Response response) throws IOException {
|
||||
String payload = response.a().g();
|
||||
|
||||
try {
|
||||
JSONObject jsonObject = new JSONObject(payload).getJSONObject("entries");
|
||||
String configNetworkProxy = jsonObject.getString("config_network_proxy");
|
||||
String configNetworkProxyCerts = jsonObject.getString("config_network_proxy_certs");
|
||||
|
||||
Log.d("VKProxy", configNetworkProxy);
|
||||
Log.d("VKProxy", configNetworkProxyCerts);
|
||||
|
||||
new ProxySettings().c(configNetworkProxy);
|
||||
new ProxySettings().b(configNetworkProxyCerts);
|
||||
|
||||
Preferences.getPreferences().edit().putString("configNetworkProxy", configNetworkProxy).putString("configNetworkProxyCerts", configNetworkProxyCerts).apply();
|
||||
|
||||
nwProxy = configNetworkProxy;
|
||||
nwProxyCerts = configNetworkProxyCerts;
|
||||
|
||||
AndroidUtils.sendToast("Инициализированы прокси");
|
||||
} catch (JSONException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -11,6 +11,7 @@ import com.vk.medianative.MediaNative;
|
||||
import com.vtosters.lite.data.Users;
|
||||
import com.vtosters.lite.fragments.SettingsListFragment;
|
||||
import ru.vtosters.hooks.GmsHook;
|
||||
import ru.vtosters.hooks.VKProxy;
|
||||
import ru.vtosters.hooks.VerificationsHook;
|
||||
import ru.vtosters.lite.BuildConfig;
|
||||
import ru.vtosters.lite.proxy.ProxyUtils;
|
||||
@@ -33,6 +34,7 @@ public class Preferences {
|
||||
LifecycleUtils.registerActivities(application);
|
||||
|
||||
AnalyticsHelper.start(application);
|
||||
VKProxy.load();
|
||||
} // VK Init
|
||||
|
||||
public static String getBuildName() {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -36,6 +36,11 @@
|
||||
android:key="trackInstalledApps"
|
||||
android:summary="@string/sett_mytracker_location_crap_summary"
|
||||
android:title="@string/sett_mytracker_apps"/>
|
||||
<com.vtosters.lite.ui.MaterialSwitchPreference
|
||||
android:defaultValue="false"
|
||||
android:key="useProxyServer"
|
||||
android:title="@string/sett_use_proxy"
|
||||
android:visibility="gone" />
|
||||
<com.vtosters.lite.ui.MaterialSwitchPreference
|
||||
android:defaultValue="false"
|
||||
android:key="isRoamingState"
|
||||
|
||||
@@ -1162,7 +1162,10 @@
|
||||
:try_start_0
|
||||
iput-object p1, p0, Lcom/vk/core/network/proxy/NetworkProxy;->c:Lcom/vk/core/network/proxy/NetworkProxy$c;
|
||||
|
||||
const p1, 0x0
|
||||
.line 7
|
||||
invoke-static {}, Lru/vtosters/hooks/VKProxy;->isProxyEnabled()Z
|
||||
|
||||
move-result p1
|
||||
|
||||
if-eqz p1, :cond_1
|
||||
|
||||
|
||||
@@ -1,49 +0,0 @@
|
||||
.class Lcom/vk/core/network/proxy/ProxyHost$a$a;
|
||||
.super Ljava/lang/Object;
|
||||
.source "ProxyHost.java"
|
||||
|
||||
# interfaces
|
||||
.implements Ljava/lang/Runnable;
|
||||
|
||||
|
||||
# annotations
|
||||
.annotation system Ldalvik/annotation/EnclosingMethod;
|
||||
value = Lcom/vk/core/network/proxy/ProxyHost$a;->a(Ljava/lang/Long;)V
|
||||
.end annotation
|
||||
|
||||
.annotation system Ldalvik/annotation/InnerClass;
|
||||
accessFlags = 0x0
|
||||
name = null
|
||||
.end annotation
|
||||
|
||||
|
||||
# instance fields
|
||||
.field final synthetic a:Lcom/vk/core/network/proxy/ProxyHost$a;
|
||||
|
||||
|
||||
# direct methods
|
||||
.method constructor <init>(Lcom/vk/core/network/proxy/ProxyHost$a;)V
|
||||
.locals 0
|
||||
|
||||
.line 1
|
||||
iput-object p1, p0, Lcom/vk/core/network/proxy/ProxyHost$a$a;->a:Lcom/vk/core/network/proxy/ProxyHost$a;
|
||||
|
||||
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
|
||||
|
||||
return-void
|
||||
.end method
|
||||
|
||||
|
||||
# virtual methods
|
||||
.method public run()V
|
||||
.locals 1
|
||||
|
||||
.line 1
|
||||
iget-object v0, p0, Lcom/vk/core/network/proxy/ProxyHost$a$a;->a:Lcom/vk/core/network/proxy/ProxyHost$a;
|
||||
|
||||
iget-object v0, v0, Lcom/vk/core/network/proxy/ProxyHost$a;->a:Lcom/vk/core/network/proxy/ProxyHost;
|
||||
|
||||
invoke-virtual {v0}, Lcom/vk/core/network/proxy/ProxyHost;->i()V
|
||||
|
||||
return-void
|
||||
.end method
|
||||
@@ -52,6 +52,11 @@
|
||||
}
|
||||
.end annotation
|
||||
|
||||
.line 1
|
||||
iget-object v0, p0, Lcom/vk/core/network/proxy/ProxyHost$a;->a:Lcom/vk/core/network/proxy/ProxyHost;
|
||||
|
||||
invoke-virtual {v0}, Lcom/vk/core/network/proxy/ProxyHost;->i()V
|
||||
|
||||
return-void
|
||||
.end method
|
||||
|
||||
|
||||
@@ -382,6 +382,8 @@
|
||||
|
||||
if-eqz p1, :cond_0
|
||||
|
||||
const/4 v3, 0x1
|
||||
|
||||
goto :goto_0
|
||||
|
||||
:cond_0
|
||||
@@ -687,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;
|
||||
|
||||
@@ -622,7 +622,9 @@
|
||||
|
||||
.line 12
|
||||
:cond_1
|
||||
const p1, 0x0
|
||||
invoke-static {}, Lru/vtosters/hooks/VKProxy;->isProxyEnabled()Z
|
||||
|
||||
move-result p1
|
||||
|
||||
if-eqz p1, :cond_2
|
||||
|
||||
|
||||
+30
@@ -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;-><init>(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
|
||||
|
||||
Reference in New Issue
Block a user