Repository navigation
fix: 설정 조회 오류·재시도와 저장 실패 안내 연결 (#708) - #2231
Conversation
…/708-setting-error-retry
|
📸 CI 표준 환경에서 screenshot baseline 8개를 생성·검증해 |
Sadturtleman
left a comment
There was a problem hiding this comment.
설정 메인·프로필·연결 계정·푸시 화면의 로딩/오류/재시도 분리와 중복 요청 방지, 저장 실패 스낵바 연결을 확인했습니다. 단일 MVI 상태 전환도 기존 탈퇴·로그아웃 흐름을 유지해 승인합니다.
|
형제 충돌이 해소됐다 — 지금은 이 PR 과 같은 파일을 서로 다르게 고친 열린 PR 이 없다 (#1750). |
# Conflicts: # feature/setting/presentation/src/main/kotlin/com/afternote/feature/setting/presentation/home/SettingViewModel.kt # feature/setting/presentation/src/main/kotlin/com/afternote/feature/setting/presentation/notification/PushNotificationViewModel.kt
|
이 PR 은
|
…/708-setting-error-retry
먼저 볼 파일
home/SettingViewModel.kt: 프로필·로그아웃·탈퇴 상태를 하나의 MVI 상태로 관리합니다.home/SettingScreen.kt: 프로필 조회가 실패해도 설정 진입점을 유지하고 재시도를 제공합니다.account/ConnectedAccountsViewModel.kt: 조회 실패와 연결 변경 실패를 구분하고 중복 요청을 막습니다.profile/ProfileEditScreen.kt: 조회 재시도와 저장 실패 안내를 화면에 연결합니다.변경 내용
Closes #708
설정 서버 조회가 실패하면 로그아웃만 남거나 빈 목록·모든 알림 OFF처럼 보이던 문제를 수정합니다. 설정 메인, 프로필 수정, 연결 계정, 푸시 설정에서 로딩·오류·성공을 구분하고 오류 상태에 재시도를 제공합니다. 조회되지 않은 데이터의 편집을 막고, 프로필 저장과 계정 연결 변경 실패를 스낵바로 알립니다.
설정 메인 ViewModel을 최종 MVI 계약으로 전환하면서 프로필 새로고침이 로그아웃·탈퇴 상태를 지우지 않도록 했습니다. 수신자 목록 오류 처리는 이미 병합된 #2154를 그대로 소비합니다. 푸시 PATCH와 전달 조건 PATCH 동작은 각각 기존 구현을 유지합니다.
실제 base는 #2230의
fix/2223-profile-phone입니다. #2179·#1502 MVI 전환과 #1438 사진 편집, #2223 연락처 검증을 모두 소비하며 이 PR에는 해당 선행 변경을 중복해서 싣지 않습니다.검증
23bb6579에 반영했습니다. 일반·작은 화면 모두 한글, 재시도 버튼, 로딩 및 하단 안내 레이아웃을 확인했습니다.CI Test Plan
{ "androidTest": { "mode": "selected", "reason": "단일 SettingUiState로 바뀐 탈퇴 가이드와 확인 화면이 실제 SettingNavHost의 취소·동의·확인 경계를 유지하는지 검증합니다. 조회 재시도와 저장 실패 표시는 Compose Robolectric 테스트에서 검증합니다.", "tests": [ { "path": "app/src/androidTest/java/com/afternote/afternote_fe/SettingImplementedCoverageAndroidTest.kt", "selector": "com.afternote.afternote_fe.SettingImplementedCoverageAndroidTest#settingNavHost_withdrawGuideCancelThenAgreementConfirmPreservesBoundary", "device": "api34" } ] } }