二建连

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.ILogObserver
import com.cncat.vpn.service.remote.IProfileManager import com.cncat.vpn.service.remote.IProfileManager
import com.cncat.vpn.service.remote.wrap 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.Gson
import com.google.gson.JsonArray import com.google.gson.JsonArray
import com.google.gson.JsonObject 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.core.model.TunnelState
import com.cncat.vpn.service.model.Profile import com.cncat.vpn.service.model.Profile
import com.cncat.vpn.service.store.ServiceStore 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.Gson
import com.google.gson.JsonParser import com.google.gson.JsonParser
import com.orhanobut.logger.Logger 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.newMainActGlo
import com.yingmao.clash.act.MainActivity.Companion.newUuid import com.yingmao.clash.act.MainActivity.Companion.newUuid
import com.yingmao.clash.act.MainActivity.Companion.profileBinder 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.MainActivity.Companion.subUrl
import com.yingmao.clash.act.NodeGroupActivity import com.yingmao.clash.act.NodeGroupActivity
import com.yingmao.clash.app.MainApplication 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.ActivityResultLifecycle
import com.yingmao.clash.util.CommonUtils import com.yingmao.clash.util.CommonUtils
import com.yingmao.clash.util.Utils import com.yingmao.clash.util.Utils
import com.yingmao.clash.util.Utils.isFileContentEmpty
import com.yingmao.clash.util.startClashService import com.yingmao.clash.util.startClashService
import com.yingmao.clash.util.stopClashService import com.yingmao.clash.util.stopClashService
import com.yingmao.clash.view.RxToast import com.yingmao.clash.view.RxToast
@ -407,6 +411,31 @@ open class HomeFragment : BaseFragment(), CoroutineScope by CoroutineScope(Dispa
} }
private fun startClash(isStart: Boolean) { 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()") AppLog.i("NewAccFragment", "onClick startClash()")
val nodeJson=serStore.nodes val nodeJson=serStore.nodes
Log.d("nodeJson: ${nodeJson.isEmpty()}") Log.d("nodeJson: ${nodeJson.isEmpty()}")

View File

@ -20,6 +20,7 @@ import kotlinx.coroutines.withContext
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
import okhttp3.Request import okhttp3.Request
import org.json.JSONObject import org.json.JSONObject
import java.io.File
import java.net.Inet4Address import java.net.Inet4Address
import java.net.NetworkInterface import java.net.NetworkInterface
import java.nio.charset.StandardCharsets import java.nio.charset.StandardCharsets
@ -383,4 +384,10 @@ object Utils {
return caps.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) 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() }
}
}
} }