Repository navigation
수신자 summary 패키지 8파일이 도달 불가 — afternotelist 가 대체, 내려받기 전용 화면은 시안 대조 후 판정 #1424
Description
작업 유형
refactor — 동작 변경 없는 구조·책임·경계 개선
주 담당 모듈
receiver — 수신자 관리
개요
feature/receiver/presentation 의 summary/ 패키지 8파일이 통째로 도달 불가다. 같은 자리를 afternotelist/ 구현이 이미 맡고 있어 대체된 잔재로 보인다. 처분(삭제 vs 존치)을 판정한다.
진입점이 없다 — 화면의 유일한 진입점은 NavGraph 참조인데([[#1064]] 판정 기준), 수신자 애프터노트 목록 라우트가 세우는 것은 다른 Entry 다:
ReceiverNavGraph.kt:124 receiverComposable<ReceiverRoute.AfternoteListRoute> {
ReceiverNavGraph.kt:125 ReceiverAfternoteHomeEntry(...) ← 살아 있는 쪽 (afternotelist/)
summary/ReceiverAfternoteScreen.kt:44 의 ReceiverAfterNoteEntry 는 레포 전체에서 선언 1건·호출부 0건이다(심볼 grep, main·test·androidTest 전부). 이름이 ReceiverAfternoteHomeEntry 와 「Home」 유무·N 대소문자만 달라 파일·심볼 눈대중으로는 갈리지 않는다.
두 구현의 관계 — 살아 있는 ReceiverAfternoteHomeEntry 는 작성자 측 AfternoteHomeScreen + Paging 3 을 재사용하고 수신자 관점 조각만 덮는다(#611·#620·#777 이 그 설계를 확정). summary/ 쪽은 Hero 카드 + 섹션 3개를 직접 그리는 초기 판이다. 둘 다 31ee4b6d0(수신자 흐름 :feature:receiver 이전)에서 함께 들어왔고, 그 커밋 시점부터 NavGraph 는 줄곧 afternotelist/ 만 세워 왔다 — 이전 당시 이미 죽어 있던 코드가 함께 옮겨진 것으로 보인다.
도달 불가 범위 (실측)
| 파일 | 외부 참조 |
|---|---|
summary/ReceiverAfternoteScreen.kt (ReceiverAfterNoteEntry) |
0건 |
〃 (ReceiverAfterNoteScreen) |
죽은 Entry + app/src/androidTest/.../ReceiverAdvancedAndroidTest.kt:231 |
summary/ContentSection.kt · TopHeader.kt |
죽은 화면 안에서만 |
summary/HeroCard.kt |
죽은 화면 + screenshotTest/.../HeroCardScreenshotTest.kt |
summary/ReceiverSummaryUiState.kt |
죽은 화면 안에서만 |
summary/ReceiverDownloadAllViewModel.kt · ReceiverDownloadAllEvent.kt · ReceiverDownloadAllUiState.kt |
죽은 Entry + 위 androidTest |
딸린 문제 2건
- 에뮬레이터 테스트가 도달 불가 화면을 검증한다.
ReceiverAdvancedAndroidTest#download_cancelThenDownloadFailureSaveFailureAndSuccess_preservesStageBoundaries가ReceiverAfterNoteScreen을 직접 세워 내려받기 단계 경계를 단언한다. 사용자가 닿을 수 없는 화면에 managed-device 시간을 쓰고 있다. - 모든 기록 내려받기 data 계층 미구현 — 스텁이 성공만 반환해 사용자에게 성공으로 보임 #589 의 전제가 어긋난다. 그 이슈는 「호출부는 두 곳 — 수신자 홈(
ReceiverHomeViewModel), 내려받기 화면(ReceiverDownloadAllViewModel)」이라 적었는데, 살아 있는 호출부는 수신자 홈 하나뿐이다. BE#90 이 와서 data 계층을 구현할 때 배선 대상이 한 곳으로 줄어든다.
판정이 필요한 이유 — 그냥 지우면 안 될 수 있다
ReceiverDownloadAllViewModel 계열은 #589(모든 기록 내려받기, BE#90 대기)와 맞물린다. 「전체 내려받기 전용 화면」이 시안에 있고 서버 대기 중이라 배선만 안 된 상태라면 이건 잔재가 아니라 미배선이고, 지우면 BE#90 도착 시 다시 만들어야 한다. 반대로 내려받기가 수신자 홈 한 곳에서만 제공되는 게 확정 시안이면 8파일 전량 삭제가 맞다.
완료 조건
- 시안에서 「수신자 전체 내려받기 전용 화면」의 존재 여부를 확인하고 판정 근거를 이슈에 남긴다.
- 잔재 판정이면
summary/8파일 +HeroCardScreenshotTest+ 그 reference PNG +ReceiverAdvancedAndroidTest의 해당 @test 를 함께 제거한다(스크린샷 골든 재생성은 컨테이너/CI 경로로). - 미배선 판정이면 라우트·진입 배선을 세우거나, 모든 기록 내려받기 data 계층 미구현 — 스텁이 성공만 반환해 사용자에게 성공으로 보임 #589 의 후속으로 「BE#90 도착 시 배선」을 명시해 이 이슈를 닫는다.
- 어느 쪽이든 모든 기록 내려받기 data 계층 미구현 — 스텁이 성공만 반환해 사용자에게 성공으로 보임 #589 본문의 「호출부 두 곳」 기술을 실제에 맞게 정정한다.
자식 이슈
No response
참고
- 발단: PR refactor(receiver): ReceiverHomeActions no-op 콜백 디폴트 4건 제거 (#1388) #1414(refactor(platform): 컴포저블 no-op 콜백 디폴트 — 재발 가드·컨벤션 도입 + afternote 잔여 2건 #1388 receiver 몫) 작업 중
ReceiverAfterNoteEntry의 프로덕션 호출부가 0곳임이 드러났다. 그 PR 은 범위(디폴트 제거)를 지켜 배선을 건드리지 않고 보고만 했다. - 선행 PR 과의 관계: PR refactor(receiver): 수신자 홈 내려받기 실패 Toast 를 Snackbar 로 전환 (#1391) #1412(refactor(receiver): android.widget.Toast 잔여 3건 제거 — 서버 실패 2건은 #446 체계 합류, 영상 앱 없음 안내는 Snackbar·리소스화 #1391 Toast 제거)의 「건 2」와 PR refactor(receiver): ReceiverHomeActions no-op 콜백 디폴트 4건 제거 (#1388) #1414 의
ReceiverAfternoteScreen.kt·ContentSection.kt변경분이 이 죽은 코드에 대한 것이다. 잔재 판정이 나면 그 변경들은 파일째 사라진다 — 두 PR 은 그대로 머지해도 무해하나(동작 변경 0), 이 이슈를 먼저 처리하면 헛일이 줄어든다. PR refactor(receiver): 수신자 홈 내려받기 실패 Toast 를 Snackbar 로 전환 (#1391) #1412 의 「건 1」(ReceiverHomeScreen)은 살아 있는 경로라 무관하다. - 유형 전례: 참조 0건 잔재 5파일 삭제 — 도달 불가 화면 1 · 대체된 ViewModel 1 · 죽은 컴포넌트 2 #1064(setting 참조 0건 5파일) · core:model 죽은 타입 6개 삭제 — 참조 0건, 살아있는 타입과 이름 혼동 #941(core:model 죽은 타입 6개) · refactor(afternote): 서버 475 수신자 필수 체인 전 구간 도달 불가 — 매퍼 분기·AuthoringValidation·RECEIVERS_REQUIRED 잔재 제거 #1387(도달 불가 체인 제거). 판정 함정 전례: fix(afternote): 미배선 콜백 4건 — 남기실 말씀 등록·수신 상세 확인하기·홈 NEXT STEP 카드 무동작, no-op 디폴트가 은폐 #777(시안에 실재하는데 잔재로 오판).
Activity
Merge pull request #1430 from Afternote/refactor/1424-receiver-summar…