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
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))
|
|
}
|
|
|
|
}
|
|
}
|
|
|