Newer
Older
CasicSmartTube / app / src / main / java / com / casic / smarttube / view / SplashScreenActivity.kt
package com.casic.smarttube.view

import android.annotation.SuppressLint
import android.os.CountDownTimer
import androidx.lifecycle.ViewModelProvider
import com.casic.smarttube.R
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

@SuppressLint("CustomSplashScreen")
class SplashScreenActivity : KotlinBaseActivity() {

    private lateinit var userDetailViewModel: UserViewModel
    private val countDownTimer = object : CountDownTimer(1000, 500) {
        override fun onFinish() {
            /**
             * 获取token之后保存用户信息
             * */
            userDetailViewModel.obtainUserDetail()
            userDetailViewModel.userDetailModel.observe(this@SplashScreenActivity, {
                if (it.code == 200) {
                    navigatePageTo<MainActivity>()
                } else {
                    navigatePageTo<LoginActivity>()
                }
                finish()
            })
        }

        override fun onTick(millisUntilFinished: Long) {

        }
    }

    override fun initLayoutView(): Int = R.layout.activity_splash

    override fun setupTopBarLayout() {
        ImmersionBar.with(this).statusBarDarkFont(false).init()
    }

    override fun initData() {
        userDetailViewModel = ViewModelProvider(this).get(UserViewModel::class.java)
    }

    override fun initEvent() {
        countDownTimer.start()
    }
}