47 lines
1.8 KiB
Kotlin
Raw Normal View History

2023-02-06 13:44:27 -06:00
package com.isolaatti
2023-07-15 20:58:57 -06:00
import android.app.Activity
2023-02-06 13:44:27 -06:00
import android.content.Intent
import android.os.Bundle
import androidx.activity.ComponentActivity
2023-07-15 20:58:57 -06:00
import androidx.activity.result.contract.ActivityResultContracts
2023-02-06 13:44:27 -06:00
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
2023-07-15 20:58:57 -06:00
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)
}
}
2023-02-06 13:44:27 -06:00
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) {
2023-07-15 20:58:57 -06:00
signInActivityResult.launch(Intent(this@MainActivity, LogInActivity::class.java))
2023-02-06 13:44:27 -06:00
} else {
2023-07-15 20:58:57 -06:00
val homeActivityIntent = Intent(this@MainActivity, HomeActivity::class.java)
homeActivityIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK)
startActivity(homeActivityIntent)
2023-02-06 13:44:27 -06:00
}
isLoading = false
}
}