Proxy Refactoring

This commit is contained in:
gdlbo
2022-08-17 17:11:50 +03:00
parent cbab131610
commit cc95856e47
42 changed files with 262 additions and 195 deletions
@@ -5,7 +5,7 @@ import static android.widget.Toast.makeText;
import static ru.vtosters.lite.utils.AndroidUtils.getGlobalContext;
import static ru.vtosters.lite.utils.AndroidUtils.getIdentifier;
import static ru.vtosters.lite.utils.AndroidUtils.getString;
import static ru.vtosters.lite.utils.ProxyUtils.apiproxy;
import static ru.vtosters.lite.utils.ProxyUtils.isApiProxyEnabled;
import static ru.vtosters.lite.utils.ProxyUtils.getApi;
import android.annotation.SuppressLint;
@@ -68,7 +68,7 @@ public class FoafBase {
private static String getLink(int i) {
String str;
StringBuilder sb;
if (apiproxy()) {
if (isApiProxyEnabled()) {
sb = new StringBuilder();
str = "https://" + getApi() + "/_/vk.com/foaf.php?id=";
} else {
@@ -2,9 +2,7 @@ package ru.vtosters.lite.hooks;
import static ru.vtosters.lite.utils.AndroidUtils.dp2px;
import static ru.vtosters.lite.utils.AndroidUtils.edit;
import static ru.vtosters.lite.utils.AndroidUtils.getPrefsValue;
import static ru.vtosters.lite.utils.LifecycleUtils.restartApplication;
import static ru.vtosters.lite.utils.ProxyUtils.apiproxy;
import static ru.vtosters.lite.utils.ProxyUtils.isRandomSocksEnabled;
import static ru.vtosters.lite.utils.ProxyUtils.isZaboronaEnabled;
import static ru.vtosters.lite.utils.ThemesUtils.getAccentColor;
@@ -15,7 +13,6 @@ import android.annotation.SuppressLint;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.util.Log;
import android.util.TypedValue;
import android.view.View;
import android.widget.RadioButton;
@@ -98,47 +95,4 @@ public class ProxyHook {
alert.getButton(DialogInterface.BUTTON_POSITIVE).setTextColor(getAccentColor());
alert.getButton(DialogInterface.BUTTON_NEUTRAL).setTextColor(getAccentColor());
}
public static String linkReplacer(String link) {
var vkapi = "api.vk.com";
var oauth = "oauth.vk.com";
var vkstatic = "static.vk.com";
var proxyapi = getPrefsValue("proxyapi");
var proxyoauth = getPrefsValue("proxyoauth");
var proxystatic = getPrefsValue("proxystatic");
if (!apiproxy() || link.isEmpty()) {
return link;
}
if (proxyapi.isEmpty() || proxyoauth.isEmpty() || proxystatic.isEmpty()) {
Log.d("VTLite", "Proxy is not set" + " " + proxyapi + " " + proxyoauth + " " + proxystatic);
return link;
}
if (link.contains(vkapi)) {
return link.replace(proxyapi, vkapi);
}
if (link.contains(oauth)) {
return link.replace(proxyoauth, oauth);
}
if (link.contains(vkstatic)) {
return link.replace(proxystatic, vkstatic);
}
return link;
}
public static String getAwayPhpCom() {
var proxyapi = getPrefsValue("proxyapi");
if (apiproxy() & !proxyapi.isEmpty()) {
return proxyapi;
}
return "m.vk.com";
}
}
@@ -0,0 +1,50 @@
package ru.vtosters.lite.proxy;
import static ru.vtosters.lite.utils.AndroidUtils.getPrefsValue;
import static ru.vtosters.lite.utils.ProxyUtils.isApiProxyEnabled;
import android.util.Log;
public class ApiProxy{
public static String linkReplacer(String link) {
var vkapi = "api.vk.com";
var oauth = "oauth.vk.com";
var vkstatic = "static.vk.com";
var proxyapi = getPrefsValue("proxyapi");
var proxyoauth = getPrefsValue("proxyoauth");
var proxystatic = getPrefsValue("proxystatic");
if (!isApiProxyEnabled() || link.isEmpty()) {
return link;
}
if (proxyapi.isEmpty() || proxyoauth.isEmpty() || proxystatic.isEmpty()) {
Log.d("VTLite", "Proxy is not set" + " " + proxyapi + " " + proxyoauth + " " + proxystatic);
return link;
}
if (link.contains(vkapi)) {
return link.replace(proxyapi, vkapi);
}
if (link.contains(oauth)) {
return link.replace(proxyoauth, oauth);
}
if (link.contains(vkstatic)) {
return link.replace(proxystatic, vkstatic);
}
return link;
}
public static String getAwayPhpCom() {
var proxyapi = getPrefsValue("proxyapi");
if (isApiProxyEnabled() & !proxyapi.isEmpty()) {
return proxyapi;
}
return "m.vk.com";
}
}
@@ -0,0 +1,33 @@
package ru.vtosters.lite.proxy;
import static ru.vtosters.lite.utils.AndroidUtils.getPrefsValue;
import static ru.vtosters.lite.utils.ProxyUtils.forceProxyApplying;
public class CustomHttp{
public static void loadProxy(){
System.setProperty("http.proxyHost", proxyHostHTTP());
System.setProperty("http.proxyPort", proxyPortHTTP());
System.setProperty("http.proxyUser", proxyUserHTTP());
System.setProperty("http.proxyPassword", proxyPassHTTP());
forceProxyApplying();
}
private static String proxyHostHTTP() {
var string = getPrefsValue("proxyHostHTTP");
return string.isEmpty() ? "192.168.0.1" : string;
}
private static String proxyPortHTTP() {
var string = getPrefsValue("proxyPortHTTP");
return string.isEmpty() ? "8888" : string;
}
private static String proxyUserHTTP() {
var string = getPrefsValue("proxyUserHTTP");
return string.isEmpty() ? "" : string;
}
private static String proxyPassHTTP() {
var string = getPrefsValue("proxyPassHTTP");
return string.isEmpty() ? "" : string;
}
}
@@ -0,0 +1,33 @@
package ru.vtosters.lite.proxy;
import static ru.vtosters.lite.utils.AndroidUtils.getPrefsValue;
import static ru.vtosters.lite.utils.ProxyUtils.forceProxyApplying;
public class CustomHttps{
public static void loadProxy(){
System.setProperty("https.proxyHost", proxyHostHTTPS());
System.setProperty("https.proxyPort", proxyPortHTTPS());
System.setProperty("https.proxyUser", proxyUserHTTPS());
System.setProperty("https.proxyPassword", proxyPassHTTPS());
forceProxyApplying();
}
private static String proxyHostHTTPS() {
var string = getPrefsValue("proxyHostHTTPS");
return string.isEmpty() ? "192.168.0.1" : string;
}
private static String proxyPortHTTPS() {
var string = getPrefsValue("proxyPortHTTPS");
return string.isEmpty() ? "8888" : string;
}
private static String proxyUserHTTPS() {
var string = getPrefsValue("proxyUserHTTPS");
return string.isEmpty() ? "" : string;
}
private static String proxyPassHTTPS() {
String string = getPrefsValue("proxyPassHTTPS");
return string.isEmpty() ? "" : string;
}
}
@@ -0,0 +1,21 @@
package ru.vtosters.lite.proxy;
import static ru.vtosters.lite.utils.AndroidUtils.getPrefsValue;
import static ru.vtosters.lite.utils.ProxyUtils.forceProxyApplying;
public class CustomSocks{
public static void loadProxy(){
System.setProperty("socksProxyHost", proxyHostSocks());
System.setProperty("socksProxyPort", proxyPortSocks());
forceProxyApplying();
}
private static String proxyHostSocks() {
var string = getPrefsValue("proxyHostSocks");
return string.isEmpty() ? "192.168.0.1" : string;
}
private static String proxyPortSocks() {
var string = getPrefsValue("proxyPortSocks");
return string.isEmpty() ? "8888" : string;
}
}
@@ -1,11 +1,9 @@
package ru.vtosters.lite.utils;
package ru.vtosters.lite.proxy;
import static ru.vtosters.lite.utils.AndroidUtils.sendToast;
import static ru.vtosters.lite.utils.ProxyUtils.setProxyRefl;
import static ru.vtosters.lite.utils.ProxyUtils.forceProxyApplying;
import android.util.Log;
import org.json.JSONException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
@@ -16,7 +14,7 @@ import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class ProxyList{
public class Hookzof{
private static final OkHttpClient mClient = new OkHttpClient();
public static void loadProxy() {
@@ -27,52 +25,52 @@ public class ProxyList{
mClient.a(link).a(new Callback() {
@Override
public void a(Call call, IOException e) {
Log.d("ProxyList", "Error while getting proxy: " + e);
Log.d("Hookzof", "Error while getting proxy: " + e);
loadError();
}
@Override
public void a(Call call, Response response) throws IOException {
public void a(Call call, Response response){
try {
setData(response);
} catch (JSONException | NullPointerException e) {
} catch (NullPointerException | IOException e) {
e.printStackTrace();
}
}
});
}
static void loadError() {
sendToast("Error while getting proxy");
}
static void setData(Response response) throws IOException, JSONException {
static void setData(Response response) throws IOException{
String resp = response.a().g();
if (!hasProxy(resp)) {
Log.d("ProxyList", "No proxy found");
Log.d("Hookzof", "No proxy found");
return;
}
ArrayList<String> proxyList = new ArrayList<>(Arrays.asList(resp.split("\n")));
Log.d("ProxyList", proxyList.toString());
Log.d("Hookzof", proxyList.toString());
String proxy = proxyList.get(new java.util.Random().nextInt(proxyList.size()));
if (!hasProxy(proxy)) {
Log.d("ProxyList", "No proxy port found");
Log.d("Hookzof", "No proxy port found");
return;
}
Log.d("ProxyList", "Setting proxy: " + proxy.split(":")[0] + ":" + proxy.split(":")[1]);
Log.d("Hookzof", "Setting proxy: " + proxy.split(":")[0] + ":" + proxy.split(":")[1]);
System.setProperty("socksProxyHost", proxy.split(":")[0]);
System.setProperty("socksProxyPort", proxy.split(":")[1]);
setProxyRefl();
forceProxyApplying();
}
static boolean hasProxy(String list) {
return list.contains(":"); // proxy format: ip:port
}
static void loadError() {
sendToast("Error while getting proxy Hookzof");
}
}
@@ -0,0 +1,19 @@
package ru.vtosters.lite.proxy;
import static ru.vtosters.lite.utils.ProxyUtils.forceProxyApplying;
public class RandomProxy{
public static void loadProxy(){
var random = new java.util.Random();
var randomInt = random.nextInt(2);
switch (randomInt){ // TODO make more services
case 0:
Hookzof.loadProxy();
break;
case 1:
System.setProperty("socksProxyHost", "socks.zaboronahelp.pp.ua");
System.setProperty("socksProxyPort", "1488");
forceProxyApplying();
break;
}
}
}
@@ -0,0 +1,10 @@
package ru.vtosters.lite.proxy;
import static ru.vtosters.lite.utils.ProxyUtils.forceProxyApplying;
public class Zaborona{
public static void loadProxy(){
System.setProperty("socksProxyHost", "socks.zaboronahelp.pp.ua");
System.setProperty("socksProxyPort", "1488");
forceProxyApplying();
}
}
@@ -1,6 +1,7 @@
package ru.vtosters.lite.utils;
import static java.lang.System.clearProperty;
import static ru.vtosters.lite.utils.AndroidUtils.edit;
import static ru.vtosters.lite.utils.AndroidUtils.getGlobalContext;
import static ru.vtosters.lite.utils.AndroidUtils.getPrefsValue;
@@ -13,11 +14,18 @@ import android.util.Log;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import ru.vtosters.lite.proxy.CustomHttp;
import ru.vtosters.lite.proxy.CustomHttps;
import ru.vtosters.lite.proxy.CustomSocks;
import ru.vtosters.lite.proxy.Hookzof;
import ru.vtosters.lite.proxy.RandomProxy;
import ru.vtosters.lite.proxy.Zaborona;
public class ProxyUtils {
public static String getApi() {
var proxyapi = getPrefsValue("proxyapi");
if (apiproxy() & !proxyapi.isEmpty()) {
if (isApiProxyEnabled() & !proxyapi.isEmpty()) {
return proxyapi;
}
@@ -32,7 +40,11 @@ public class ProxyUtils {
return getPrefsValue("proxy").equals("randomsocks");
}
public static void setProxyRefl() {
public static Boolean isApiProxyEnabled() {
return getPrefsValue("proxy").equals("apiproxy");
}
public static void forceProxyApplying() {
Log.d("Proxy", "Setting proxy...");
try {
var context = getGlobalContext().getApplicationContext();
@@ -47,20 +59,22 @@ public class ProxyUtils {
@SuppressLint("DiscouragedPrivateApi") Field mReceiversField = loadedApkClass.getDeclaredField("mReceivers");
mReceiversField.setAccessible(true);
ArrayMap<?, ?> receivers = (ArrayMap<?, ?>) mReceiversField.get(mLoadedApkObject);
for (Object receiverMap : receivers.values()) {
for (Object receiver : ((ArrayMap<?, ?>) receiverMap).keySet()) {
Class<?> receiverClass = receiver.getClass();
if (receivers != null) {
for (Object receiverMap : receivers.values()) {
for (Object receiver : ((ArrayMap<?, ?>) receiverMap).keySet()) {
Class<?> receiverClass = receiver.getClass();
if (receiverClass.getName().contains("ProxyChangeListener")) {
Method onReceiveMethod = receiverClass.getDeclaredMethod("onReceive", Context.class, Intent.class);
Intent intent = new Intent(android.net.Proxy.PROXY_CHANGE_ACTION);
onReceiveMethod.invoke(receiver, context, intent);
} else {
for (Field field : receiverClass.getDeclaredFields()) {
if (field.getType().getName().contains("ProxyChangeListener")) {
Method onReceiveMethod = receiverClass.getDeclaredMethod("onReceive", Context.class, Intent.class);
Intent intent = new Intent(android.net.Proxy.PROXY_CHANGE_ACTION);
onReceiveMethod.invoke(receiver, context, intent);
if (receiverClass.getName().contains("ProxyChangeListener")) {
Method onReceiveMethod = receiverClass.getDeclaredMethod("onReceive", Context.class, Intent.class);
Intent intent = new Intent(android.net.Proxy.PROXY_CHANGE_ACTION);
onReceiveMethod.invoke(receiver, context, intent);
} else {
for (Field field : receiverClass.getDeclaredFields()) {
if (field.getType().getName().contains("ProxyChangeListener")) {
Method onReceiveMethod = receiverClass.getDeclaredMethod("onReceive", Context.class, Intent.class);
Intent intent = new Intent(android.net.Proxy.PROXY_CHANGE_ACTION);
onReceiveMethod.invoke(receiver, context, intent);
}
}
}
}
@@ -76,31 +90,19 @@ public class ProxyUtils {
public static void setProxy() {
switch (getPrefsValue("proxy")) {
case "zaborona":
System.setProperty("socksProxyHost", "socks.zaboronahelp.pp.ua");
System.setProperty("socksProxyPort", "1488");
setProxyRefl();
Zaborona.loadProxy();
break;
case "randomsocks":
ProxyList.loadProxy();
RandomProxy.loadProxy();
break;
case "socks":
System.setProperty("socksProxyHost", proxyHostSocks());
System.setProperty("socksProxyPort", proxyPortSocks());
setProxyRefl();
CustomSocks.loadProxy();
break;
case "http":
System.setProperty("http.proxyHost", proxyHostHTTP());
System.setProperty("http.proxyPort", proxyPortHTTP());
System.setProperty("http.proxyUser", proxyUserHTTP());
System.setProperty("http.proxyPassword", proxyPassHTTP());
setProxyRefl();
CustomHttp.loadProxy();
break;
case "https":
System.setProperty("https.proxyHost", proxyHostHTTPS());
System.setProperty("https.proxyPort", proxyPortHTTPS());
System.setProperty("https.proxyUser", proxyUserHTTPS());
System.setProperty("https.proxyPassword", proxyPassHTTPS());
setProxyRefl();
CustomHttps.loadProxy();
break;
default:
resetProxy();
@@ -119,59 +121,6 @@ public class ProxyUtils {
clearProperty("http.proxyPassword");
clearProperty("socksProxyHost");
clearProperty("socksPortHost");
edit().putString("proxy", "noproxy").commit();
} // Reset all proxies
private static String proxyHostHTTP() {
var string = getPrefsValue("proxyHostHTTP");
return string.isEmpty() ? "192.168.0.1" : string;
}
private static String proxyHostHTTPS() {
var string = getPrefsValue("proxyHostHTTPS");
return string.isEmpty() ? "192.168.0.1" : string;
}
private static String proxyHostSocks() {
var string = getPrefsValue("proxyHostSocks");
return string.isEmpty() ? "192.168.0.1" : string;
}
private static String proxyPortHTTP() {
var string = getPrefsValue("proxyPortHTTP");
return string.isEmpty() ? "8888" : string;
}
private static String proxyPortHTTPS() {
var string = getPrefsValue("proxyPortHTTPS");
return string.isEmpty() ? "8888" : string;
}
private static String proxyPortSocks() {
var string = getPrefsValue("proxyPortSocks");
return string.isEmpty() ? "8888" : string;
}
private static String proxyUserHTTP() {
var string = getPrefsValue("proxyUserHTTP");
return string.isEmpty() ? "" : string;
}
private static String proxyUserHTTPS() {
var string = getPrefsValue("proxyUserHTTPS");
return string.isEmpty() ? "" : string;
}
private static String proxyPassHTTP() {
var string = getPrefsValue("proxyPassHTTP");
return string.isEmpty() ? "" : string;
}
private static String proxyPassHTTPS() {
String string = getPrefsValue("proxyPassHTTPS");
return string.isEmpty() ? "" : string;
}
public static boolean apiproxy() {
return getPrefsValue("proxy").equals("apiproxy");
}
}
@@ -5,7 +5,7 @@ import static ru.vtosters.lite.utils.About.getBuildNumber;
import static ru.vtosters.lite.utils.AndroidUtils.getPrefsValue;
import static ru.vtosters.lite.utils.Preferences.dev;
import static ru.vtosters.lite.utils.Preferences.vksans;
import static ru.vtosters.lite.utils.ProxyUtils.apiproxy;
import static ru.vtosters.lite.utils.ProxyUtils.isApiProxyEnabled;
import static ru.vtosters.lite.utils.ThemesUtils.isDarkTheme;
public class SSFSUtils {
@@ -39,7 +39,7 @@ public class SSFSUtils {
}
public static String getUserProxy() {
return apiproxy() ? "1" : "0";
return isApiProxyEnabled() ? "1" : "0";
}
public static String isVKSansEnabled() {
@@ -103,7 +103,7 @@
const-string v0, "api.vk.com"
invoke-static {v0}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v0}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
@@ -123,7 +123,7 @@
const-string v0, "api.vk.com"
invoke-static {v0}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v0}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
@@ -1258,7 +1258,7 @@
move-result-object v0
invoke-static {v0}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v0}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
@@ -1267,7 +1267,7 @@
:cond_0
const-string v0, "api.vk.com"
invoke-static {v0}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v0}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
@@ -71,7 +71,7 @@
const-string v0, "api.vk.com"
invoke-static {v0}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v0}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
@@ -114,7 +114,7 @@
const-string v3, "https://oauth.vk.com/blank.html"
invoke-static {v3}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v3}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
@@ -202,7 +202,7 @@
:cond_0
const-string v0, "https://oauth.vk.com/authorize"
invoke-static {v0}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v0}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
File diff suppressed because one or more lines are too long
@@ -47,7 +47,7 @@
const-string v1, "static.vk.com/restore"
invoke-static {v1}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v1}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
@@ -657,7 +657,7 @@
move-result-object v0
invoke-static {v0}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v0}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
@@ -56,7 +56,7 @@
const-string v0, "oauth.vk.com"
invoke-static {v0}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v0}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
@@ -166,7 +166,7 @@
const-string v2, "https://static.vk.com/promo_codes/"
invoke-static {v2}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v2}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
@@ -640,7 +640,7 @@
const-string v0, ""
:goto_0
invoke-static {}, Lru/vtosters/lite/hooks/ProxyHook;->getAwayPhpCom()Ljava/lang/String;
invoke-static {}, Lru/vtosters/lite/proxy/ApiProxy;->getAwayPhpCom()Ljava/lang/String;
move-result-object v0
@@ -187,7 +187,7 @@
const-string v3, "https://api.vk.com/method/execute"
invoke-static {v3}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v3}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
@@ -275,7 +275,7 @@
const-string v3, "api.vk.com"
invoke-static {v3}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v3}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
@@ -56,7 +56,7 @@
const-string v4, "static.vk.com"
invoke-static {v4}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v4}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v4
@@ -84,7 +84,7 @@
const-string v4, "static.vk.com"
invoke-static {v4}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v4}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v4
@@ -132,7 +132,7 @@
move-result-object v0
invoke-static {v0}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v0}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
@@ -1217,7 +1217,7 @@
const-string v3, "static.vk.com"
invoke-static {v3}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v3}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
@@ -1968,7 +1968,7 @@
move-result-object v1
invoke-static {v1}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v1}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
@@ -1491,7 +1491,7 @@
move-result-object p1
invoke-static {p1}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {p1}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
@@ -1585,7 +1585,7 @@
const-string p3, "https://oauth.vk.com/authorize"
invoke-static {p3}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {p3}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object p3
@@ -240,7 +240,7 @@
move-result-object p3
invoke-static {p3}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {p3}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object p3
@@ -182,7 +182,7 @@
.line 16
:goto_0
invoke-static {v0}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v0}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
@@ -97,7 +97,7 @@
const-string v4, "oauth.vk.com"
invoke-static {v4}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v4}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v4
@@ -207,7 +207,7 @@
const-string v4, "https://oauth.vk.com/blank.html"
invoke-static {v4}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v4}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v4
@@ -296,7 +296,7 @@
const-string v1, "oauth.vk.com"
invoke-static {v1}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v1}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
@@ -82,7 +82,7 @@
.line 3
:goto_0
invoke-static {v0}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v0}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
@@ -326,7 +326,7 @@
const-string v3, "oauth.vk.com"
invoke-static {v3}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v3}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
@@ -208,7 +208,7 @@
const-string v0, "api.vk.com"
invoke-static {v0}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v0}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
@@ -305,7 +305,7 @@
const-string v3, "api.vk.com"
invoke-static {v3}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v3}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
@@ -68,7 +68,7 @@
const-string v1, "oauth.vk.com"
invoke-static {v1}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v1}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
@@ -305,7 +305,7 @@
:goto_5
const-string p2, "api.vk.com"
invoke-static {p2}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {p2}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object p2
@@ -1986,7 +1986,7 @@
const-string v1, "static.vk.com"
invoke-static {v1}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v1}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
@@ -2004,7 +2004,7 @@
const-string v2, "previous_oauth"
invoke-static {v1}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v1}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
@@ -2018,7 +2018,7 @@
const-string v1, "api.vk.com"
invoke-static {v1}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v1}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
@@ -40,7 +40,7 @@
const-string v1, "oauth.vk.com"
invoke-static {v1}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v1}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
@@ -182,7 +182,7 @@
const-string v0, "https://oauth.vk.com/blank.html#state=webview_refresh_access_token"
invoke-static {v0}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v0}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
@@ -1012,7 +1012,7 @@
const-string v2, "https://oauth.vk.com/webview_token"
invoke-static {v2}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v2}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
@@ -1202,7 +1202,7 @@
const-string v0, "https://oauth.vk.com/webview_token"
invoke-static {v0}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v0}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
@@ -70,7 +70,7 @@
move-result-object v0
invoke-static {v0}, Lru/vtosters/lite/hooks/ProxyHook;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v0}, Lru/vtosters/lite/proxy/ApiProxy;->linkReplacer(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0