docs(chat): 신규 DM 아이콘 변경 기록을 남긴다

This commit is contained in:
2026-09-17 12:29:07 +09:00
parent 8749ae9ae7
commit 2e67e092a5
2 changed files with 43 additions and 2 deletions
@@ -498,6 +498,31 @@
**Expected:** 0 exit code. 팔로워 라벨 source contract, 라벨 typography/숫자 color contract, 기존 recipient flow와 DM request 회귀가 통과한다.
## Phase 6. 메인 대화 탭 신규 DM 아이콘 변경
**Phase 결과:** 크리에이터에게만 보이는 메인 대화 탭 우측 하단 버튼이 `ic_new_talk_add` 아이콘을 사용한다.
**선행조건:** 기존 `btn_new_dm` 노출 조건과 클릭 동작을 그대로 유지한다.
**Phase 완료 조건:** `P6-T1` 완료와 리소스 merge 검증 기록 누적.
### 구현 항목
#### Task 6.1 신규 DM 버튼 아이콘 리소스 교체
**Goal 실행 `P6-T1`:** `fragment_v2_main_chat.xml`의 `btn_new_dm` 아이콘 참조만 `ic_plus_no_bg`에서 `ic_new_talk_add`로 변경한다.
- **완료 증거:** XML 참조 확인, `:app:mergeDebugResources`, 관련 layout test, `git diff --check` 통과.
- **범위 밖:** 버튼 크기·배경·노출 조건·클릭 동작과 다른 기능 변경.
**Files:**
- Modify: `app/src/main/res/layout/fragment_v2_main_chat.xml`
- Modify: `docs/20260914_크리에이터의_리스너_DM_시작/prd.md`, `plan-task.md`
- [x] `btn_new_dm`의 `android:src`만 `@drawable/ic_new_talk_add`로 변경한다.
- [x] 리소스 merge와 관련 layout test를 실행하고 결과를 `Verification Log`에 기록한다.
## 실행 순서와 의존성
| 순서 | Goal | 선행조건 | 병행 가능 | 차단 시 다음 행동 |
@@ -512,9 +537,10 @@
| 8 | `P3-GATE` | `P3-T1` | 아니요 | 실패 소유 Task의 회귀 수정 goal 생성 |
| 9 | `P4-T1` | `P2-GATE` | 아니요 | Figma UI contract 재확인 |
| 10 | `P4-GATE` | `P4-T1` | 아니요 | 실패 소유 Task의 회귀 수정 goal 생성 |
| 11 | `P6-T1` | 기존 `btn_new_dm` 구현 | 아니요 | 신규 drawable 존재와 XML 참조 확인 |
```text
P1-T1 -> P1-GATE -> P2-T1 -> P2-T2 -> P2-T3 -> P2-GATE -> P3-T1 -> P3-GATE -> P4-T1 -> P4-GATE
P1-T1 -> P1-GATE -> P2-T1 -> P2-T2 -> P2-T3 -> P2-GATE -> P3-T1 -> P3-GATE -> P4-T1 -> P4-GATE -> P6-T1
```
## 변경 금지 항목
@@ -749,6 +775,21 @@ P1-T1 -> P1-GATE -> P2-T1 -> P2-T2 -> P2-T3 -> P2-GATE -> P3-T1 -> P3-GATE -> P4
- LSP diagnostics 도구는 제공되지 않아 Kotlin 컴파일과 ktlint로 대체했다.
- 남은 항목: 없음.
### Phase 6 아이콘 변경 검증 — 2026-09-17
- 상태: 완료
- 무엇을: 메인 대화 탭 우측 하단 `btn_new_dm` 아이콘 참조만 `@drawable/ic_new_talk_add`로 변경했는지 확인했다.
- 왜: 신규 PNG 리소스를 크리에이터 전용 `+` 버튼 아이콘으로 사용하고, 버튼의 다른 기능은 유지해야 하기 때문이다.
- 어떻게:
- `fragment_v2_main_chat.xml`의 `btn_new_dm` `android:src`를 `@drawable/ic_plus_no_bg`에서 `@drawable/ic_new_talk_add`로 변경했다.
- `./gradlew :app:mergeDebugResources --max-workers=1` 성공, `BUILD SUCCESSFUL`.
- `git diff --check` 출력 없음.
- `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.chat.ChatMainFragmentLayoutTest" --max-workers=1`은 `ChatMainFragmentLayoutTest.kt:71`의 기존 title bar source assertion에서 실패했다. 이번 변경 파일인 `fragment_v2_main_chat.xml`의 아이콘 참조와는 무관한 `llTitleBarActions.addView` source contract 실패다.
- 수동/제외 검증:
- 아이콘만 교체하는 리소스 참조 변경이므로 신규 local unit test는 작성하지 않았다.
- 사용자 지시에 따라 기기·에뮬레이터 조작, screenshot, visual QA는 실행하지 않았다.
- 남은 항목: 없음.
### Phase 3 Gate 검증 — 2026-09-14
- 상태: 완료
@@ -110,7 +110,7 @@ MainV2Activity
| ID | 상태 | 요구사항 | 수용 기준 | 계약/Goal 연결 |
|---|---|---|---|---|
| DM-001 | 확정 | 크리에이터는 메인 대화 탭에서 리스너에게 먼저 DM을 시작할 수 있다. | 크리에이터 계정에서 신규 수신자 선택 화면에 진입할 수 있다. | `P2-T3` |
| DM-002 | 확정 | 메인 대화 탭 우측 하단에 홈과 유사한 `+` 버튼을 추가한다. | 버튼은 크리에이터 역할 사용자에게만 보이고, 비크리에이터에게는 보이지 않는다. | `P1-T1`, `P2-T3` |
| DM-002 | 확정 | 메인 대화 탭 우측 하단에 `ic_new_talk_add` 아이콘을 사용하는 `+` 버튼을 추가한다. | 버튼은 크리에이터 역할 사용자에게만 보이고, 비크리에이터에게는 보이지 않는다. | `P1-T1`, `P2-T3`, `P6-T1` |
### 8.2 수신자 선택 화면