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-11-12 23:13:38 -06:00
|
|
|
val loginIntent = Intent(this@MainActivity, LogInActivity::class.java)
|
|
|
|
|
loginIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK)
|
|
|
|
|
signInActivityResult.launch(loginIntent)
|
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
|
|
|
|
|
}
|
|
|
|
|
}
|