From b745c3d6752286063a95256a7687d8fcdb131e14 Mon Sep 17 00:00:00 2001 From: klaus Date: Thu, 9 Jul 2026 08:18:54 +0900 Subject: [PATCH] =?UTF-8?q?docs(creator-channel):=20=ED=99=88=20=EC=84=B9?= =?UTF-8?q?=EC=85=98=20=EC=9D=B4=EB=8F=99=20=EC=9A=94=EA=B5=AC=EB=A5=BC=20?= =?UTF-8?q?=EA=B8=B0=EB=A1=9D=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plan-task.md | 24 +++++++++++++++++++ docs/20260611_크리에이터_채널_홈_탭/prd.md | 19 +++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/docs/20260611_크리에이터_채널_홈_탭/plan-task.md b/docs/20260611_크리에이터_채널_홈_탭/plan-task.md index 806f37d1..0f452b1d 100644 --- a/docs/20260611_크리에이터_채널_홈_탭/plan-task.md +++ b/docs/20260611_크리에이터_채널_홈_탭/plan-task.md @@ -552,6 +552,30 @@ - 검증 기록: - 2026-06-15: 문서 확정 Task라 빌드/테스트는 실행하지 않았다. `rg`와 파일 확인으로 삭제 대상 helper, 공통 컨테이너 layout, 재사용 후보 컴포넌트를 확인했다. +- [x] **Task 5R.13: 홈 섹션 chevron/커뮤니티 navigation 후속 연결** + - 수정 예정: + - `app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/ui/CreatorChannelHomeSectionAdapter.kt` + - `app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/CreatorChannelHomeFragment.kt` + - `app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/CreatorChannelActivity.kt` + - `app/src/test/java/kr/co/vividnext/sodalive/v2/creator/channel/CreatorChannelActivitySourceTest.kt` + - 작업: + - `후원`, `오디오`, `시리즈`, `팬Talk` 홈 섹션의 `iv_section_title_chevron`을 표시한다. + - 각 chevron은 `CreatorChannelTab.Donation`, `Audio`, `Series`, `FanTalk` 탭 이동 요청을 `CreatorChannelHomeFragment.Host`로 위임한다. + - 커뮤니티 섹션 `layout_community_more_button`은 `CreatorChannelTab.Community` 탭 이동 요청을 위임한다. + - 홈 섹션 chevron/전체보기 경로로 탭 이동 시 공통 `NestedScrollView`를 최상단으로 이동한다. + - 홈 커뮤니티 item 터치는 기존 `Host.onCreatorChannelCommunityPostClicked(postId)` 경로로 위임해 상세 화면으로 이동한다. + - 신규 Activity/Fragment/screen을 만들지 않고 기존 `CreatorChannelActivity`의 `ViewPager2`와 커뮤니티 상세 launcher를 재사용한다. + - 검증 기준: + - RED로 `CreatorChannelActivitySourceTest`에 chevron 표시, 탭 이동 위임, 커뮤니티 item 상세 이동 계약을 추가한다. + - GREEN으로 focused source test, compile, `git diff --check`를 통과한다. + - 검증 기록: + - 2026-07-09: 사용자 후속 요청에 따라 `CreatorChannelHomeFragment`와 `docs/20260611_크리에이터_채널_홈_탭/*` 범위로 진행한다. 잘못 반영했던 후원 탭 문서 변경은 제거하고 홈 탭 문서에 후속 요구를 기록했다. + - 2026-07-09: RED로 `CreatorChannelActivitySourceTest`에 홈 섹션 chevron/커뮤니티 navigation 계약 2개를 추가했고, 구현 전 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.CreatorChannelActivitySourceTest.홈 섹션 chevron과 커뮤니티 전체보기는 대응 탭으로 이동한다" --tests "kr.co.vividnext.sodalive.v2.creator.channel.CreatorChannelActivitySourceTest.홈 커뮤니티 아이템 클릭은 커뮤니티 상세 이동 host 계약을 사용한다"`가 두 assertion 실패로 FAIL하는 것을 확인했다. + - 2026-07-09: `CreatorChannelHomeSectionAdapter`에서 `후원`, `오디오`, `시리즈`, `팬Talk` 섹션의 `iv_section_title_chevron`을 표시하고 각 탭 요청을 `CreatorChannelHomeFragment.Host`로 위임하도록 연결했다. `layout_community_more_button`은 `CreatorChannelTab.Community`로 이동하고, 홈 커뮤니티 item은 기존 `onCreatorChannelCommunityPostClicked(postId)` 상세 이동 경로를 재사용한다. `CreatorChannelActivity`에는 `selectCreatorChannelTab(tab)` helper를 추가해 `binding.viewPager.currentItem = tab.ordinal`로 기존 ViewPager2 탭 전환을 사용한다. + - 2026-07-09: GREEN 검증으로 동일 focused source test, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`, `git diff --check`가 PASS했다. `ktlintCheck`의 `.editorconfig disabled_rules` deprecation warning과 Gradle deprecation warning은 기존 경고로 이번 변경과 무관하다. 실제 기기 수동 확인은 실행하지 못했으며 source 계약과 컴파일 검증으로 탭 이동/상세 이동 경로를 확인했다. + - 2026-07-09: 사용자 확인 결과 chevron으로 이동할 때 홈에서 내린 공통 scroll 위치가 그대로 유지되는 문제가 있어, 홈 섹션 navigation 요청에 한해 탭 이동 후 `NestedScrollView`를 최상단으로 올리는 후속 보정을 진행한다. 일반 tab-bar 클릭/swipe의 scroll 유지 정책은 변경하지 않는다. RED로 `CreatorChannelActivitySourceTest`의 홈 섹션 navigation 계약에 `scrollCreatorChannelToTop()` 및 `binding.nestedScrollView.scrollTo(0, 0)` 호출 순서를 추가한다. + - 2026-07-09: 후속 보정 구현으로 `onCreatorChannelHomeTabRequested(tab)`에서 `selectCreatorChannelTab(tab)` 직후 `scrollCreatorChannelToTop()`을 호출하고, helper 내부에서 `binding.nestedScrollView.scrollTo(0, 0)`을 실행하도록 수정했다. 구현 전 focused test는 `scrollCreatorChannelToTop()` 부재로 FAIL했고, 구현 후 `./gradlew :app:compileDebugKotlin`, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.CreatorChannelActivitySourceTest.홈 섹션 chevron과 커뮤니티 전체보기는 대응 탭으로 이동한다" --tests "kr.co.vividnext.sodalive.v2.creator.channel.CreatorChannelActivitySourceTest.홈 커뮤니티 아이템 클릭은 커뮤니티 상세 이동 host 계약을 사용한다"`, `./gradlew :app:ktlintCheck`, `git diff --check`가 PASS했다. 병렬 Gradle 실행 중 Kotlin incremental cache/daemon 경합으로 1회 timeout/daemon 오류가 발생했으나 `./gradlew --stop` 후 단독 재실행으로 컴파일과 테스트 통과를 확인했다. + - [x] **Task 5R.1: 현재 라이브 섹션 재구성** - 수정 예정: - `CreatorChannelHomeSectionAdapter.kt` diff --git a/docs/20260611_크리에이터_채널_홈_탭/prd.md b/docs/20260611_크리에이터_채널_홈_탭/prd.md index 197e0ad3..2c0f5662 100644 --- a/docs/20260611_크리에이터_채널_홈_탭/prd.md +++ b/docs/20260611_크리에이터_채널_홈_탭/prd.md @@ -462,6 +462,25 @@ tab-bar는 스크롤 중 title-bar 하단에 고정되는 sticky 영역으로 - 섹션별 Task는 다른 섹션의 리팩터링을 포함하지 않는다. - 상대 날짜 변환 실패 또는 비정상 날짜 값이 들어와도 화면이 crash 나지 않아야 하며, 기존 앱의 날짜 fallback 정책을 따른다. +### Creator Channel Home Section Navigation Follow-up +홈 탭의 섹션 제목 chevron과 커뮤니티 영역에서 기존 크리에이터 채널 탭/상세 이동 경로를 재사용한다. + +#### Requirements +- 홈 탭의 `후원`, `오디오`, `시리즈`, `팬Talk` 섹션 제목 우측 `iv_section_title_chevron`을 표시한다. +- `후원` 섹션 chevron 터치 시 `후원` 탭으로 이동한다. +- `오디오` 섹션 chevron 터치 시 `오디오` 탭으로 이동한다. +- `시리즈` 섹션 chevron 터치 시 `시리즈` 탭으로 이동한다. +- `팬Talk` 섹션 chevron 터치 시 `팬Talk` 탭으로 이동한다. +- 홈 탭의 `커뮤니티` 섹션 `전체보기` 버튼 터치 시 `커뮤니티` 탭으로 이동한다. +- 홈 탭의 커뮤니티 item 터치 시 기존 크리에이터 채널 커뮤니티 상세 화면으로 이동한다. +- 홈 섹션 chevron 또는 커뮤니티 `전체보기` 버튼으로 탭 이동 시 공통 스크롤 위치는 항상 최상단으로 이동한다. +- 신규 화면이나 신규 탭 구조를 만들지 않고 기존 `CreatorChannelActivity`의 `ViewPager2` 탭 선택과 커뮤니티 상세 진입 경로를 재사용한다. + +#### Edge Cases +- 표시 대상이 아닌 섹션의 `iv_section_title_chevron`은 기존처럼 숨김 상태를 유지한다. +- 커뮤니티 item의 `postId <= 0` 또는 비로그인 처리는 기존 커뮤니티 탭 상세 이동 host 정책을 그대로 따른다. +- 일반 tab-bar 클릭 또는 `ViewPager2` swipe 전환의 scroll 유지 정책은 변경하지 않고, 홈 섹션 navigation 요청에만 최상단 이동을 적용한다. + ### CreatorActivityType Commonization 홈 추천 API에서 사용 중인 `RecommendedActivityType`은 크리에이터 채널 홈 API의 `CreatorActivityType`과 동일한 의미를 가지므로 공용 타입으로 정리한다.