diff --git a/app/src/main/java/com/eatssu/android/domain/usecase/health/HealthCheckUseCase.kt b/app/src/main/java/com/eatssu/android/domain/usecase/health/HealthCheckUseCase.kt index cbfad2c1..b894ea5e 100644 --- a/app/src/main/java/com/eatssu/android/domain/usecase/health/HealthCheckUseCase.kt +++ b/app/src/main/java/com/eatssu/android/domain/usecase/health/HealthCheckUseCase.kt @@ -3,6 +3,10 @@ package com.eatssu.android.domain.usecase.health import com.eatssu.android.domain.repository.HealthCheckRepository import javax.inject.Inject +/** +* 서버와 정상적으로 통신할 수 있는지 확인합니다. +* 실제 서버의 상태(healthy)를 체크하는 목적이 아니라, 네트워크 연결이 가능한지 확인하는 용도입니다. +*/ class HealthCheckUseCase @Inject constructor( private val healthCheckRepository: HealthCheckRepository ) { diff --git a/app/src/main/java/com/eatssu/android/presentation/intro/IntroActivity.kt b/app/src/main/java/com/eatssu/android/presentation/intro/IntroActivity.kt index 84c5704f..7a0198e8 100644 --- a/app/src/main/java/com/eatssu/android/presentation/intro/IntroActivity.kt +++ b/app/src/main/java/com/eatssu/android/presentation/intro/IntroActivity.kt @@ -9,8 +9,8 @@ import com.eatssu.android.databinding.ActivityIntroBinding import com.eatssu.android.presentation.MainActivity import com.eatssu.android.presentation.UiEvent import com.eatssu.android.presentation.UiState +import com.eatssu.android.presentation.error.ServerErrorActivity import com.eatssu.android.presentation.login.LoginActivity -import com.eatssu.android.presentation.util.observeNetworkError import com.eatssu.android.presentation.util.showToast import com.eatssu.android.presentation.util.startActivity import com.eatssu.common.EventLogger @@ -42,8 +42,17 @@ class IntroActivity : AppCompatActivity() { introViewModel.uiState.collectLatest { state -> when (state) { is UiState.Success -> { - startActivity() - finish() + when (state.data) { + IntroState.ValidToken -> { + startActivity() + finish() + } + + IntroState.ServerError -> { + startActivity() + finish() + } + } } is UiState.Error -> { @@ -68,8 +77,6 @@ class IntroActivity : AppCompatActivity() { } } } - - observeNetworkError() } private fun log() { diff --git a/app/src/main/java/com/eatssu/android/presentation/intro/IntroViewModel.kt b/app/src/main/java/com/eatssu/android/presentation/intro/IntroViewModel.kt index a7a2372e..339b2c80 100644 --- a/app/src/main/java/com/eatssu/android/presentation/intro/IntroViewModel.kt +++ b/app/src/main/java/com/eatssu/android/presentation/intro/IntroViewModel.kt @@ -39,7 +39,7 @@ class IntroViewModel @Inject constructor( // 서버와 통신 가능한지 먼저 확인 if (!healthCheckUseCase()) { - // 아무 State 처리 없이 Return해도 NetworkErrorEventBus로 인해 오류 페이지로 이동 + _uiState.value = UiState.Success(IntroState.ServerError) return@launch } @@ -64,6 +64,7 @@ class IntroViewModel @Inject constructor( } } -sealed class IntroState { - object ValidToken : IntroState() +sealed interface IntroState { + data object ValidToken : IntroState + data object ServerError : IntroState }