From f0119767abaf513a45a4b21755c6059c7d02e87d Mon Sep 17 00:00:00 2001 From: PeraSite Date: Mon, 17 Nov 2025 08:25:19 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20IntroActivity=EC=97=90=EC=84=9C=20o?= =?UTF-8?q?bserveNetworkError=20=EC=97=86=EC=9D=B4=20UiState=EB=A1=9C=20?= =?UTF-8?q?=EB=84=A4=ED=8A=B8=EC=9B=8C=ED=81=AC=20=ED=86=B5=EC=8B=A0=20?= =?UTF-8?q?=EC=98=A4=EB=A5=98=EB=A5=BC=20=ED=95=B4=EA=B2=B0=ED=95=98?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../android/presentation/intro/IntroActivity.kt | 17 ++++++++++++----- .../presentation/intro/IntroViewModel.kt | 7 ++++--- 2 files changed, 16 insertions(+), 8 deletions(-) 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 } From 7f049965a424d7d58670fd577bf0190a8b2d389d Mon Sep 17 00:00:00 2001 From: PeraSite Date: Mon, 17 Nov 2025 08:25:33 +0900 Subject: [PATCH 2/2] =?UTF-8?q?docs:=20HealthCheckUseCase=20=EC=A3=BC?= =?UTF-8?q?=EC=84=9D=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../android/domain/usecase/health/HealthCheckUseCase.kt | 4 ++++ 1 file changed, 4 insertions(+) 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 ) {