You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
1.9 KiB

package com.gyf.csams
import android.content.Intent
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.livedata.observeAsState
import androidx.compose.ui.platform.LocalContext
import androidx.lifecycle.viewmodel.compose.viewModel
import com.gyf.csams.account.ui.AccountActivity
import com.gyf.csams.main.ui.MainActivity
import com.gyf.csams.uikit.AnimationText
import com.orhanobut.logger.Logger
class InitActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// 检查网络
setContent {
val initViewModel: InitViewModel = viewModel()
initViewModel.checkServer()
val isNetWorkWorking: Boolean? by initViewModel.isNetWorkWorking.observeAsState(null)
when (isNetWorkWorking) {
null -> AnimationText(text = "检查服务器网络状态中!!!")
true -> {
Init()
finish()
}
false -> {
TODO("无法连接到服务器,请检查本地网络或联系管理员")
}
}
}
}
@Composable
private fun Init(initViewModel: InitViewModel = viewModel()) {
Logger.i("初始化。。。。")
val context = LocalContext.current
//后台检查token
initViewModel.hasOnlyUserToken(context)
//监听token校验状态
val isValid: Boolean? by initViewModel.token.observeAsState(null)
when (isValid) {
false -> context.startActivity(Intent(context, AccountActivity::class.java))
true -> context.startActivity(Intent(context, MainActivity::class.java))
}
}
}