2023-11-12 23:13:38 -06:00

48 lines
2.0 KiB
Kotlin

package com.isolaatti
import android.app.Activity
import android.content.Intent
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.result.contract.ActivityResultContracts
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
import com.isolaatti.auth.data.AuthRepositoryImpl
import com.isolaatti.home.HomeActivity
import com.isolaatti.login.LogInActivity
import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject
@AndroidEntryPoint
class MainActivity : ComponentActivity() {
@Inject
lateinit var authRepository: AuthRepositoryImpl
private val signInActivityResult = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { activityResult ->
if(activityResult.resultCode == Activity.RESULT_OK) {
val homeActivityIntent = Intent(this@MainActivity, HomeActivity::class.java)
homeActivityIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK)
startActivity(homeActivityIntent)
}
}
override fun onCreate(savedInstanceState: Bundle?) {
var isLoading = true
val splashScreen = installSplashScreen()
splashScreen.setKeepOnScreenCondition { isLoading }
super.onCreate(savedInstanceState)
// Decide what activity to start
// Set isLoading to false when ended
val currentToken = authRepository.getCurrentToken()
if(currentToken == null) {
val loginIntent = Intent(this@MainActivity, LogInActivity::class.java)
loginIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK)
signInActivityResult.launch(loginIntent)
} else {
val homeActivityIntent = Intent(this@MainActivity, HomeActivity::class.java)
homeActivityIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK)
startActivity(homeActivityIntent)
}
isLoading = false
}
}