docs(creator): 오디오 탭 Phase 1 검증을 기록한다

This commit is contained in:
2026-06-19 14:48:01 +09:00
parent 88dd7cc04c
commit a0274518d2

View File

@@ -129,7 +129,7 @@
### Phase 1: 기존 구조 확인과 작업 경계 고정 ### Phase 1: 기존 구조 확인과 작업 경계 고정
- [ ] **Task 1.1: 라이브 탭 재사용 경계 확인** - [x] **Task 1.1: 라이브 탭 재사용 경계 확인**
- 확인: - 확인:
- `app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/live/CreatorChannelLiveFragment.kt` - `app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/live/CreatorChannelLiveFragment.kt`
- `app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/live/CreatorChannelLiveViewModel.kt` - `app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/live/CreatorChannelLiveViewModel.kt`
@@ -142,8 +142,13 @@
- 라이브 탭 파일을 무리하게 리팩터링하지 않고 오디오 탭 구현에 필요한 최소 공용화만 계획에 반영한다. - 라이브 탭 파일을 무리하게 리팩터링하지 않고 오디오 탭 구현에 필요한 최소 공용화만 계획에 반영한다.
- 검증: - 검증:
- 라이브 탭 기존 테스트가 공용화 후에도 유지되어야 할 검증 목록을 기록한다. - 라이브 탭 기존 테스트가 공용화 후에도 유지되어야 할 검증 목록을 기록한다.
- 검증 기록:
- 2026-06-19 확인 완료. `CreatorChannelLiveFragment``CreatorChannelLiveSortPopup`, `CreatorChannelLiveReplayAdapter`, `toReplayUiModel()`을 직접 사용하고, sort label은 `ContentSort.toLabelResId()` 확장으로 분리되어 있다.
- `CreatorChannelLiveSortPopup`은 class/package명과 `view_creator_channel_live_sort_menu`, `layout_creator_channel_live_sort_options`, `tv_creator_channel_live_sort_option_sample` id가 모두 live 전용이므로 Phase 3에서 `creator/channel/ui/CreatorChannelSortPopup.kt`와 공용 layout으로 이동하는 방식이 오디오 참조에 적합하다.
- replay item 상태 정책은 mapper의 `Owned > Rented > Play(무료) > Price` 우선순위와 adapter의 badge/tag/status bind를 오디오 item에 동일 적용할 수 있다. 단, layout id prefix는 오디오 전용으로 유지해 라이브 adapter를 무리하게 공용화하지 않는다.
- 공용화 후 유지해야 할 회귀 검증은 `CreatorChannelLiveFragmentLayoutTest`, `CreatorChannelActivitySourceTest`의 live sort/pagination/owner CTA 관련 source 검증, `CreatorChannelPagerAdapterTest`이다.
- [ ] **Task 1.2: 오디오 업로드 CTA와 기존 진입점 확인** - [x] **Task 1.2: 오디오 업로드 CTA와 기존 진입점 확인**
- 확인: - 확인:
- `app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/CreatorChannelActivity.kt` - `app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/CreatorChannelActivity.kt`
- `app/src/main/res/layout/activity_creator_channel.xml` - `app/src/main/res/layout/activity_creator_channel.xml`
@@ -155,8 +160,13 @@
- 검증: - 검증:
- `rg -n "onOwnerFabAudioClicked|ic_new_upload_audio|AudioContentUploadActivity" app/src/main/java app/src/main/res` - `rg -n "onOwnerFabAudioClicked|ic_new_upload_audio|AudioContentUploadActivity" app/src/main/java app/src/main/res`
- 기대 결과: 기존 오디오 업로드 진입점과 icon 리소스 참조가 확인된다. - 기대 결과: 기존 오디오 업로드 진입점과 icon 리소스 참조가 확인된다.
- 검증 기록:
- 2026-06-19 `rg -n "onOwnerFabAudioClicked|ic_new_upload_audio|AudioContentUploadActivity|CreatorChannelTab\.Audio|CreatorChannelPlaceholderFragment|CreatorChannelPagerAdapterTest|CreatorChannelActivitySourceTest" app/src/main/java app/src/main/res app/src/test/java` 실행으로 기존 진입점과 icon 참조를 확인했다.
- `CreatorChannelActivity``binding.ownerFabAudioButton.setOnClickListener { onOwnerFabAudioClicked() }`를 가지고, `onOwnerFabAudioClicked()`에서 `collapseOwnerFab(animate = false)``AudioContentUploadActivity``startActivity`로 연다.
- `activity_creator_channel.xml``owner_fab_audio_button``@drawable/ic_new_upload_audio`가 이미 존재한다. 오디오 탭 하단 CTA는 새 업로드 경로를 만들지 말고 기존 `onOwnerFabAudioClicked()`를 호출하도록 연결한다.
- 기존 source test는 `AudioContentUploadActivity`, `onOwnerFabAudioClicked()`, `startActivity(Intent(this, AudioContentUploadActivity::class.java))`, `@drawable/ic_new_upload_audio`를 검증하고 있으므로 Phase 6에서 하단 CTA 추가 시 이 검증을 유지/확장한다.
- [ ] **Task 1.3: 오디오 탭 placeholder 연결 지점 확인** - [x] **Task 1.3: 오디오 탭 placeholder 연결 지점 확인**
- 확인: - 확인:
- `app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/CreatorChannelPagerAdapter.kt` - `app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/CreatorChannelPagerAdapter.kt`
- `app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/model/CreatorChannelHomeUiModels.kt` - `app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/model/CreatorChannelHomeUiModels.kt`
@@ -165,6 +175,10 @@
- 신규 `CreatorChannelAudioFragment.newInstance(creatorId)`로 교체할 수 있는지 확인한다. - 신규 `CreatorChannelAudioFragment.newInstance(creatorId)`로 교체할 수 있는지 확인한다.
- 검증: - 검증:
- `CreatorChannelPagerAdapterTest`에 오디오 탭 연결 테스트를 추가할 준비가 되었는지 기록한다. - `CreatorChannelPagerAdapterTest`에 오디오 탭 연결 테스트를 추가할 준비가 되었는지 기록한다.
- 검증 기록:
- 2026-06-19 확인 완료. `CreatorChannelPagerAdapter`는 현재 `CreatorChannelTab.Home``CreatorChannelTab.Live`만 실제 Fragment로 연결하고 `else -> CreatorChannelPlaceholderFragment.newInstance(tab)`로 Audio 포함 후속 탭을 placeholder 처리한다.
- `CreatorChannelActivitySourceTest`는 현재 `CreatorChannelTab.Audio ->`가 source에 없어야 한다고 검증하고, `CreatorChannelPagerAdapterTest`는 Home/Live 외 탭이 placeholder임을 검증한다.
- Phase 6에서 `CreatorChannelTab.Audio -> CreatorChannelAudioFragment.newInstance(creatorId)`를 추가하면서 `CreatorChannelPagerAdapterTest`는 Audio 실제 Fragment 검증으로 변경하고, source test의 기존 placeholder/no-op 기대값도 오디오 연결 정책에 맞게 갱신한다.
--- ---