From a444dd8677263d1f4a0d8db3f4df2ea090bf0134 Mon Sep 17 00:00:00 2001 From: klaus Date: Sun, 21 Jun 2026 19:35:09 +0900 Subject: [PATCH] =?UTF-8?q?docs(creator):=20=EC=B1=84=EB=84=90=20=EC=BB=A4?= =?UTF-8?q?=EB=AE=A4=EB=8B=88=ED=8B=B0=20=ED=83=AD=20=EC=82=AC=EC=A0=84=20?= =?UTF-8?q?=ED=99=95=EC=9D=B8=EC=9D=84=20=EA=B8=B0=EB=A1=9D=ED=95=9C?= =?UTF-8?q?=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plan-task.md | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/docs/20260621_크리에이터_채널_커뮤니티_탭/plan-task.md b/docs/20260621_크리에이터_채널_커뮤니티_탭/plan-task.md index 812df2f1..8ce345bb 100644 --- a/docs/20260621_크리에이터_채널_커뮤니티_탭/plan-task.md +++ b/docs/20260621_크리에이터_채널_커뮤니티_탭/plan-task.md @@ -116,7 +116,7 @@ ### 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/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` - 기대 결과: 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/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` - 기대 결과: 공통 위젯 수정 여부와 전용 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/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` - 기대 결과: 기존 그리드 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/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` - 기대 결과: 기존 커뮤니티 작성 진입점과 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 포함이 필요하다. ---