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.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

@SuppressLint("CustomSplashScreen")
class SplashScreenActivity : KotlinBaseActivity<ActivitySplashBinding>() {

    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 initViewBinding(): ActivitySplashBinding {
        return ActivitySplashBinding.inflate(layoutInflater)
    }

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

    override fun initOnCreate(savedInstanceState: Bundle?) {
        userDetailViewModel = ViewModelProvider(this).get(UserViewModel::class.java)
    }

    override fun observeRequestState() {

    }

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