docs(content): original tag 이미지 교체를 기록한다
This commit is contained in:
@@ -1,12 +1,13 @@
|
||||
# 시리즈 original tag 이미지 교체 Plan / Task
|
||||
|
||||
## Goal
|
||||
`CreatorChannelHomeSeriesCardView`에서 series original tag의 텍스트를 `@drawable/img_new_only` 이미지로 교체하고, 다른 series original tag 사용처를 조사한다.
|
||||
`CreatorChannelHomeSeriesCardView`와 공용 series original tag의 텍스트를 `@drawable/img_new_only` 이미지로 교체하고, 다른 series original tag 사용처를 조사한다.
|
||||
|
||||
## Scenarios
|
||||
- Happy path: `series.isOriginal == true`인 크리에이터 채널 홈 시리즈 카드에서 original tag container가 표시되고, icon 옆에 `img_new_only` 이미지가 표시된다.
|
||||
- Edge: `series.isOriginal == false`이면 기존 `CreatorChannelHomeSeriesCardView.bind()` 로직대로 original tag container가 `GONE` 처리된다.
|
||||
- Regression: 공용 `SeriesContentCardView`의 `view_series_original_tag.xml`은 이번 요청 범위가 아니므로 변경하지 않는다.
|
||||
- Follow-up happy path: 공용 `SeriesContentCardView`에서 `isOriginal == true`이면 `fl_series_original_tag`가 기존 위치에 표시되고, `iv_series_original_icon` 옆에 `img_new_only` 이미지가 표시된다.
|
||||
- Regression: 기존 creator channel 전용 original tag 레이아웃은 후속 요청 범위가 아니므로 리팩터링하지 않는다.
|
||||
|
||||
### Phase 1: 사용처 조사
|
||||
- [x] **Task 1.1: series original tag 참조 검색**
|
||||
@@ -24,6 +25,13 @@
|
||||
- 검증 기록:
|
||||
- 무엇/왜/어떻게: 기존 `TextView`를 동일 id의 `ImageView`로 교체하고 mdpi 이미지 크기인 `37dp x 12dp`로 `@drawable/img_new_only`를 참조했다.
|
||||
- 결과: 대상 XML에서 `android:text="Only"`가 제거되고 `android:src="@drawable/img_new_only"`가 추가됐다.
|
||||
- [x] **Task 2.2: Common series original tag text 교체**
|
||||
- 파일: `app/src/main/res/layout/view_series_original_tag.xml`
|
||||
- 변경: `tv_series_original_text` `TextView`를 동일 id의 `ImageView`로 교체하고 `@drawable/img_new_only`를 표시한다.
|
||||
- 검증 기준: `iv_series_original_icon` 속성은 그대로 유지되고, `tv_series_original_text`는 `ImageView`로 `android:contentDescription="@null"` 및 `android:src="@drawable/img_new_only"`를 가진다.
|
||||
- 검증 기록:
|
||||
- 무엇/왜/어떻게: 크리에이터 채널 original tag 이미지 패턴의 `18dp` 오프셋과 장식 이미지 접근성 처리를 공용 layout에 적용했다.
|
||||
- 결과: 공용 tag container `fl_series_original_tag`와 original icon은 유지되고 텍스트 영역만 이미지로 교체됐다.
|
||||
|
||||
### Phase 3: 검증
|
||||
- [x] **Task 3.1: 정적 검색 검증**
|
||||
@@ -42,3 +50,8 @@
|
||||
## Verification Log
|
||||
- `rg -n "android:text=\"Only\"|img_new_only|tv_series_original_text|layout_series_original_tag|include_series_original_tag|view_series_original_tag|SeriesContentCardView|setOriginalVisible|isOriginal" app/src/main/res app/src/main/java/kr/co/vividnext/sodalive/v2 app/src/main/java/kr/co/vividnext/sodalive/audio_content/series app/src/main/java/kr/co/vividnext/sodalive/home` 실행 결과, 크리에이터 채널 홈 시리즈 카드의 `img_new_only` 참조와 공용 `SeriesContentCardView` original tag 사용처를 확인했다.
|
||||
- `./gradlew :app:assembleDebug` 실행 결과, debug build가 성공했다.
|
||||
- 후속 요청 검증: `view_series_original_tag.xml`에서 `tv_series_original_text`가 동일 id의 `ImageView`로 교체됐고 `@drawable/img_new_only`, `android:contentDescription="@null"`를 참조함을 확인했다. 기존 creator channel 전용 layout은 변경하지 않았다.
|
||||
- 후속 요청 검색 검증: `rg -n "android:text=\"ORIGINAL\"|<TextView[\\s\\S]*tv_series_original_text|tv_series_original_text|img_new_only|fl_series_original_tag|iv_series_original_icon" app/src/main/res/layout/view_series_original_tag.xml` 실행 결과, 공용 tag container, original icon, 유지된 `tv_series_original_text` id, `img_new_only` 참조를 확인했고 `android:text="ORIGINAL"`은 검색되지 않았다.
|
||||
- 후속 공용 `view_series_original_tag.xml` 변경 후 `./gradlew :app:assembleDebug`를 실행한 결과, `BUILD SUCCESSFUL in 48s`로 debug build가 성공했다.
|
||||
- 후속 크기 수정 검증: `view_series_content_card.xml`의 `include_series_original_tag`에서 고정 `101dp`/`@dimen/spacing_24` 크기를 제거하고 `wrap_content`로 변경해 `view_series_original_tag.xml`의 루트 크기가 덮이지 않도록 했다. `rg -n "include_series_original_tag|view_series_original_tag|android:layout_width=\"101dp\"|android:layout_height=\"@dimen/spacing_24\"" app/src/main/res/layout/view_series_content_card.xml app/src/main/res/layout/view_series_original_tag.xml app/src/main/res/layout/item_content_original_series.xml` 실행 결과, 공용 include 참조와 `wrap_content` 적용을 확인했고 해당 고정 크기는 검색되지 않았다.
|
||||
- 후속 크기 수정 빌드 검증: `./gradlew :app:assembleDebug`를 실행한 결과, `BUILD SUCCESSFUL in 25s`로 debug build가 성공했다.
|
||||
|
||||
@@ -1,23 +1,25 @@
|
||||
# PRD: 시리즈 original tag 이미지 교체
|
||||
|
||||
## 1. Overview
|
||||
크리에이터 채널 홈의 시리즈 카드 original tag에서 텍스트 표시를 `img_new_only.png` 이미지 표시로 교체한다.
|
||||
크리에이터 채널 홈 및 공용 시리즈 카드 original tag에서 텍스트 표시를 `img_new_only.png` 이미지 표시로 교체한다.
|
||||
|
||||
## 2. Problem
|
||||
- 현재 `CreatorChannelHomeSeriesCardView` 카드 레이아웃은 original tag에서 `Only` 텍스트를 직접 표시한다.
|
||||
- 후속 요청으로 공용 `view_series_original_tag.xml`도 `ORIGINAL` 텍스트 대신 동일한 이미지 라벨을 사용해야 한다.
|
||||
- 제공된 이미지 리소스와 실제 표시 방식이 달라 UI 일관성이 떨어질 수 있다.
|
||||
|
||||
## 3. Goals
|
||||
- `item_creator_channel_home_series_content.xml`의 original tag 텍스트를 `@drawable/img_new_only` 이미지로 교체한다.
|
||||
- `view_series_original_tag.xml`의 공용 original tag 텍스트를 `@drawable/img_new_only` 이미지로 교체한다.
|
||||
- series original tag를 사용하는 다른 위치를 조사해 변경 여부를 명확히 보고한다.
|
||||
|
||||
## 4. Non-Goals
|
||||
- 공용 `SeriesContentCardView`의 original tag 디자인 변경은 이번 범위에서 제외한다.
|
||||
- 기존 creator channel 전용 original tag 레이아웃은 후속 범위에서 리팩터링하지 않는다.
|
||||
- `isOriginal` 바인딩 로직이나 API 모델은 변경하지 않는다.
|
||||
- 신규 UI 컴포넌트는 추가하지 않는다.
|
||||
|
||||
## 5. Target Users
|
||||
- 크리에이터 채널 홈에서 시리즈 카드를 보는 사용자.
|
||||
- 크리에이터 채널 홈 및 공용 시리즈 카드에서 original tag를 보는 사용자.
|
||||
|
||||
## 6. User Stories
|
||||
- 사용자는 original 시리즈 카드에서 텍스트 대신 제공된 이미지 태그를 본다.
|
||||
@@ -32,11 +34,19 @@
|
||||
- 기존 original icon은 유지한다.
|
||||
- `Only` 텍스트 위치에는 `@drawable/img_new_only` 이미지를 표시한다.
|
||||
|
||||
### Feature B: Common series original tag image
|
||||
|
||||
#### Requirements
|
||||
- 기존 `fl_series_original_tag` container와 `iv_series_original_icon` 속성은 유지한다.
|
||||
- 기존 `tv_series_original_text` id는 유지하되 `TextView` 대신 `ImageView`로 교체한다.
|
||||
- 교체된 이미지는 `@drawable/img_new_only`를 표시하고 `android:contentDescription="@null"`을 사용한다.
|
||||
|
||||
#### Edge Cases
|
||||
- `series.isOriginal == false`이면 기존처럼 tag container가 숨겨진다.
|
||||
|
||||
## 8. UX / UI Expectations
|
||||
- `img_new_only.png` 원본 크기인 mdpi `37dp x 12dp` 기준으로 표시한다.
|
||||
- 공용 original tag는 `isOriginal == true`일 때 기존처럼 좌상단에서 시각적으로 사용 가능해야 한다.
|
||||
- 이미지 자체가 장식/라벨 역할을 하므로 별도 접근성 문구는 추가하지 않는다.
|
||||
|
||||
## 9. Technical Constraints
|
||||
|
||||
Reference in New Issue
Block a user