fix 心跳和退出登录

This commit is contained in:
cyh 2024-10-15 15:39:01 +08:00
parent f3b7c4b538
commit df86131200
2 changed files with 63 additions and 31 deletions

View File

@ -77,6 +77,7 @@ import com.yingmao.clash.view.dialog.RxDialogShapeLoading
import com.yingmao.clash.vm.MainAtyVM
import com.yingmao.clash.webview.BZYWebViewKeFu
import com.yingmao.clash.webview.BZYWebViewNormal
import kotlinx.coroutines.DelicateCoroutinesApi
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.async
@ -203,6 +204,10 @@ class NewMainActivity : BaseActivity() {
// if ("0" == uploadRequestLogs.code) {
// }
//登录失效
if (uploadRequestLogs.code=="-3"){
}
}
} catch (e: Exception) {
e.printStackTrace()
@ -384,9 +389,9 @@ class NewMainActivity : BaseActivity() {
HEART_BEAT_FAILURE_FREQUENCY = 0
cleanUserInfo()
startActivity(Intent(CommonUtils.getApp(), LoginActivity::class.java))
finish()
mainAtyVM.stopHeartBeat()
// startActivity(Intent(CommonUtils.getApp(), LoginActivity::class.java))
// finish()
// mainAtyVM.stopHeartBeat()
}
-4 -> {
@ -398,9 +403,9 @@ class NewMainActivity : BaseActivity() {
}
HEART_BEAT_FAILURE_FREQUENCY = 0
cleanUserInfo()
startActivity(Intent(CommonUtils.getApp(), LoginActivity::class.java))
finish()
mainAtyVM.stopHeartBeat()
// startActivity(Intent(CommonUtils.getApp(), LoginActivity::class.java))
// finish()
// mainAtyVM.stopHeartBeat()
}
-3 -> {
@ -558,10 +563,11 @@ class NewMainActivity : BaseActivity() {
if (5 <= HEART_BEAT_FAILURE_FREQUENCY) {
HEART_BEAT_FAILURE_FREQUENCY = 0
Logger.d("心跳失败次数超过10次退出登录")
MMKV.defaultMMKV().removeValueForKey(BZYConstants.MMKV_KEY_TOKEN)
startActivity(Intent(CommonUtils.getApp(), LoginActivity::class.java))
finish()
mainAtyVM.stopHeartBeat()
// MMKV.defaultMMKV().removeValueForKey(BZYConstants.MMKV_KEY_TOKEN)
// startActivity(Intent(CommonUtils.getApp(), LoginActivity::class.java))
// finish()
// mainAtyVM.stopHeartBeat()
cleanUserInfo()
}
HEART_BEAT_FAILURE_FREQUENCY++
} else if (httpStatus.reqType == HttpReqType.CHECK_LOGIN) {
@ -621,20 +627,29 @@ class NewMainActivity : BaseActivity() {
MMKV.defaultMMKV().removeValueForKey(BZYConstants.MMKV_KEY_CURRENT_NODE)
MMKV.defaultMMKV().removeValueForKey(BZYConstants.NODE_SELECTED_NAME_KEY)
MMKV.defaultMMKV().removeValueForKey(BZYConstants.MMKV_KEY_VPN_UserCommand)
startActivity(Intent(CommonUtils.getApp(), LoginActivity::class.java))
Log.d("cleanUserInfo clashRunning==>${clashRunning}")
if (clashRunning) {
fragments.filterIsInstance<NewAccFragment>().forEach { it.stopClash() }
}
stopUploadTimer()
mainAtyVM.stopHeartBeat()
cleanProfile()
startActivity(Intent(CommonUtils.getApp(), LoginActivity::class.java))
finish()
}
private fun cleanProfile() {
launch(Dispatchers.IO) {
Log.d("cleanProfile start")
GlobalScope.launch(Dispatchers.IO) {
profileBinder?.let { pm ->
pm.queryAll().forEach { profile ->
Log.d("cleanProfile go delete name==>${profile.name}, uuid==>${profile.uuid}")
pm.delete(profile.uuid)
}
}?:let {
Log.d("profileBinder is null")
}
}
}
@ -1090,6 +1105,7 @@ class NewMainActivity : BaseActivity() {
override fun onDestroy() {
super.onDestroy()
stopUploadTimer()
mainAtyVM.stopHeartBeat()
}
}

View File

@ -28,7 +28,8 @@ import kotlin.concurrent.schedule
class MainAtyVM : PublicViewMode() {
private val heartBeatTimer: Timer by lazy { Timer() }
private var heartBeatTimer: Timer?=null
private var heartBeatTask: TimerTask?=null
private fun heartbeat() {
val httpApi = NetService.instances.createHttpsEncodeStr(HttpApi::class.java)
val node = MMKV.defaultMMKV()
@ -55,9 +56,9 @@ class MainAtyVM : PublicViewMode() {
fun getNoticeInfo() {
val httpApi = NetService.instances.createHttps(HttpApi::class.java)
val userId = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_USER_ID,"")!!
val phToken = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_PH_TOKEN,"")!!
val phone = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME,"")!!
val userId = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_USER_ID, "")!!
val phToken = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_PH_TOKEN, "")!!
val phone = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME, "")!!
val params = mutableMapOf(
"userId" to userId,
@ -70,9 +71,9 @@ class MainAtyVM : PublicViewMode() {
fun getRuningNoticeInfo() {
val httpApi = NetService.instances.createHttps(HttpApi::class.java)
val userId = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_USER_ID,"")!!
val phToken = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_PH_TOKEN,"")!!
val phone = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME,"")!!
val userId = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_USER_ID, "")!!
val phToken = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_PH_TOKEN, "")!!
val phone = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME, "")!!
val params = mutableMapOf(
"userId" to userId,
@ -88,8 +89,9 @@ class MainAtyVM : PublicViewMode() {
fun checkLogin() {
val httpApi = NetService.instances.createHttpsEncodeStr(HttpApi::class.java)
val token = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_PH_TOKEN,"")!!
val phoneNumber = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME,"")!!
val token = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_PH_TOKEN, "")!!
val phoneNumber =
MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME, "")!!
val params = mutableMapOf(
"phToken" to token,
"phoneNumber" to phoneNumber,
@ -104,20 +106,32 @@ class MainAtyVM : PublicViewMode() {
//10分钟一次
fun startHeartBeat() {
// heartBeatTimer.cancel()
heartBeatTimer.schedule(100000, 600000) {
Logger.d("心跳")
heartbeat()
if (heartBeatTimer == null) {
heartBeatTimer= Timer()
heartBeatTask = object : TimerTask() {
override fun run() {
Logger.d("心跳")
heartbeat()
}
}
}
heartBeatTimer?.schedule(heartBeatTask,10000,60000)
}
fun stopHeartBeat() {
heartBeatTimer.cancel()
heartBeatTimer?.cancel()
heartBeatTimer = null
heartBeatTask?.cancel()
heartBeatTask = null
}
fun appCheck() {
val httpApi = NetService.instances.createHttpsEncodeStr(HttpApi::class.java)
val token = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_PH_TOKEN,"")!!
val phoneNumber = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME,"")!!
val token = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_PH_TOKEN, "")!!
val phoneNumber =
MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME, "")!!
val params = mutableMapOf(
"phToken" to token,
"phoneNumber" to phoneNumber,
@ -137,8 +151,9 @@ class MainAtyVM : PublicViewMode() {
fun getAirNodes() {
val httpApi = NetService.instances.createHttpsEncodeStr(HttpApi::class.java)
val token = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_PH_TOKEN,"")!!
val phoneNumber = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME,"")!!
val token = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_PH_TOKEN, "")!!
val phoneNumber =
MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME, "")!!
val params = mutableMapOf(
"phToken" to token,
"phoneNumber" to phoneNumber,
@ -152,8 +167,9 @@ class MainAtyVM : PublicViewMode() {
fun vipSign() {
val httpApi = NetService.instances.createHttpsEncodeStr(HttpApi::class.java)
val token = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_PH_TOKEN,"")!!
val phoneNumber = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME,"")!!
val token = MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_PH_TOKEN, "")!!
val phoneNumber =
MMKV.defaultMMKV().decodeString(BZYConstants.MMKV_KEY_REMEMBER_USERNAME, "")!!
val params = mutableMapOf(
"phToken" to token,
"phoneNumber" to phoneNumber,