From 2b60f103516ea6d39d48e4bda2825950f33af059 Mon Sep 17 00:00:00 2001 From: yjj38 Date: Wed, 9 Jul 2025 21:04:28 +0800 Subject: [PATCH] =?UTF-8?q?refactor(proxy):=20=E5=88=87=E6=8D=A2=E4=BB=A3?= =?UTF-8?q?=E7=90=86=E9=80=BB=E8=BE=91=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将 `ClashUtil.switchProxyGroup` 调用替换为 `ClashUtil.switchProxyWithPort(CountryCode.switchCountry())` - 移除了 `MainActivity` 中的 `executeSingleLogic` 方法,相关逻辑已在 `LoadDeviceWorker` 中处理 - 在 `LoadDeviceWorker` 和 `MainActivity` 的 `startProxyVpn` 方法中,使用 `TAG` 记录日志,并更新了代理切换逻辑。 --- .../com/example/retention/MainActivity.java | 21 ++--- .../retention/worker/LoadDeviceWorker.java | 93 ++++++++++--------- 2 files changed, 56 insertions(+), 58 deletions(-) diff --git a/app/src/main/java/com/example/retention/MainActivity.java b/app/src/main/java/com/example/retention/MainActivity.java index abe0a57..50d124a 100644 --- a/app/src/main/java/com/example/retention/MainActivity.java +++ b/app/src/main/java/com/example/retention/MainActivity.java @@ -193,16 +193,6 @@ public class MainActivity extends AppCompatActivity { public static final LinkedBlockingQueue scriptResultQueue = new LinkedBlockingQueue<>(); - public void executeSingleLogic() { - LogFileUtil.logAndWrite(Log.INFO, "MainActivity", "executeSingleLogic: Proxy not active, starting VPN", null); - startProxyVpn(this); - LogFileUtil.logAndWrite(Log.INFO, "MainActivity", "executeSingleLogic: Changing device info", null); - ChangeDeviceInfoUtil.changeDeviceInfo(getPackageName(), this,armClient); - LogFileUtil.logAndWrite(Log.INFO, "MainActivity", "executeSingleLogic: Running AutoJs script", null); - AutoJsUtil.runAutojsScript(this); - } - - private void startProxyVpn(Context context) { if (!isNetworkAvailable(context)) { Toast.makeText(context, "Network is not available", Toast.LENGTH_SHORT).show(); @@ -217,11 +207,14 @@ public class MainActivity extends AppCompatActivity { } try { - ClashUtil.startProxy(context); // 在主线程中调用 - ClashUtil.switchProxyGroup("GLOBAL", "us", "http://127.0.0.1:6170"); + ClashUtil.startProxy(context); + ClashUtil.switchProxyWithPort(CountryCode.switchCountry()); + // ClashUtil.switchProxyGroup("PROXY", "my-socks5-proxy", "http://127.0.0.1:6170"); } catch (Exception e) { - LogFileUtil.logAndWrite(Log.ERROR, "MainActivity", "startProxyVpn: Failed to start VPN", e); - Toast.makeText(context, "Failed to start VPN: " + (e.getMessage() != null ? e.getMessage() : "Unknown error"), Toast.LENGTH_SHORT).show(); + LogFileUtil.logAndWrite(Log.ERROR, TAG, "startProxyVpn: Failed to start VPN", e); + Toast.makeText(context, "Failed to start VPN: " + + (e.getMessage() != null ? e.getMessage() : "Unknown error"), + Toast.LENGTH_SHORT).show(); } } diff --git a/app/src/main/java/com/example/retention/worker/LoadDeviceWorker.java b/app/src/main/java/com/example/retention/worker/LoadDeviceWorker.java index e653b40..851f199 100644 --- a/app/src/main/java/com/example/retention/worker/LoadDeviceWorker.java +++ b/app/src/main/java/com/example/retention/worker/LoadDeviceWorker.java @@ -26,58 +26,63 @@ import java.util.UUID; import kotlin.coroutines.Continuation; public class LoadDeviceWorker extends CoroutineWorker { - private String androidId = "FyZqWrStUvOpKlMn"; - private Context context; - public LoadDeviceWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) { - super(context, workerParams); - this.context = context; - } - @Override - public @Nullable Object doWork(@NotNull Continuation continuation) { - String taskId = UUID.randomUUID().toString(); - boolean result = ChangeDeviceInfoUtil.getDeviceInfoSync(taskId, androidId); - String packageName = ChangeDeviceInfoUtil.packageName; - String zipName = ChangeDeviceInfoUtil.zipName; - Log.d("TAG", "doWork: "+result+" "+packageName+" "+zipName); - if (result && !TextUtils.isEmpty(packageName) && !TextUtils.isEmpty(zipName)){ - boolean isSuccess = ChangeDeviceInfoUtil.processPackageInfoWithDeviceInfo(packageName,zipName, getApplicationContext(), androidId, taskId); - if (isSuccess){ - executeSingleLogic(context); - } - }else { - Log.d("TAG", "doWork: get Device info false"); - } - return Result.success(); - } + private String androidId = "FyZqWrStUvOpKlMn"; + private Context context; - public void executeSingleLogic(Context context) { - LogFileUtil.logAndWrite(Log.INFO, "MainActivity", "executeSingleLogic: Proxy not active, starting VPN",null); - startProxyVpn(context); - LogFileUtil.logAndWrite(Log.INFO, "MainActivity", "executeSingleLogic: Changing device info",null); - ChangeDeviceInfoUtil.changeDeviceInfo(context.getPackageName(), context, MainActivity.armClient); - LogFileUtil.logAndWrite(Log.INFO, "MainActivity", "executeSingleLogic: Running AutoJs script",null); - Utils.writePackageName(ChangeDeviceInfoUtil.packageName); - AutoJsUtil.runAutojsScript(context); - } + public LoadDeviceWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) { + super(context, workerParams); + this.context = context; + } - private void startProxyVpn(Context context) { - if (!isNetworkAvailable(context)) { - Toast.makeText(context, "Network is not available", Toast.LENGTH_SHORT).show(); - LogFileUtil.logAndWrite(Log.ERROR, "MainActivity", "startProxyVpn: Network is not available.",null); - } + @Override + public @Nullable Object doWork(@NotNull Continuation continuation) { + String taskId = UUID.randomUUID().toString(); + boolean result = ChangeDeviceInfoUtil.getDeviceInfoSync(taskId, androidId); + String packageName = ChangeDeviceInfoUtil.packageName; + String zipName = ChangeDeviceInfoUtil.zipName; + Log.d("TAG", "doWork: " + result + " " + packageName + " " + zipName); + if (result && !TextUtils.isEmpty(packageName) && !TextUtils.isEmpty(zipName)) { + boolean isSuccess = ChangeDeviceInfoUtil.processPackageInfoWithDeviceInfo(packageName, zipName, getApplicationContext(), androidId, taskId); + if (isSuccess) { + executeSingleLogic(context); + } + } else { + Log.d("TAG", "doWork: get Device info false"); + } + return Result.success(); + } + + public void executeSingleLogic(Context context) { + LogFileUtil.logAndWrite(Log.INFO, "MainActivity", "executeSingleLogic: Proxy not active, starting VPN", null); + startProxyVpn(context); + LogFileUtil.logAndWrite(Log.INFO, "MainActivity", "executeSingleLogic: Changing device info", null); + ChangeDeviceInfoUtil.changeDeviceInfo(context.getPackageName(), context, MainActivity.armClient); + LogFileUtil.logAndWrite(Log.INFO, "MainActivity", "executeSingleLogic: Running AutoJs script", null); + Utils.writePackageName(ChangeDeviceInfoUtil.packageName); + AutoJsUtil.runAutojsScript(context); + } + + private void startProxyVpn(Context context) { + if (!isNetworkAvailable(context)) { + Toast.makeText(context, "Network is not available", Toast.LENGTH_SHORT).show(); + LogFileUtil.logAndWrite(Log.ERROR, "MainActivity", "startProxyVpn: Network is not available.", null); + } // if (!(context instanceof Activity)) { // Toast.makeText(context, "Context must be an Activity", Toast.LENGTH_SHORT).show(); // LogFileUtil.logAndWrite(Log.ERROR, "MainActivity", "startProxyVpn: Context is not an Activity.",null); // return; // } - try { - ClashUtil.startProxy(context); // 在主线程中调用 - ClashUtil.switchProxyGroup("GLOBAL", "us", "http://127.0.0.1:6170"); - } catch (Exception e) { - LogFileUtil.logAndWrite(Log.ERROR, "MainActivity", "startProxyVpn: Failed to start VPN",e); - Toast.makeText(context, "Failed to start VPN: " + (e.getMessage() != null ? e.getMessage() : "Unknown error"), Toast.LENGTH_SHORT).show(); - } + try { + ClashUtil.startProxy(context); + ClashUtil.switchProxyWithPort(CountryCode.switchCountry()); + // ClashUtil.switchProxyGroup("PROXY", "my-socks5-proxy", "http://127.0.0.1:6170"); + } catch (Exception e) { + LogFileUtil.logAndWrite(Log.ERROR, TAG, "startProxyVpn: Failed to start VPN", e); + Toast.makeText(context, "Failed to start VPN: " + + (e.getMessage() != null ? e.getMessage() : "Unknown error"), + Toast.LENGTH_SHORT).show(); } + } }