Skip to content

fix: 설정 조회 오류·재시도와 저장 실패 안내 연결 (#708) - #2231

Merged
OnlyReadOneBook merged 8 commits into
developfrom
fix/708-setting-error-retry
Oct 6, 2026
Merged

OnlyReadOneBook merged 8 commits into
developfrom
fix/708-setting-error-retry

Conversation

@OnlyReadOneBook

@OnlyReadOneBook OnlyReadOneBook commented Oct 1, 2026 •

Copy link
Copy Markdown
Collaborator

먼저 볼 파일

  • 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에는 해당 선행 변경을 중복해서 싣지 않습니다.

검증

  • 설정 단위·Compose UI 테스트 182건 통과(실패·오류·건너뜀 0건).
  • 설정 ktlint, 스크린샷 테스트 컴파일, 앱·Android 계측 테스트 컴파일, Konsist 검사 통과.
  • 연결 계정·푸시의 로딩/오류 Preview를 일반·작은 화면으로 추가했습니다. GitHub Actions의 Generate·Apply가 성공하여 PNG 8개를 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"
      }
    ]
  }
}

@github-actions
github-actions Bot requested a review from Sadturtleman October 1, 2026 11:47
@OnlyReadOneBook
OnlyReadOneBook added this pull request to stack #2228 October 1, 2026 11:47
@github-actions github-actions Bot added the android-test PR head에서 Android Managed Device 계측 테스트 실행 label Oct 1, 2026
@OnlyReadOneBook OnlyReadOneBook added the screenshot-baseline CI 표준 환경에서 PR screenshot baseline 생성·적용 요청 label Oct 1, 2026
@github-actions

github-actions Bot commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

📸 CI 표준 환경에서 screenshot baseline 8개를 생성·검증해 23bb657 로 커밋했습니다.
실행 로그·생성 artifact: https://github.com/Afternote/Afternote-FE/actions/runs/36857739385
이미지 내용은 이 PR의 PNG diff에서 눈으로 최종 확인해 주세요. 필수 검사도 새 SHA에 다시 요청했습니다.

@Sadturtleman Sadturtleman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

설정 메인·프로필·연결 계정·푸시 화면의 로딩/오류/재시도 분리와 중복 요청 방지, 저장 실패 스낵바 연결을 확인했습니다. 단일 MVI 상태 전환도 기존 탈퇴·로그아웃 흐름을 유지해 승인합니다.

@github-actions github-actions Bot added the sibling-conflict 열린 형제 PR 과 같은 파일에서 충돌 — 나중에 머지되는 쪽이 base 를 병합해야 한다. 해소되면 자동으로 떨어진다 label Oct 5, 2026
@github-actions

github-actions Bot commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

형제 충돌이 해소됐다 — 지금은 이 PR 과 같은 파일을 서로 다르게 고친 열린 PR 이 없다 (#1750).
다시 생기면 이 코멘트를 현재 상태로 고쳐 쓴다.

@github-actions github-actions Bot added sibling-conflict 열린 형제 PR 과 같은 파일에서 충돌 — 나중에 머지되는 쪽이 base 를 병합해야 한다. 해소되면 자동으로 떨어진다 and removed sibling-conflict 열린 형제 PR 과 같은 파일에서 충돌 — 나중에 머지되는 쪽이 base 를 병합해야 한다. 해소되면 자동으로 떨어진다 labels Oct 5, 2026
# 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
@github-actions github-actions Bot removed the sibling-conflict 열린 형제 PR 과 같은 파일에서 충돌 — 나중에 머지되는 쪽이 base 를 병합해야 한다. 해소되면 자동으로 떨어진다 label Oct 6, 2026
@github-actions github-actions Bot added the conflict base 와 충돌 — CI 가 트리거되지 않는다. base 를 병합하면 자동으로 떨어진다 label Oct 6, 2026
@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

이 PR 은 fix/2223-profile-phone 와 충돌 상태이고, 그래서 CI 가 돌지 않는다.

pull_request 워크플로는 base 와 head 를 합친 가상 머지 커밋(refs/pull/<N>/merge)에서
실행되는데, 충돌이면 GitHub 이 그 ref 를 만들지 못해 워크플로가 트리거조차 되지 않는다.
체크가 실패하는 것이 아니라 아예 생성되지 않으므로, 새 커밋을 올려도 no checks reported
인 채 최신 커밋이 한 번도 검증되지 않은 상태로 남는다 (#1028).

fix/2223-profile-phone 를 병합해 충돌을 풀면 검증이 다시 돈다. 해소되면 이 라벨은 자동으로 떨어진다.

Base automatically changed from fix/2223-profile-phone to develop October 6, 2026 06:29
@github-actions github-actions Bot removed the conflict base 와 충돌 — CI 가 트리거되지 않는다. base 를 병합하면 자동으로 떨어진다 label Oct 6, 2026
@OnlyReadOneBook
OnlyReadOneBook added this pull request to the merge queue Oct 6, 2026
Merged via the queue into develop with commit 920e523 Oct 6, 2026
21 checks passed
@OnlyReadOneBook
OnlyReadOneBook deleted the fix/708-setting-error-retry branch October 6, 2026 07:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

android-test PR head에서 Android Managed Device 계측 테스트 실행

Projects

None yet

Development

Successfully merging this pull request may close these issues.

서버 조회 실패가 로그아웃·빈 목록·OFF 기본값으로 위장 — 오류·재시도 상태 미결선

2 participants