fix(series-detail): 조회 실패 시 이전 화면으로 복귀한다

This commit is contained in:
2026-02-26 02:17:33 +09:00
parent 2a44494d88
commit 5a70869dd8
3 changed files with 29 additions and 2 deletions

View File

@@ -44,12 +44,13 @@ class SeriesDetailActivity : BaseActivity<ActivitySeriesDetailBinding>(
Toast.LENGTH_LONG
).show()
finish()
return
}
bindData()
viewModel.seriesId = seriesId
viewModel.getSeriesDetail()
viewModel.getSeriesDetail { finish() }
}
override fun setupView() {

View File

@@ -34,7 +34,7 @@ class SeriesDetailViewModel(
private val unknownErrorMessage: String
get() = SodaLiveApplicationHolder.get().getString(R.string.common_error_unknown)
fun getSeriesDetail() {
fun getSeriesDetail(onFailure: (() -> Unit)? = null) {
_isLoading.value = true
compositeDisposable.add(
@@ -51,6 +51,10 @@ class SeriesDetailViewModel(
_seriesDetailLiveData.value = seriesDetailResponse
} else {
_toastLiveData.value = it.message ?: unknownErrorMessage
if (onFailure != null) {
onFailure()
}
}
_isLoading.value = false
},
@@ -58,6 +62,10 @@ class SeriesDetailViewModel(
_isLoading.value = false
it.message?.let { message -> Logger.e(message) }
_toastLiveData.postValue(unknownErrorMessage)
if (onFailure != null) {
onFailure()
}
}
)
)

View File

@@ -0,0 +1,18 @@
- [x] SeriesDetailActivity/SeriesDetailViewModel 오류 처리 흐름 확인
- [x] 시리즈 상세 조회 실패 시 이전 페이지 이동 로직 반영
- [x] 관련 테스트 실행 및 결과 확인
## 검증 기록
- 일시: 2026-02-26
- 무엇을/왜: 시리즈 상세 진입 후 `getSeriesDetail` 실패 시 토스트만 노출되고 화면이 유지되어 사용자 요청대로 이전 페이지 복귀가 필요함.
- 어떻게:
- `SeriesDetailViewModel.getSeriesDetail``onFailure` 콜백을 추가하고 실패 분기(`success=false`, `onError`)에서 콜백을 실행하도록 수정.
- `SeriesDetailActivity`에서 `viewModel.getSeriesDetail { finish() }` 형태로 호출해 조회 실패 시 이전 페이지로 이동.
- `seriesId <= 0` 가드에서 `finish()` 이후 `return`을 추가해 후속 로직 실행 방지.
- 실행 명령:
- `./gradlew :app:testDebugUnitTest && ./gradlew :app:assembleDebug`
- 결과:
- `:app:testDebugUnitTest` 성공
- `:app:assembleDebug` 성공
- Kotlin LSP 미구성 환경으로 `lsp_diagnostics`는 실행 불가(도구에서 `.kt` 서버 미설정 오류 확인)