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

    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)[UserViewModel::class.java]
        userDetailViewModel.userDetailModel.observe(this) {
            if (it.code == 200) {
                navigatePageTo<MainActivity>()
            } else {
                navigatePageTo<LoginActivity>()
            }
            finish()
        }
    }

    override fun observeRequestState() {

    }

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

    private val countDownTimer = object : CountDownTimer(1000, 500) {
        override fun onFinish() {
            userDetailViewModel.obtainUserDetail()
        }

        override fun onTick(millisUntilFinished: Long) {

        }
    }
}