Skip to content

refactor(setting): 수신자 목록을 MVI와 lifecycle Intent로 전환 (#1805) - #2018

Closed
OnlyReadOneBook wants to merge 1 commit into
refactor/1502-setting-state-mvifrom
refactor/1805-receiver-list-mvi
Closed

OnlyReadOneBook wants to merge 1 commit into
refactor/1502-setting-state-mvifrom
refactor/1805-receiver-list-mvi

Conversation

@OnlyReadOneBook

Copy link
Copy Markdown
Collaborator

📌𝘐𝘴𝘴𝘶𝘦𝘴

📎𝘞𝘰𝘳𝘬 𝘋𝘦𝘴𝘤𝘳𝘪𝘱𝘵𝘪𝘰𝘯

수신자 목록 ViewModel을 MviViewModel과 onIntent/reduce로 전환하고, 실제 SettingNavHost의 목록 화면에서 uiState를 수집합니다. 기존 목록 구독의 5초 중단 유예와 화면 복귀 시 재구독을 유지합니다.

🧪 CI Test Plan

{
  "androidTest": {
    "mode": "selected",
    "reason": "최종 SettingNavHost의 목록 상태 수집과 lifecycle 배선을 변경하므로 실제 호스트의 관리 목록 진입 및 전달조건 수신자 선택 계약을 API 34에서 검증합니다.",
    "tests": [
      {
        "path": "app/src/androidTest/java/com/afternote/afternote_fe/SettingImplementedCoverageAndroidTest.kt",
        "selector": "com.afternote.afternote_fe.SettingImplementedCoverageAndroidTest#actualSettingNavHost_receiverManageListRowNavigatesToEditWithExactReceiverId",
        "device": "api34"
      },
      {
        "path": "app/src/androidTest/java/com/afternote/afternote_fe/SettingImplementedCoverageAndroidTest.kt",
        "selector": "com.afternote.afternote_fe.SettingImplementedCoverageAndroidTest#actualSettingNavHost_deliveryConditionReceiverSelectionPreservesExactReceiverId",
        "device": "api34"
      }
    ]
  }
}
  • 설정 테스트 77개(신규 구독 회귀 7개 포함), Konsist 56개 통과.
  • 앱 main/unit/androidTest Kotlin 컴파일, setting·konsist ktlint, 전체 base 대비 모듈 소유권 검사 통과.
  • 회귀는 시작 전 미구독, 중복 시작, 5초 이내 복귀·5초 뒤 중단/재조회, 중복 중단, 빈 목록 갱신, ViewModel 제거를 검증합니다.

💬𝘛𝘰 𝘙𝘦𝘷𝘪𝘦𝘸𝘦𝘳𝘴

실제 base는 #1967의 refactor/1502-setting-state-mvi입니다. 그 아래 #1962의 최종 Navigation 3 소비 경계와 좁은 Repository 계약을 재사용합니다. #1925/#1927/#1930의 ReceiverList 소비 블록과는 합쳐지는 것을 확인했으며, 해당 형제 PR을 통합할 때 기존 다른 화면 충돌과 Konsist 인접 예외 삭제는 함께 보존해야 합니다.

@github-actions github-actions Bot added sibling-conflict 열린 형제 PR 과 같은 파일에서 충돌 — 나중에 머지되는 쪽이 base 를 병합해야 한다. 해소되면 자동으로 떨어진다 android-test PR head에서 Android Managed Device 계측 테스트 실행 labels Sep 13, 2026
@github-actions

github-actions Bot commented Sep 13, 2026 •

Copy link
Copy Markdown
Contributor

열린 PR 중 이 PR 과 같은 파일을 서로 다르게 고친 것이 있다. 어느 쪽이 먼저 머지되든 나중 쪽은 base 를 병합해야 통과한다 (#1750).

머지 자체는 GitHub 이 막는다 — 한쪽이 들어가면 다른 쪽은 CONFLICTING 이 되어 merge queue 에 못 들어간다.
이 라벨은 그 전에 순서를 정하라는 신호다. 먼저 갈 쪽을 정하고, 나중 쪽은 그 머지 뒤에 base 를 병합한다.
상대 PR 에도 같은 안내가 달린다.

이 코멘트는 리컨사일러가 매 실행 현재 상태로 고쳐 쓴다. 해소되면 sibling-conflict 라벨은 자동으로 떨어진다.

@OnlyReadOneBook

Copy link
Copy Markdown
Collaborator Author

PM 결정을 기다리는 항목은 깃허브에 열어 두지 않고 피그마 질문 한 자리에만 둔다(2026-09-18 일혁 결정). 이 PR 은 #1962(설정 Nav3 이관) 위에 쌓여 있고, #1962 는 설정 메인 사후 전달 조건 진입 경로의 PM 답을 기다린다: https://www.figma.com/design/UP9ZR186jHvRBicjA2SOea/?node-id=4327-64430#1923797606

그래서 사슬 13건을 함께 닫는다. 브랜치와 승인 리뷰는 그대로 남아 있고, 답이 오면 그 답을 근거로 #1962 부터 다시 열어 같은 순서로 올린다. 코드가 틀려서 닫는 것이 아니다.

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 계측 테스트 실행 sibling-conflict 열린 형제 PR 과 같은 파일에서 충돌 — 나중에 머지되는 쪽이 base 를 병합해야 한다. 해소되면 자동으로 떨어진다

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants