Commit 05c135b7 authored by sheteng's avatar sheteng

加速修改模式切换4

parent 78f244a9
......@@ -23,6 +23,7 @@
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <!-- 支持A-GPS辅助定位 -->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <!-- 用于 log 日志 -->
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" tools:ignore="QueryAllPackagesPermission"/>
<!-- 配置可查询包名, 配置测试游戏必须添加 添加 -->
<queries>
......@@ -44,6 +45,7 @@
<package android:name="com.wemade.mir4global"/>
<package android:name="com.wemade.mir4"/>
<package android:name="com.netmarble.nanakr"/>
<package android:name="com.nexon.mdnf"/>
</queries>
<application
......
......@@ -56,38 +56,6 @@ object AcceleratorUtils {
private val stateListener: (BaseService.State) -> Unit = { state ->
networkStatsListener(state, getAccTime(), netState)
if (state == BaseService.State.Connected) {
context.lifecycleScope.launch(Dispatchers.IO) {
while (AcceleratorUtils.state == BaseService.State.Connected) {
netState.preNetDelay =
NetUtils.tcpPing(DataStore.pingAccHost, DataStore.pingAccPort)
.toInt()
LoginUtils.getUserHasTimer { haveTime ->
if (!haveTime) { //没有加速时长关闭服务
stopAccelerator()
}
}
netState.accNetDelay =
if (netState.accNetDelay > netState.preNetDelay && netState.preNetDelay != -1) {
netState.preNetDelay
} else {
netState.accNetDelay
}
netState.lossRate = if (netState.accNetTotal != 0) {
(netState.accNetLoss.toFloat() / netState.accNetTotal * 100).roundToInt().toString()
} else {
"0"
}
// netState.lossRate = if (netState.accNetDelay == -1) "100" else "0"
networkStatsListener(state, getAccTime(), netState)
delay(1000)
}
}
} else {
networkStatsListener(state, getAccTime(), netState)
}
}
private var networkStatsListener: (BaseService.State, Long, NetState?) -> Unit = { _, _, _ ->
......@@ -124,7 +92,38 @@ object AcceleratorUtils {
this.connect = connect
NetworkAdapter.initNetworks(context)
ProfileManager.ensureNotEmpty()
context.lifecycleScope.launch(Dispatchers.IO) {
while (true) {
if (state == BaseService.State.Connected) {
netState.preNetDelay =
NetUtils.tcpPing(DataStore.pingAccHost, DataStore.pingAccPort)
.toInt()
LoginUtils.getUserHasTimer { haveTime ->
if (!haveTime) { //没有加速时长关闭服务
stopAccelerator()
}
}
netState.accNetDelay =
if (netState.accNetDelay > netState.preNetDelay && netState.preNetDelay != -1) {
netState.preNetDelay
} else {
netState.accNetDelay
}
netState.lossRate = if (netState.accNetTotal != 0) {
(netState.accNetLoss.toFloat() / netState.accNetTotal * 100).roundToInt()
.toString()
} else {
"0"
}
networkStatsListener(state, getAccTime(), netState)
} else {
networkStatsListener(state, getAccTime(), netState)
}
delay(1000)
}
}
}
fun initConnect(context: Context) {
connection.connect(context, shadowsocksConnection)
......
......@@ -16,6 +16,7 @@ import android.os.Build
import com.hjq.toast.ToastUtils
import com.tencent.mmkv.MMKV
import com.xuexiang.xpage.base.XPageActivity
import com.xuexiang.xutil.app.AppUtils
import com.xuexiang.xutil.system.DeviceUtils
import java.lang.Exception
......@@ -58,16 +59,7 @@ object SysUtils {
* 判断包是否安装
*/
fun isPackageInstall(context: Context, packageName: String): Boolean {
val packageManager: PackageManager = context.getPackageManager()
val packageInfos = packageManager.getInstalledPackages(0)
val packageNames: MutableList<String> = ArrayList()
if (packageInfos != null) {
for (i in packageInfos.indices) {
val packName = packageInfos[i].packageName
packageNames.add(packName)
}
}
return packageNames.contains(packageName)
return AppUtils.isInstallApp(packageName)
}
fun getnetQuality(delay: Int): String {
......
......@@ -62,6 +62,7 @@ object HttpGo {
if (response.isSuccessful) {
val type = object : TypeToken<BaseModel<T>>() {}.type
val string = response.body?.string()
Timber.i("getSync:" + string.toString())
val result: BaseModel<T>? = gson.fromJson(string, type)
return result
} else if (response.code == 401) {
......
......@@ -16,10 +16,11 @@
<TextView
android:id="@+id/plugin_name"
android:layout_width="70dp"
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_marginTop="8dp"
android:gravity="center"
android:maxLength="6"
android:text="游戏下载"
android:textColor="#FF3B3B3B"
android:textSize="14sp" />
......
......@@ -63,7 +63,6 @@ class ShadowsocksConnection(private var listenForDeath: Boolean = false) : Servi
private val serviceCallback = object : IShadowsocksServiceCallback.Stub() {
override fun stateChanged(state: Int, profileName: String?, msg: String?) {
val callback = callback ?: return
if (AuthManager.isreload) return
GlobalScope.launch(Dispatchers.Main.immediate) {
callback.stateChanged(BaseService.State.values()[state], profileName, msg)
}
......
......@@ -167,11 +167,12 @@ object AuthManager {
{
Timber.d("testLatency")
GlobalScope.launch {
if (data.state == BaseService.State.Connected) {
testLatency()
if (wifiLatencyList.size == 5) {
if (wifiLatencyList.size == 5 && data.state == BaseService.State.Connected) {
val wifiavg = wifiLatencyList.average().toInt()
val celavg = cellularLatencyList.average().toInt()
if (wifiavg > celavg && wifiavg > 100 && celavg != -1 && currentNetwork < 0) {
if (wifiavg > celavg && wifiavg > 200 && celavg != -1 && currentNetwork < 0) {
currentNetwork = 0
NetworkAdapter.useCellular(Core.deviceStorage)
isreload = true
......@@ -184,10 +185,11 @@ object AuthManager {
// Core.reloadService()
// Timber.d("switch to wifi")
// }
}
}
wifiLatencyList.clear()
cellularLatencyList.clear()
}
}
},
5,
5,
......
......@@ -55,15 +55,15 @@ class ServiceNotification(private val service: BaseService.Interface, profileNam
override fun stateChanged(state: Int, profileName: String?, msg: String?) { } // ignore
override fun trafficUpdated(profileId: Long, stats: TrafficStats) {
if (profileId != 0L) return
builder.apply {
setContentText((service as Context).getString(R.string.traffic,
service.getString(R.string.speed, Formatter.formatFileSize(service, stats.txRate)),
service.getString(R.string.speed, Formatter.formatFileSize(service, stats.rxRate))))
setSubText(service.getString(R.string.traffic,
Formatter.formatFileSize(service, stats.txTotal),
Formatter.formatFileSize(service, stats.rxTotal)))
}
show()
// builder.apply {
// setContentText((service as Context).getString(R.string.traffic,
// service.getString(R.string.speed, Formatter.formatFileSize(service, stats.txRate)),
// service.getString(R.string.speed, Formatter.formatFileSize(service, stats.rxRate))))
// setSubText(service.getString(R.string.traffic,
// Formatter.formatFileSize(service, stats.txTotal),
// Formatter.formatFileSize(service, stats.rxTotal)))
// }
// show()
}
override fun trafficPersisted(profileId: Long) { }
}
......
......@@ -6,11 +6,6 @@ object HttpConfig {
//val baseUrl = "http://10.16.1.98:9002"
// val baseUrl = "https://test-cc-tt-api.orangenet.org.cn" //测试
val baseUrl = "https://cc-tt-front.srccwl.com" //生产
// val baseUrl = "http://192.168.137.25:9002"
// val baseUrl = "https://test-cc-tt-api.orangenet.org.cn" //测试
// val baseUrl = "https://cc-tt-front.srccwl.com" //生产
/**
* 主页h5
*/
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment