diff --git a/app/src/main/java/com/yingmao/clash/act/ChangeNodeActivity.kt b/app/src/main/java/com/yingmao/clash/act/ChangeNodeActivity.kt index 25c4662..f1703b1 100644 --- a/app/src/main/java/com/yingmao/clash/act/ChangeNodeActivity.kt +++ b/app/src/main/java/com/yingmao/clash/act/ChangeNodeActivity.kt @@ -132,27 +132,28 @@ class ChangeNodeActivity : BaseActivity(), View.OnClickListener { tvProA.setOnClickListener { - if(!clashRunning){ + val getIsGlo= MMKV.defaultMMKV().decodeBool(BZYConstants.MMKV_KEY_GLOBAL_MODEL, false) + Log.d("clIntelligentMode ==>${getIsGlo}") + if(getIsGlo){ setBackground(ProxyMode.PAC) MMKV.defaultMMKV().encode(BZYConstants.MMKV_KEY_GLOBAL_MODEL, false) checkGlo() - }else{ - RxToast.info(resources.getString(R.string.closeRunningChoose)) - } - if(clashRunning){ - RxToast.info(resources.getString(R.string.SwitchingSourceModel)) - return@setOnClickListener } } tvProj.setOnClickListener { - if(!clashRunning){ - MMKV.defaultMMKV().encode(BZYConstants.MMKV_KEY_GLOBAL_MODEL, true) - setBackground(ProxyMode.GLOBAL) - }else{ - RxToast.info(resources.getString(R.string.closeRunningChoose)) + if (!clashRunning) { + RxToast.info(resources.getString(R.string.SwitchingSourceModel)) + return@setOnClickListener } + val getIsGlo= MMKV.defaultMMKV().decodeBool(BZYConstants.MMKV_KEY_GLOBAL_MODEL, false) + Log.d("clGlobalModel ==>${getIsGlo}") + if (!getIsGlo) { + setBackground(ProxyMode.GLOBAL) + MMKV.defaultMMKV().encode(BZYConstants.MMKV_KEY_GLOBAL_MODEL, true) + checkGlo() + } } aiBack.setOnClickListener { diff --git a/app/src/main/java/com/yingmao/clash/fragment/home/HomeFragment.kt b/app/src/main/java/com/yingmao/clash/fragment/home/HomeFragment.kt index 61869bf..89d06ec 100644 --- a/app/src/main/java/com/yingmao/clash/fragment/home/HomeFragment.kt +++ b/app/src/main/java/com/yingmao/clash/fragment/home/HomeFragment.kt @@ -229,20 +229,33 @@ open class HomeFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dispa startActivityForResult(intent, 2) } tvIntelligentMode.setOnClickListener { - if(clashRunning){ - RxToast.info(resources.getString(R.string.SwitchingSourceModel)) - return@setOnClickListener +// if(clashRunning){ +// RxToast.info(resources.getString(R.string.SwitchingSourceModel)) +// return@setOnClickListener +// } + val getIsGlo= MMKV.defaultMMKV().decodeBool(BZYConstants.MMKV_KEY_GLOBAL_MODEL, false) + Log.d("clIntelligentMode ==>${getIsGlo}") + if(getIsGlo){ + setProxyModeView(ProxyMode.PAC) + MMKV.defaultMMKV().encode(BZYConstants.MMKV_KEY_GLOBAL_MODEL, false) + checkGlo() } - setProxyModeView(ProxyMode.PAC) - MMKV.defaultMMKV().encode(BZYConstants.MMKV_KEY_GLOBAL_MODEL, false) + } tvGlobalMode.setOnClickListener { - if(clashRunning){ + if (!clashRunning) { RxToast.info(resources.getString(R.string.SwitchingSourceModel)) return@setOnClickListener } - setProxyModeView(ProxyMode.GLOBAL) - MMKV.defaultMMKV().encode(BZYConstants.MMKV_KEY_GLOBAL_MODEL, true) + + val getIsGlo= MMKV.defaultMMKV().decodeBool(BZYConstants.MMKV_KEY_GLOBAL_MODEL, false) + Log.d("clGlobalModel ==>${getIsGlo}") + if (!getIsGlo) { + setProxyModeView(ProxyMode.GLOBAL) + MMKV.defaultMMKV().encode(BZYConstants.MMKV_KEY_GLOBAL_MODEL, true) + checkGlo() + } + } clLinks.setOnClickListener { if (clashRunning) { @@ -348,12 +361,12 @@ open class HomeFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dispa private fun startClash(isStart: Boolean) { launch { - if (isStart) { - delay(2000) - } MainActivity.profileBinder?.let { pm -> val active = pm.queryActive() if (active == null) { + if (isStart) { + delay(2000) + } Log.d("startClash: 未选择") val pro = pm.queryAll().find { it.name == Conf.getClashConfName(this@HomeFragment.context) @@ -512,7 +525,14 @@ open class HomeFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dispa fun nodeChooseBase(data: Intent?) { val node = data?.extras?.getString(BZYConstants.MMKV_KEY_SELECT_NODE_NAME) val isRunning = data?.extras?.getBoolean(BZYConstants.EXTRA_KEY_IS_RUNING) - Log.d("onActivityResult ==>>> Node:${node}") + val getIsGlo= MMKV.defaultMMKV().decodeBool(BZYConstants.MMKV_KEY_GLOBAL_MODEL, false) + if(getIsGlo){ + setProxyModeView(ProxyMode.GLOBAL) + }else{ + setProxyModeView(ProxyMode.PAC) + } + Log.d("onActivityResult ==>>> Node:${node} ::getIsGlo::${getIsGlo}") + node?.let { setNodeNameAndImg(it) if (clashRunning) { @@ -635,32 +655,38 @@ open class HomeFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dispa Log.i("checkGlo isGlobal==>${isGlobal} clashRunning==>${clashRunning}") launch(Dispatchers.IO) { if (isGlobal) { - delay(1000) - clashBinder?.let { cm -> - val names = cm.queryProxyGroupNames(false) - Log.i("checkGlo names==>${names}") - if (names.isNotEmpty()) { - val selectedName = - MMKV.defaultMMKV() - .decodeString(BZYConstants.NODE_SELECTED_NAME_KEY, "") - Log.i("selected_name ==>${selectedName}") - if (!TextUtils.isEmpty(selectedName)) { - val o = cm.queryOverride(Clash.OverrideSlot.Session) - o.mode = TunnelState.Mode.Rule - cm.patchOverride(Clash.OverrideSlot.Session, o) - delay(500) - var gName = names[0] - if (names.size >= 2) { - if ("GLOBAL" == gName) { - gName = names[1] + if (clashRunning) { + Log.i("AAAAAAAAAAAAAA innner to==>") + getNodes() + } + }else{ + if(clashRunning){ + delay(1000) + clashBinder?.let { cm -> + val names = cm.queryProxyGroupNames(false) + Log.i("checkGlo names==>${names}") + if (names.isNotEmpty()) { + val selectedName = + MMKV.defaultMMKV() + .decodeString(BZYConstants.NODE_SELECTED_NAME_KEY, "") + Log.i("selected_name ==>${selectedName}") + if (!TextUtils.isEmpty(selectedName)) { + val o = cm.queryOverride(Clash.OverrideSlot.Session) + o.mode = TunnelState.Mode.Rule + cm.patchOverride(Clash.OverrideSlot.Session, o) + delay(500) + var gName = names[0] + if (names.size >= 2) { + if ("GLOBAL" == gName) { + gName = names[1] + } } - } - cm.patchSelector(gName, selectedName!!) + cm.patchSelector(gName, selectedName!!) + } } } } - getNodes() } } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 51cd560..16855e0 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -479,4 +479,5 @@ 邀请新朋友通过你的分享链接注册并订购任意会员套餐,\n 您可以获得30天会员(仅限新用户订购有效) 点击分享 + 请开启加速后在进行全局模式切换 \ No newline at end of file