package com.casic.smarttube.view import android.annotation.SuppressLint import android.os.Bundle import android.os.CountDownTimer import androidx.lifecycle.ViewModelProvider import com.casic.smarttube.databinding.ActivitySplashBinding import com.casic.smarttube.vm.UserViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.utils.ActivityStackManager import com.pengxh.kt.lite.utils.LoadState @SuppressLint("CustomSplashScreen") class SplashScreenActivity : KotlinBaseActivity<ActivitySplashBinding>() { private lateinit var userDetailViewModel: UserViewModel override fun initViewBinding(): ActivitySplashBinding { return ActivitySplashBinding.inflate(layoutInflater) } override fun setupTopBarLayout() { ImmersionBar.with(this).statusBarDarkFont(false).init() } override fun initOnCreate(savedInstanceState: Bundle?) { ActivityStackManager.addActivity(this) userDetailViewModel = ViewModelProvider(this)[UserViewModel::class.java] } override fun observeRequestState() { userDetailViewModel.loadState.observe(this) { when (it) { LoadState.Success -> navigatePageTo<MainActivity>() else -> navigatePageTo<LoginActivity>() } finish() } } override fun initEvent() { countDownTimer.start() } private val countDownTimer = object : CountDownTimer(1000, 500) { override fun onFinish() { userDetailViewModel.getUserDetail() } override fun onTick(millisUntilFinished: Long) { } } }