二建连

This commit is contained in:
11111 2026-01-05 12:23:18 +08:00
parent 539354e273
commit ade63d1485
3 changed files with 38 additions and 0 deletions

View File

@ -33,6 +33,8 @@ import com.cncat.vpn.service.remote.IClashManager
import com.cncat.vpn.service.remote.ILogObserver
import com.cncat.vpn.service.remote.IProfileManager
import com.cncat.vpn.service.remote.wrap
import com.cncat.vpn.service.util.importedDir
import com.cncat.vpn.service.util.processingDir
import com.google.gson.Gson
import com.google.gson.JsonArray
import com.google.gson.JsonObject

View File

@ -37,6 +37,8 @@ import com.cncat.vpn.core.Clash
import com.cncat.vpn.core.model.TunnelState
import com.cncat.vpn.service.model.Profile
import com.cncat.vpn.service.store.ServiceStore
import com.cncat.vpn.service.util.importedDir
import com.cncat.vpn.service.util.processingDir
import com.google.gson.Gson
import com.google.gson.JsonParser
import com.orhanobut.logger.Logger
@ -50,6 +52,7 @@ import com.yingmao.clash.act.MainActivity.Companion.isSubbed
import com.yingmao.clash.act.MainActivity.Companion.newMainActGlo
import com.yingmao.clash.act.MainActivity.Companion.newUuid
import com.yingmao.clash.act.MainActivity.Companion.profileBinder
import com.yingmao.clash.act.MainActivity.Companion.setSub2
import com.yingmao.clash.act.MainActivity.Companion.subUrl
import com.yingmao.clash.act.NodeGroupActivity
import com.yingmao.clash.app.MainApplication
@ -69,6 +72,7 @@ import com.yingmao.clash.net.http.entity.ShowNode
import com.yingmao.clash.util.ActivityResultLifecycle
import com.yingmao.clash.util.CommonUtils
import com.yingmao.clash.util.Utils
import com.yingmao.clash.util.Utils.isFileContentEmpty
import com.yingmao.clash.util.startClashService
import com.yingmao.clash.util.stopClashService
import com.yingmao.clash.view.RxToast
@ -407,6 +411,31 @@ open class HomeFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dispa
}
private fun startClash(isStart: Boolean) {
//这里需要判断一下config.yaml文件是否存在
launch {
profileBinder?.let {profileManager ->
val pro = profileManager.queryAll().find {
it.name == Conf.getClashConfName(MainApplication.getApp()?.applicationContext)
}
val importConfig = requireActivity().importedDir
.resolve(pro?.uuid.toString())
.resolve("config.yaml")
val pendingConfig = requireActivity().processingDir
.resolve("config.yaml")
val importConfigCheck = isFileContentEmpty(importConfig)
val pendingConfigCheck = isFileContentEmpty(pendingConfig)
AppLog.i("NewAccFragment", "importConfigCheck:${importConfigCheck} pendingConfigCheck::${pendingConfigCheck} ")
if(importConfigCheck||pendingConfigCheck){
profileManager.queryAll().forEach { profile ->
profileManager.delete(profile.uuid)
}
setSub2(subUrl!!)
}
}
}
AppLog.i("NewAccFragment", "onClick startClash()")
val nodeJson=serStore.nodes
Log.d("nodeJson: ${nodeJson.isEmpty()}")

View File

@ -20,6 +20,7 @@ import kotlinx.coroutines.withContext
import okhttp3.OkHttpClient
import okhttp3.Request
import org.json.JSONObject
import java.io.File
import java.net.Inet4Address
import java.net.NetworkInterface
import java.nio.charset.StandardCharsets
@ -383,4 +384,10 @@ object Utils {
return caps.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
}
fun isFileContentEmpty(file: File): Boolean {
if (!file.exists() || !file.isFile) return true
file.bufferedReader().useLines { lines ->
return lines.none { it.isNotBlank() }
}
}
}