二建连
This commit is contained in:
parent
539354e273
commit
ade63d1485
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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()}")
|
||||||
|
|
|
||||||
|
|
@ -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() }
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue