Repository navigation
fix: 설정 하위 화면 재진입 갱신과 편집 상태 보존 (#1920) - #2235
Merged
Merged
Conversation
Contributor
|
형제 충돌이 해소됐다 — 지금은 이 PR 과 같은 파일을 서로 다르게 고친 열린 PR 이 없다 (#1750). |
Sadturtleman
approved these changes
Oct 4, 2026
Sadturtleman
left a comment
Collaborator
There was a problem hiding this comment.
재진입 갱신이 저장·편집 중에는 건너뛰고, 저장 시작 시 오래된 조회를 취소하며, 편집하지 않은 필드만 새 값으로 바꾸는 흐름을 확인했습니다. 승인합니다.
…rn-refresh # Conflicts: # feature/setting/presentation/src/main/kotlin/com/afternote/feature/setting/presentation/delivery/DeliveryConditionViewModel.kt
Contributor
|
이 PR 은
|
…rn-refresh # Conflicts: # konsist/src/test/kotlin/com/afternote/konsist/RefreshOnReturnWiringKonsistTest.kt
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
먼저 볼 파일
profile/ProfileEditScreen.kt: 새 서버 값은 사용자가 아직 수정하지 않은 입력에만 반영합니다.delivery/DeliveryConditionViewModel.kt: 편집 revision으로 전달 조건 선택을 보존하고 저장 전 오래된 조회를 취소합니다.notification/PushNotificationViewModel.kt: 재진입 시 푸시·마케팅 동의를 갱신하고 저장과 조회의 경합을 막습니다.SettingReentryViewModelTest.kt: 첫 진입, 중복 요청, 조회 실패, 저장 중 복귀와 편집 보존 회귀를 검증합니다.변경 내용
Closes #1920
연결 계정, 전달 조건, 프로필 수정, 푸시 설정, 알림 설정에 다시 돌아오면 서버 상태를 갱신합니다. 최초 진입은 기존 조회를 재사용하고, 이미 진행 중인 조회나 저장에는 중복 요청을 보내지 않습니다. 알림 설정의 마케팅 수신 동의도 화면 복귀 시 갱신합니다.
자동 갱신 실패 시 기존 화면을 유지하고 저장하지 않은 이름·연락처·사진과 전달 조건 선택을 보존합니다. 저장을 시작하면 오래된 조회를 취소해 뒤늦은 응답이 저장 상태를 덮지 않게 했습니다. 프로필의 변경되지 않은 필드와 이메일은 최신 값으로 갱신합니다.
실제 base는 #2231의
fix/708-setting-error-retry입니다. 최종 MVI·Nav3 계약과 오류/재시도를 소비하며 이전 혼합 PR #1905와 닫힌 #1930의 코드를 통째로 되살리지 않습니다. 다른 모듈의 재진입 처리는 포함하지 않습니다.검증
CI Test Plan
{ "androidTest": { "mode": "selected", "reason": "재진입 조회와 전달 조건 저장의 경합을 변경하므로 실제 SettingNavHost에서 저장 성공이 한 화면만 되돌리는 경계를 API34로 검증합니다. 다섯 화면의 재진입, 입력 보존, 마케팅 lifecycle과 요청 경합은 설정 JVM·Compose 테스트로 검증합니다.", "tests": [ { "path": "app/src/androidTest/java/com/afternote/afternote_fe/SettingEditorSaveSignalAndroidTest.kt", "selector": "com.afternote.afternote_fe.SettingEditorSaveSignalAndroidTest#deliveryCondition_saveSuccessPopsExactlyOneScreenToReceiverSelection", "device": "api34" } ] } }