From 8538f014aaf8a4d22c4fd091c142300114675c05 Mon Sep 17 00:00:00 2001 From: klaus Date: Sun, 12 Jul 2026 05:39:04 +0900 Subject: [PATCH] =?UTF-8?q?fix(content):=20=EB=8C=93=EA=B8=80=20=EC=84=B9?= =?UTF-8?q?=EC=85=98=20=EC=A0=9C=EB=AA=A9=EC=9D=84=20=EB=B3=80=EA=B2=BD?= =?UTF-8?q?=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/res/values/strings.xml | 2 +- .../20260623_메인_콘텐츠_추천_탭/plan-task.md | 31 ++++++++++++++----- docs/20260623_메인_콘텐츠_추천_탭/prd.md | 6 ++-- 3 files changed, 28 insertions(+), 11 deletions(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 90a3c5ff..175516ba 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -299,7 +299,7 @@ New&Hot 무료 오디오 포인트 오디오 - 최근 댓글이 많은 오디오 + 크리에이터의 댓글 많은 오디오 추천 오디오 라이브 방금 활동한 크리에이터 diff --git a/docs/20260623_메인_콘텐츠_추천_탭/plan-task.md b/docs/20260623_메인_콘텐츠_추천_탭/plan-task.md index 2368ff4e..dc0a7cd1 100644 --- a/docs/20260623_메인_콘텐츠_추천_탭/plan-task.md +++ b/docs/20260623_메인_콘텐츠_추천_탭/plan-task.md @@ -42,7 +42,7 @@ - Phase 4: 필수 참조 - 배너, `오직 보이스온에서만!`, `새로 올라온 오디오`, `무료 오디오`, `포인트 오디오`, `추천 오디오` 카드 크기/간격을 확인한다. - Phase 5: 필수 참조 - - `New&Hot` 리스트 묶음과 `최근 댓글이 많은 오디오` 댓글 카드 구조를 확인한다. + - `New&Hot` 리스트 묶음과 `크리에이터의 댓글 많은 오디오` 댓글 카드 구조를 확인한다. - Phase 6: 제한 참조 - routing, section visibility, loading/error는 기존 코드 패턴 중심으로 검증한다. - Phase 7: 필수 참조 @@ -86,7 +86,7 @@ - Create: `app/src/main/java/kr/co/vividnext/sodalive/v2/main/content/ui/ContentNewAndHotAdapter.kt` - `New&Hot` 3개 row 단위 가로 묶음 리스트를 처리한다. - Create: `app/src/main/java/kr/co/vividnext/sodalive/v2/main/content/ui/ContentCommentedAudioAdapter.kt` - - 최근 댓글이 많은 오디오 카드와 댓글 영역을 처리한다. + - 크리에이터의 댓글 많은 오디오 카드와 댓글 영역을 처리한다. - Create: `app/src/main/java/kr/co/vividnext/sodalive/v2/main/content/ui/ContentRecyclerItemLayoutParams.kt` - 가로 section item spacing과 grid spacing helper를 둔다. - Create: `app/src/main/res/layout/item_content_original_series.xml` @@ -140,7 +140,7 @@ - 배너는 `BannerView`/`BannerItem` 재사용으로 고정한다. - 일반 오디오 카드는 `AudioContentCardView`와 `AudioContentCardSize.Medium/Large` 재사용으로 고정한다. - `오직 보이스온에서만!`은 label 없는 cover만 필요하므로 기존 `SeriesContentCardView`를 직접 변경하지 않고 신규 `item_content_original_series.xml`로 처리한다. - - `New&Hot`, `최근 댓글이 많은 오디오`는 Figma 구조가 공통 카드와 달라 신규 item view로 처리한다. + - `New&Hot`, `크리에이터의 댓글 많은 오디오`는 Figma 구조가 공통 카드와 달라 신규 item view로 처리한다. - 검증: - PRD의 재사용 후보와 신규 item 범위가 일치하는지 문서상 체크한다. - 검증 기록: @@ -388,7 +388,7 @@ - 검증 기록: - 2026-06-23: `ContentNewAndHotAdapter`에서 `items.chunked(NEW_AND_HOT_GROUP_SIZE)`와 `private const val NEW_AND_HOT_GROUP_SIZE = 3` 정책을 구현했다. 마지막 group이 3개 미만이면 실제 item row만 inflate하도록 처리했다. -- [x] **Task 5.2: 최근 댓글이 많은 오디오 adapter 구현** +- [x] **Task 5.2: 크리에이터의 댓글 많은 오디오 adapter 구현** - 생성: - `app/src/main/res/layout/item_content_commented_audio.xml` - `app/src/main/java/kr/co/vividnext/sodalive/v2/main/content/ui/ContentCommentedAudioAdapter.kt` @@ -410,11 +410,11 @@ - `app/src/main/res/layout/fragment_v2_main_content.xml` - 작업: - `New&Hot`는 horizontal group RecyclerView로 바인딩한다. - - `최근 댓글이 많은 오디오`는 horizontal card RecyclerView로 바인딩한다. + - `크리에이터의 댓글 많은 오디오`는 horizontal card RecyclerView로 바인딩한다. - 각 section은 item list가 비면 전체를 숨긴다. - 검증: - Figma 순서상 `New&Hot`가 최신 오디오 뒤, 무료 오디오 앞에 배치되는지 확인한다. - - `최근 댓글이 많은 오디오`가 포인트 오디오 뒤, 추천 오디오 앞에 배치되는지 확인한다. + - `크리에이터의 댓글 많은 오디오`가 포인트 오디오 뒤, 추천 오디오 앞에 배치되는지 확인한다. - 검증 기록: - 2026-06-23: `fragment_v2_main_content.xml`의 Phase 3 section 순서를 유지하며 New&Hot는 최신 뒤/무료 앞, 최근 댓글은 포인트 뒤/추천 앞에 adapter를 연결했다. 제외 섹션 id/string은 추가하지 않았다. @@ -489,7 +489,7 @@ - 확인: - title-bar와 tab-bar가 스크롤 중 고정된다. - 스크롤 영역은 배너부터 시작한다. - - 섹션 순서는 배너 → 오직 보이스온에서만! → 새로 올라온 오디오 → New&Hot → 무료 오디오 → 포인트 오디오 → 최근 댓글이 많은 오디오 → 추천 오디오다. + - 섹션 순서는 배너 → 오직 보이스온에서만! → 새로 올라온 오디오 → New&Hot → 무료 오디오 → 포인트 오디오 → 크리에이터의 댓글 많은 오디오 → 추천 오디오다. - `추천 시리즈`, `키워드의 오디오`는 표시되지 않는다. - 각 section의 empty 상태에서 빈 title/list 공간이 남지 않는다. - `duration`은 어떤 오디오 카드에도 표시되지 않는다. @@ -555,6 +555,23 @@ - 2026-07-09: root 배경 보정 후 `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:installDebug`, `git diff --check` 결과 모두 성공했다. 실제 기기 `SM-G960N - Android 10`에서 `adb shell am start -W -n kr.co.vividnext.sodalive.debug/kr.co.vividnext.sodalive.splash.SplashActivity`가 `Status: ok`, `LaunchState: COLD`로 완료됐고, `dumpsys window`에서 `kr.co.vividnext.sodalive.v2.main.MainV2Activity` focus를 확인했다. - 2026-07-09: 추가 요청에 따라 댓글 많은 오디오 item이 여러 개 표시될 때 각 item width를 device width에서 좌우 margin 14dp씩 총 28dp를 뺀 값으로 설정하고, item 사이 간격은 기존 horizontal item decoration의 8dp를 유지했다. 댓글 작성자 profile image는 원형 outline clipping을 적용했고, 콘텐츠 cover image는 `radius_14` outline clipping을 유지했다. `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:installDebug`, `git diff --check` 결과 모두 성공했다. 실제 기기에서 `adb shell am start -W -n kr.co.vividnext.sodalive.debug/kr.co.vividnext.sodalive.splash.SplashActivity`가 `Status: ok`, `LaunchState: COLD`로 완료됐고, `dumpsys window`에서 `kr.co.vividnext.sodalive.v2.main.MainV2Activity` focus를 확인했다. +### 2026-07-12 후속 변경: 댓글 많은 오디오 섹션 타이틀 변경 + +- [x] **Task 9.2: 댓글 많은 오디오 섹션 타이틀 문구 변경** + - 수정: + - `app/src/main/res/values/strings.xml` + - `docs/20260623_메인_콘텐츠_추천_탭/prd.md` + - `docs/20260623_메인_콘텐츠_추천_탭/plan-task.md` + - 작업: + - 추천 탭 댓글 많은 오디오 섹션 타이틀을 `최근 댓글이 많은 오디오`에서 `크리에이터의 댓글 많은 오디오`로 변경한다. + - API, adapter, layout 구조는 변경하지 않는다. + - 검증: + - `rg -n "최근 댓글이 많은 오디오|크리에이터의 댓글 많은 오디오|content_recommendation_section_most_commented_audio" app/src/main/res/values/strings.xml docs/20260623_메인_콘텐츠_추천_탭/prd.md docs/20260623_메인_콘텐츠_추천_탭/plan-task.md` + - `./gradlew :app:mergeDebugResources` + - `git diff --check` + - 검증 기록: + - 2026-07-12: 섹션 표시 문자열 `content_recommendation_section_most_commented_audio`를 `크리에이터의 댓글 많은 오디오`로 변경하고, PRD와 plan-task의 현재 요구사항/섹션 순서 표현을 동일한 타이틀로 갱신했다. + ### 2026-07-09 후속 변경: 추천 오디오 2열 그리드 동적 폭 보정 - [x] **Task 10.1: 추천 오디오 grid item width 자동 계산 적용** diff --git a/docs/20260623_메인_콘텐츠_추천_탭/prd.md b/docs/20260623_메인_콘텐츠_추천_탭/prd.md index 1ff3de4e..7a753ca9 100644 --- a/docs/20260623_메인_콘텐츠_추천_탭/prd.md +++ b/docs/20260623_메인_콘텐츠_추천_탭/prd.md @@ -219,11 +219,11 @@ Figma `24:6813` 기준으로 포인트 오디오 가로 카드 목록을 표시 - 무료/오리지널/첫 콘텐츠/성인 태그도 응답 값에 따라 함께 표시한다. - item 터치 시 오디오 콘텐츠 상세로 이동한다. -### Phase 7: 최근 댓글이 많은 오디오 +### Phase 7: 크리에이터의 댓글 많은 오디오 Figma `24:6820`, item `24:6822` 기준으로 댓글이 많은 오디오를 가로 카드 묶음으로 표시한다. #### Requirements -- 섹션 타이틀은 `최근 댓글이 많은 오디오`이다. +- 섹션 타이틀은 `크리에이터의 댓글 많은 오디오`이다. - `mostCommentedAudios`를 가로 스크롤 가능한 카드 묶음으로 표시한다. - 각 카드에는 오디오 리스트 item, 최근 댓글 본문, 최근 댓글 작성자 프로필 이미지 영역을 함께 표시한다. - 댓글 영역에는 `latestComment`를 최대 2줄 말줄임으로 표시하고, 우측 chevron은 표시하지 않는다. @@ -285,7 +285,7 @@ Figma에는 존재하지만 이번 범위에서는 구현하지 않는다. ## 8. UX / UI Expectations - 전체 배경은 Figma처럼 black 계열을 유지한다. - title-bar와 tab-bar는 고정되고, 콘텐츠 영역만 세로 스크롤된다. -- 섹션은 Figma 순서대로 배치한다: 배너 → 오직 보이스온에서만! → 새로 올라온 오디오 → New&Hot → 무료 오디오 → 포인트 오디오 → 최근 댓글이 많은 오디오 → 추천 오디오. +- 섹션은 Figma 순서대로 배치한다: 배너 → 오직 보이스온에서만! → 새로 올라온 오디오 → New&Hot → 무료 오디오 → 포인트 오디오 → 크리에이터의 댓글 많은 오디오 → 추천 오디오. - 각 섹션은 데이터가 없으면 숨겨 스크롤 중 빈 영역이 생기지 않게 한다. - 가로 스크롤 섹션은 Figma 기준 좌측 inset과 item spacing을 구현 계획에서 수치화한다. - 카드 썸네일은 centerCrop과 radius 14dp를 기본으로 한다.