docs(creator): 채널 커뮤니티 탭 사전 확인을 기록한다
This commit is contained in:
@@ -116,7 +116,7 @@
|
|||||||
|
|
||||||
### Phase 1: 기존 구조 확인과 재사용 경계 고정
|
### Phase 1: 기존 구조 확인과 재사용 경계 고정
|
||||||
|
|
||||||
- [ ] **Task 1.1: Community 탭 placeholder 연결 지점 확인**
|
- [x] **Task 1.1: Community 탭 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`
|
||||||
@@ -126,8 +126,11 @@
|
|||||||
- 검증:
|
- 검증:
|
||||||
- `rg -n "CreatorChannelTab\\.Community|CreatorChannelPlaceholderFragment|createFragment" app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel app/src/test/java/kr/co/vividnext/sodalive/v2/creator/channel`
|
- `rg -n "CreatorChannelTab\\.Community|CreatorChannelPlaceholderFragment|createFragment" app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel app/src/test/java/kr/co/vividnext/sodalive/v2/creator/channel`
|
||||||
- 기대 결과: Community 탭 placeholder와 관련 테스트 갱신 지점이 확인된다.
|
- 기대 결과: Community 탭 placeholder와 관련 테스트 갱신 지점이 확인된다.
|
||||||
|
- 검증 기록:
|
||||||
|
- 2026-06-21: `CreatorChannelPagerAdapter.createFragment()`는 Home/Live/Audio/Series만 실제 Fragment를 반환하고 나머지는 `CreatorChannelPlaceholderFragment.newInstance(tab)`로 처리한다. 따라서 `CreatorChannelTab.Community`는 현재 placeholder이며, Phase 5에서 `CreatorChannelCommunityFragment.newInstance(creatorId)` 분기를 추가할 위치는 `CreatorChannelPagerAdapter.kt`의 `when (tab)`이다.
|
||||||
|
- 2026-06-21: `CreatorChannelPagerAdapterTest`는 Home/Live/Audio/Series 외 탭이 placeholder임을 검증하고, `CreatorChannelActivitySourceTest`는 현재 Community 분기가 없음을 확인한다. Phase 5에서 두 테스트의 기대값 갱신이 필요하다.
|
||||||
|
|
||||||
- [ ] **Task 1.2: v2 `FeedCommunityView` 재사용 가능성 확인**
|
- [x] **Task 1.2: v2 `FeedCommunityView` 재사용 가능성 확인**
|
||||||
- 확인:
|
- 확인:
|
||||||
- `app/src/main/java/kr/co/vividnext/sodalive/v2/widget/feed/FeedCommunityView.kt`
|
- `app/src/main/java/kr/co/vividnext/sodalive/v2/widget/feed/FeedCommunityView.kt`
|
||||||
- `app/src/main/res/layout/view_feed_community.xml`
|
- `app/src/main/res/layout/view_feed_community.xml`
|
||||||
@@ -140,8 +143,11 @@
|
|||||||
- 검증:
|
- 검증:
|
||||||
- `rg -n "FeedCommunityView|FeedItem\\.Community|existOrdered|ll_feed_community_paid_overlay|tv_feed_community_comment_count" app/src/main/java app/src/main/res/layout/view_feed_community.xml`
|
- `rg -n "FeedCommunityView|FeedItem\\.Community|existOrdered|ll_feed_community_paid_overlay|tv_feed_community_comment_count" app/src/main/java app/src/main/res/layout/view_feed_community.xml`
|
||||||
- 기대 결과: 공통 위젯 수정 여부와 전용 layout 필요성이 기록된다.
|
- 기대 결과: 공통 위젯 수정 여부와 전용 layout 필요성이 기록된다.
|
||||||
|
- 검증 기록:
|
||||||
|
- 2026-06-21: `FeedItem.Community`에는 `creatorImageUrl`, `imageUrl`, `audioUrl`, `price`, `existOrdered`, `commentCount`, `likeCount`가 있어 기본 표시 데이터와 유료 미구매 판단(`price > 0 && !existOrdered`)은 담을 수 있다. `FeedCommunityView`와 `view_feed_community.xml`에는 `ll_feed_community_paid_overlay`, `tv_feed_community_comment_count`가 존재해 잠금 overlay는 재사용 후보로 확인했다.
|
||||||
|
- 2026-06-21: 기존 `FeedCommunityView`는 댓글 수를 항상 표시하고, owner 우측 더보기/상단 가격/중앙 play-pause 버튼 상태를 제공하지 않으며, 홈 섹션과 홈 추천에서도 재사용된다. 기존 홈/추천 피드 영향 없이 댓글 불가 숨김, owner action, 중앙 재생 버튼을 넣으려면 커뮤니티 탭 전용 item layout/adapter로 구현하는 것으로 경계를 고정한다.
|
||||||
|
|
||||||
- [ ] **Task 1.3: 기존 커뮤니티 그리드/더보기/재생 정책 확인**
|
- [x] **Task 1.3: 기존 커뮤니티 그리드/더보기/재생 정책 확인**
|
||||||
- 확인:
|
- 확인:
|
||||||
- `app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/all/CreatorCommunityAllGridAdapter.kt`
|
- `app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/all/CreatorCommunityAllGridAdapter.kt`
|
||||||
- `app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/all/CreatorCommunityPostMenuBottomSheetDialog.kt`
|
- `app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community/all/CreatorCommunityPostMenuBottomSheetDialog.kt`
|
||||||
@@ -154,8 +160,12 @@
|
|||||||
- 검증:
|
- 검증:
|
||||||
- `rg -n "CONTENT_PREVIEW_MAX_LENGTH|CreatorCommunityPostMenuBottomSheetDialog|CreatorCommunityMediaPlayerManager|CreatorCommunityContentItem|toggleContent" app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community`
|
- `rg -n "CONTENT_PREVIEW_MAX_LENGTH|CreatorCommunityPostMenuBottomSheetDialog|CreatorCommunityMediaPlayerManager|CreatorCommunityContentItem|toggleContent" app/src/main/java/kr/co/vividnext/sodalive/explorer/profile/creator_community`
|
||||||
- 기대 결과: 기존 그리드 preview, 더보기 메뉴, 재생 manager 사용 방식이 확인된다.
|
- 기대 결과: 기존 그리드 preview, 더보기 메뉴, 재생 manager 사용 방식이 확인된다.
|
||||||
|
- 검증 기록:
|
||||||
|
- 2026-06-21: `CreatorCommunityAllGridAdapter.CONTENT_PREVIEW_MAX_LENGTH = 24`이며 text-only grid preview는 줄바꿈을 공백으로 치환하고 trim 후 24자까지만 사용한다. 신규 grid preview 정책은 이 구현을 따른다.
|
||||||
|
- 2026-06-21: `CreatorCommunityPostMenuBottomSheetDialog`는 creator 여부에 따라 신고 또는 고정/수정/삭제 메뉴를 표시하고, 고정 상태에 따라 pin/unpin 문구와 icon을 전환한다. 본인 채널 우측 더보기는 이 dialog 정책을 재사용한다.
|
||||||
|
- 2026-06-21: `CreatorCommunityMediaPlayerManager`는 `CreatorCommunityContentItem(contentId, url)`을 받아 `toggleContent()`로 재생/일시정지를 전환하고 `isPlayingContent(contentId)`와 `stopContent()`를 제공한다. 커뮤니티 탭 오디오 재생도 이 manager를 재사용한다.
|
||||||
|
|
||||||
- [ ] **Task 1.4: Owner CTA 진입점과 리소스 확인**
|
- [x] **Task 1.4: Owner 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`
|
||||||
@@ -169,6 +179,9 @@
|
|||||||
- 검증:
|
- 검증:
|
||||||
- `rg -n "onOwnerFabCommunityClicked|CreatorCommunityWriteActivity|ic_new_upload_community_post|creator_channel_owner_fab_community" app/src/main/java app/src/main/res`
|
- `rg -n "onOwnerFabCommunityClicked|CreatorCommunityWriteActivity|ic_new_upload_community_post|creator_channel_owner_fab_community" app/src/main/java app/src/main/res`
|
||||||
- 기대 결과: 기존 커뮤니티 작성 진입점과 icon/string 리소스가 확인된다.
|
- 기대 결과: 기존 커뮤니티 작성 진입점과 icon/string 리소스가 확인된다.
|
||||||
|
- 검증 기록:
|
||||||
|
- 2026-06-21: `CreatorChannelActivity.onOwnerFabCommunityClicked()`는 owner FAB를 닫고 `communityWriteLauncher.launch(Intent(this, CreatorCommunityWriteActivity::class.java))`로 기존 작성 화면을 연다. Community 탭 하단 owner CTA는 같은 method를 호출하도록 연결한다.
|
||||||
|
- 2026-06-21: `activity_creator_channel.xml`에는 `owner_fab_community_button`이 `@drawable/ic_new_upload_community_post`와 `@string/creator_channel_owner_fab_community`를 사용하고, `strings.xml`/`values-en`/`values-ja`에 해당 문구가 이미 존재한다. `currentOwnerCtaTab()`은 현재 Live/Audio만 반환하므로 Phase 5에서 Community 포함이 필요하다.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user