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.
66 lines
2.3 KiB
66 lines
2.3 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.Alignment
|
|
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.gyf.lib.uikit.Body
|
|
import com.gyf.lib.uikit.MainBoxFrame
|
|
import com.orhanobut.logger.Logger
|
|
|
|
class InitActivity : ComponentActivity() {
|
|
|
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
super.onCreate(savedInstanceState)
|
|
|
|
// 检查网络
|
|
setContent {
|
|
Body {
|
|
MainBoxFrame(background = { /*TODO*/ }, contentAlignment = Alignment.Center) {
|
|
val initViewModel: InitViewModel = viewModel()
|
|
val isNetWorkWorking: Boolean? by initViewModel.isNetWorkWorking.observeAsState(
|
|
null
|
|
)
|
|
when (isNetWorkWorking) {
|
|
null -> AnimationText(text = "测试服务端运行状态中。。。")
|
|
true -> {
|
|
Init()
|
|
finish()
|
|
}
|
|
false -> {
|
|
AnimationText(text = "无法连接到服务端,请检查服务端地址${BuildConfig.SERVER_ADDRESS}是否配置正确")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
|
|
@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))
|
|
}
|
|
|
|
}
|
|
}
|
|
|