docs(home): AI 캐릭터 섹션 검증 기록을 추가한다
This commit is contained in:
@@ -289,6 +289,18 @@
|
|||||||
- `First`, `Point`, `Free` tag 표시 조건은 기존 UI model의 `tags`를 그대로 사용한다.
|
- `First`, `Point`, `Free` tag 표시 조건은 기존 UI model의 `tags`를 그대로 사용한다.
|
||||||
- 검증: `HomeMainFragmentLayoutTest`에 first audio 카드 치수, 목록 간격, tag visibility 회귀 테스트를 추가한다.
|
- 검증: `HomeMainFragmentLayoutTest`에 first audio 카드 치수, 목록 간격, tag visibility 회귀 테스트를 추가한다.
|
||||||
|
|
||||||
|
- [x] **Task 6.10: AI 캐릭터 섹션 Figma 정합 수정**
|
||||||
|
- 기준: Figma `24:5551`
|
||||||
|
- 확인: `app/src/main/res/layout/view_character_chat_thumbnail.xml`
|
||||||
|
- 수정: `app/src/main/res/layout/fragment_v2_main_home.xml`
|
||||||
|
- 수정: `app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/ui/HomeAiCharacterAdapter.kt`
|
||||||
|
- 수정: `app/src/test/java/kr/co/vividnext/sodalive/v2/main/home/HomeMainFragmentLayoutTest.kt`
|
||||||
|
- 구현 내용:
|
||||||
|
- `크리에이터와 이야기를 나눠요!` 목록 시작/끝 padding을 `14dp`로 적용한다.
|
||||||
|
- AI 캐릭터 item gap을 `4dp`로 적용한다.
|
||||||
|
- adapter에서 `view_character_chat_thumbnail.xml`의 root `185dp x wrap_content` 치수를 generic layout params로 덮어쓰지 않는다.
|
||||||
|
- 검증: `HomeMainFragmentLayoutTest`에 AI 캐릭터 목록 spacing과 adapter item dimension 회귀 테스트를 추가한다.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### Phase 7: FeedCommunityView 추천 페이지 확장
|
### Phase 7: FeedCommunityView 추천 페이지 확장
|
||||||
@@ -443,3 +455,5 @@
|
|||||||
- 2026-06-02: first audio 썸네일은 이미지뿐 아니라 `FIRST`/`Point`/`Free` overlay까지 같은 radius로 잘려야 한다는 사용자 확인에 따라 Coil transformation 방식이 아니라 썸네일 parent `FrameLayout` 전체에 Kotlin `clipToOutline = true`와 `ViewOutlineProvider.setRoundRect(..., 14dp)`를 적용했다. XML `android:clipToOutline`은 lint 경고를 피하기 위해 사용하지 않았다. `first audio adapter clips thumbnail container` 테스트를 추가했고, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`, `./gradlew :app:testDebugUnitTest`를 실행해 모두 BUILD SUCCESSFUL을 확인했다.
|
- 2026-06-02: first audio 썸네일은 이미지뿐 아니라 `FIRST`/`Point`/`Free` overlay까지 같은 radius로 잘려야 한다는 사용자 확인에 따라 Coil transformation 방식이 아니라 썸네일 parent `FrameLayout` 전체에 Kotlin `clipToOutline = true`와 `ViewOutlineProvider.setRoundRect(..., 14dp)`를 적용했다. XML `android:clipToOutline`은 lint 경고를 피하기 위해 사용하지 않았다. `first audio adapter clips thumbnail container` 테스트를 추가했고, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`, `./gradlew :app:testDebugUnitTest`를 실행해 모두 BUILD SUCCESSFUL을 확인했다.
|
||||||
- 2026-06-02: `AudioContentCardView`의 이미지 표시 영역도 first audio 전용 item과 동일하게 이미지와 overlay tag가 함께 roundRect clipping되도록 확인하고, `First`/`Point`/`Free` tag 속성을 `item_home_first_audio_content.xml`과 맞췄다. `HomeMainFragmentLayoutTest`에 `audio content card clips image area and overlay tags together`, `audio content card tag attributes match first audio item` 회귀 테스트를 추가했다. `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`, `./gradlew :app:testDebugUnitTest`를 실행했고 모두 BUILD SUCCESSFUL을 확인했다.
|
- 2026-06-02: `AudioContentCardView`의 이미지 표시 영역도 first audio 전용 item과 동일하게 이미지와 overlay tag가 함께 roundRect clipping되도록 확인하고, `First`/`Point`/`Free` tag 속성을 `item_home_first_audio_content.xml`과 맞췄다. `HomeMainFragmentLayoutTest`에 `audio content card clips image area and overlay tags together`, `audio content card tag attributes match first audio item` 회귀 테스트를 추가했다. `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`, `./gradlew :app:testDebugUnitTest`를 실행했고 모두 BUILD SUCCESSFUL을 확인했다.
|
||||||
- 2026-06-02: `AudioContentCardView`와 `item_home_first_audio_content.xml`의 badge별 제어를 위해 `Original`/`First`/`Point`/`Free` badge에 안정적인 id를 추가했다. `AudioContentCardView`의 runtime 생성 badge에도 동일 id를 부여하고, `First`와 `Free` badge 높이를 `24dp`로 유지하도록 맞췄다. `HomeMainFragmentLayoutTest`에서 badge id/높이 계약을 검증하도록 보강했으며 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`, `./gradlew :app:testDebugUnitTest`를 실행해 모두 BUILD SUCCESSFUL을 확인했다.
|
- 2026-06-02: `AudioContentCardView`와 `item_home_first_audio_content.xml`의 badge별 제어를 위해 `Original`/`First`/`Point`/`Free` badge에 안정적인 id를 추가했다. `AudioContentCardView`의 runtime 생성 badge에도 동일 id를 부여하고, `First`와 `Free` badge 높이를 `24dp`로 유지하도록 맞췄다. `HomeMainFragmentLayoutTest`에서 badge id/높이 계약을 검증하도록 보강했으며 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`, `./gradlew :app:testDebugUnitTest`를 실행해 모두 BUILD SUCCESSFUL을 확인했다.
|
||||||
|
- 2026-06-02: Figma `24:5551` 기준 `크리에이터와 이야기를 나눠요!` 섹션을 확인해 기존 목록 padding `20dp`, adapter item gap `12dp`, generic `RecyclerView.LayoutParams(WRAP_CONTENT, WRAP_CONTENT)` 적용이 `view_character_chat_thumbnail.xml`의 root `185dp x wrap_content` 계약을 보존하지 못함을 확인했다. `HomeMainFragmentLayoutTest`에 character thumbnail root 치수, AI 캐릭터 목록 spacing, adapter item dimension 회귀 테스트를 먼저 추가했고, 수정 전 targeted test에서 새 테스트 2건 실패로 RED를 확인했다.
|
||||||
|
- 2026-06-02: `rv_home_ai_characters` padding을 `14dp`로 맞추고, `HomeAiCharacterAdapter`에서 inflate된 `view_character_chat_thumbnail.xml` root layout params를 유지한 채 `marginEnd`만 `4dp`로 적용했다. 수정 후 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`를 실행했고 모두 BUILD SUCCESSFUL을 확인했다. `lsp_diagnostics`는 Kotlin/XML LSP 미구성으로 실행하지 못해 Gradle compile/test/ktlint로 보완했다.
|
||||||
|
|||||||
Reference in New Issue
Block a user