docs(creator): 라이브 본인 CTA 검증을 기록한다
This commit is contained in:
@@ -453,7 +453,7 @@
|
||||
|
||||
### Phase 6: 본인 채널 하단 CTA와 라이브 시작 진입 연결
|
||||
|
||||
- [ ] **Task 6.1: 본인 CTA 노출과 inset 처리 구현**
|
||||
- [x] **Task 6.1: 본인 CTA 노출과 inset 처리 구현**
|
||||
- 수정:
|
||||
- `app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/live/CreatorChannelLiveFragment.kt`
|
||||
- `app/src/main/res/layout/fragment_creator_channel_live.xml`
|
||||
@@ -468,8 +468,15 @@
|
||||
- `./gradlew :app:compileDebugKotlin`
|
||||
- 기대 결과:
|
||||
- CTA resource와 inset 코드가 컴파일된다.
|
||||
- 검증 기록:
|
||||
- 2026-06-18: Figma `665:19359`, `665:19371`을 확인해 본인 채널 하단 CTA가 검정 하단 영역 위 14dp inset, `soda_400` capsule, `ic_new_create_live`, `라이브 시작하기` label로 구성됨을 확인했다. 기존 `fragment_creator_channel_live.xml`의 CTA 골격과 `bg_creator_channel_owner_fab`, `ic_new_create_live`, `creator_channel_live_start_button` 리소스를 재사용했다.
|
||||
- 2026-06-18: `CreatorChannelLiveFragmentLayoutTest`에 owner CTA source/layout 계약 테스트를 추가했다. production 구현 전 실행은 신규 assertion까지 도달하기 전에 기존 KSP unit-test cache 손상으로 `:app:kspDebugUnitTestKotlin FAILED`, `java.io.UTFDataFormatException`이 발생해 `app/build/kspCaches/debugUnitTest`, `app/build/generated/ksp/debugUnitTest` 생성물 캐시를 삭제 후 재검증했다.
|
||||
- 2026-06-18: `CreatorChannelLiveFragment`에 `Host.isCreatorChannelOwner()`, `onCreatorChannelOwnerChanged(isOwner)`, `bindOwnerCta()`를 추가해 본인 채널에서만 `layoutCreatorChannelLiveOwnerCta`를 표시하고 타인 채널 또는 본인 여부 로딩 전에는 숨기도록 했다.
|
||||
- 2026-06-18: `ViewCompat.setOnApplyWindowInsetsListener(binding.layoutCreatorChannelLiveOwnerCta)`로 `WindowInsetsCompat.Type.navigationBars()` bottom inset을 받아 CTA bottom margin에 `14dp + navigationBottomInset`을 적용하고, CTA 표시 시 `rvCreatorChannelLiveReplays` bottom padding을 `102dp + navigationBottomInset`으로 조정해 마지막 item이 CTA에 가려지지 않도록 했다. CTA 미표시 시 기존 32dp bottom padding으로 복원한다.
|
||||
- 2026-06-18: `./gradlew :app:mergeDebugResources` 실행 결과 `BUILD SUCCESSFUL`로 통과했다.
|
||||
- 2026-06-18: `./gradlew :app:compileDebugKotlin` 단독 재실행 결과 `BUILD SUCCESSFUL`로 통과했다. 병렬 Gradle 실행 중 한 차례 extension import 해석 실패가 발생했으나 동일 compile 명령 단독 재실행에서 통과했으며, 기존 deprecation/annotation 경고는 Phase 6 변경과 무관하다.
|
||||
|
||||
- [ ] **Task 6.2: 기존 라이브 시작 플로우 연결**
|
||||
- [x] **Task 6.2: 기존 라이브 시작 플로우 연결**
|
||||
- 확인:
|
||||
- `app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/CreatorChannelActivity.kt`
|
||||
- `app/src/main/java/kr/co/vividnext/sodalive/live/room/create/LiveRoomCreateActivity.kt`
|
||||
@@ -482,6 +489,20 @@
|
||||
- 라이브 생성 완료 후 기존 홈 refresh/라이브룸 진입 정책과 충돌하지 않도록 처리한다.
|
||||
- 검증:
|
||||
- 라이브 시작 진입 대상 Activity/Fragment와 전달 extra를 계획 문서 해당 Task의 `검증 기록`에 남긴다.
|
||||
- 검증 기록:
|
||||
- 2026-06-18: `CreatorChannelLiveFragment.Host`에 `onCreatorChannelLiveStartClicked()`를 추가하고 CTA 클릭 시 `layoutCreatorChannelLiveOwnerCta.isEnabled = false` 후 host callback을 호출하도록 연결했다. `onResume()`에서 CTA enabled 상태를 복원해 라이브 생성 화면에서 돌아온 뒤 다시 클릭 가능하다.
|
||||
- 2026-06-18: `CreatorChannelActivity.onCreatorChannelLiveStartClicked()`는 기존 `onOwnerFabLiveClicked()`를 재사용한다. 진입 대상은 `LiveRoomCreateActivity`이며, 기존 `liveRoomCreateLauncher.launch(Intent(this, LiveRoomCreateActivity::class.java))` 경로를 그대로 사용하므로 별도 extra는 추가하지 않는다.
|
||||
- 2026-06-18: 라이브 생성 완료 후 기존 정책과 동일하게 `RESULT_OK`에서 `homeActionDelegate?.refreshHome()`를 호출하고, `Constants.EXTRA_ROOM_ID`, `Constants.EXTRA_ROOM_CHANNEL_NAME` 결과에 따라 `CreatorChannelLiveCoordinator.enterLiveRoom(roomId)` 또는 `creator_channel_live_created_message` toast를 사용한다.
|
||||
- 2026-06-18: `CreatorChannelActivitySourceTest`에 live tab owner CTA가 header 본인 여부를 Fragment로 전달하고 기존 라이브 생성 플로우를 재사용하는 source 계약 테스트를 추가했다.
|
||||
- 2026-06-18: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.live.CreatorChannelLiveFragmentLayoutTest" --tests "kr.co.vividnext.sodalive.v2.creator.channel.CreatorChannelActivitySourceTest"` 재실행 결과 `BUILD SUCCESSFUL`로 통과했다.
|
||||
- 2026-06-18: `./gradlew :app:ktlintCheck` 실행 결과 `BUILD SUCCESSFUL`로 통과했다. 기존 `.editorconfig`의 `disabled_rules` deprecation 경고는 Phase 6 변경과 무관하다.
|
||||
|
||||
#### Phase 6 코드 리뷰/검증 기록
|
||||
- 2026-06-18: Phase 6 변경 범위를 코드 리뷰했다. `CreatorChannelActivity`의 `currentHeader?.isOwner == true` 기반 owner 상태 전달, `CreatorChannelLiveFragment`의 owner CTA visibility/inset/list bottom padding/click 중복 방지, 기존 `onOwnerFabLiveClicked()` 재사용 경로를 확인했으며 차단 이슈는 발견하지 못했다.
|
||||
- 2026-06-18: fresh verification으로 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.live.CreatorChannelLiveFragmentLayoutTest" --tests "kr.co.vividnext.sodalive.v2.creator.channel.CreatorChannelActivitySourceTest"`를 실행해 `BUILD SUCCESSFUL in 27s`로 통과했다. 최초 sandbox 실행은 `~/.gradle` wrapper lock 파일 권한 제한으로 실패해 권한 승인 후 재실행했다.
|
||||
- 2026-06-18: fresh verification으로 `./gradlew :app:mergeDebugResources`를 실행해 `BUILD SUCCESSFUL in 1s`로 통과했다. 최초 sandbox 실행은 `~/.gradle` wrapper lock 파일 권한 제한으로 실패해 권한 승인 후 재실행했다.
|
||||
- 2026-06-18: fresh verification으로 `./gradlew :app:compileDebugKotlin`을 실행해 `BUILD SUCCESSFUL in 1s`로 통과했다.
|
||||
- 2026-06-18: fresh verification으로 `./gradlew :app:ktlintCheck`를 실행해 `BUILD SUCCESSFUL in 11s`로 통과했다. Gradle deprecation 경고는 기존 빌드 설정 경고로 Phase 6 변경과 직접 관련 없다.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user