fix(live-room): 채팅 얼림 토글 UI와 안내 문구를 정렬한다

This commit is contained in:
2026-03-20 14:27:24 +09:00
parent a4ba3088b0
commit 3a14bad2a4
6 changed files with 92 additions and 60 deletions

View File

@@ -0,0 +1,38 @@
# 20260320 채팅창 얼림 on/off 수정 계획
## 구현 체크리스트
- [x] 얼림 버튼 위치를 스피커 음소거 버튼 위로 이동하고 하단 마진을 13.3으로 적용한다. (QA: 레이아웃 속성 확인)
- [x] 얼림 OFF 상태 배경을 동일 위치의 기존 버튼 스타일과 동일하게 적용한다. (QA: 배경 리소스 확인)
- [x] 얼림 ON 상태 배경을 라운드 코너 10, `#3bb9f1` 50% 투명도로 적용하고 아이콘 `ic_ice`를 노출한다. (QA: 배경/아이콘 리소스 확인)
- [x] 얼림 버튼은 방장(크리에이터)에게만 보이도록 유지한다. (QA: `isHost` 분기 확인)
- [x] 얼림 ON/OFF 시스템 문구를 방장/일반 유저 조건에 맞게 변경한다. (QA: 메시지 생성/수신 분기 확인)
- [x] 수정 파일 진단, 테스트, 빌드를 실행하고 결과를 기록한다. (QA: 명령 실행 결과 확인)
## 검증 기록
- 2026-03-20
- 무엇: 얼림 버튼을 상단 텍스트 토글에서 우측 옵션 버튼 영역으로 이동하고, ON/OFF 배경 및 아이콘을 요구 조건으로 변경했다.
- 왜: 스피커 음소거 버튼 위 배치, `13.3dp` 하단 마진, OFF 동일 스타일/ON 50% 투명 `#3BB9F1` 스타일 요구사항을 충족하기 위해서다.
- 어떻게: `activity_live_room.xml`에서 `tv_chat_freeze_switch``ll_option_buttons` 최상단 `FrameLayout`로 재배치하고 `ic_ice` 아이콘을 적용했으며, `LiveRoomActivity.kt`에서 토글 UI 배경 리소스 분기를 `bg_round_corner_10_99525252`/`bg_round_corner_10_803bb9f1`로 변경했다.
- 2026-03-20
- 무엇: 얼림 ON/OFF 시스템 문구를 방장/리스너 조건으로 분기했다.
- 왜: 방장은 "채팅창을 얼렸습니다." 문구, 리스너는 "채팅창이 얼었습니다." 문구를 요구받았고 OFF 문구는 동일하게 맞춰야 했기 때문이다.
- 어떻게: `LiveRoomActivity.kt``buildChatFreezeStatusMessage`를 호스트 여부 기반으로 재작성하고, 토글 송신/수신 및 입장 시 초기 얼림 공지에서 각각 호스트/리스너 문구를 사용하도록 반영했다.
- 2026-03-20
- 무엇: 수정분 정합성 검증을 수행했다.
- 왜: 컴파일/테스트 성공 여부와 런타임 반영 가능성을 확인하기 위해서다.
- 어떻게:
- LSP 진단: `.kt`/`.xml`에 대한 로컬 LSP 서버 미구성으로 `lsp_diagnostics` 실행 불가 확인.
- 실행 명령: `./gradlew :app:testDebugUnitTest :app:assembleDebug`
- 결과: `BUILD SUCCESSFUL` (테스트 및 디버그 빌드 성공, 기존 경고만 출력)
- 2026-03-20
- 무엇: 요구사항 기반 수동 QA(소스 기준)를 수행했다.
- 왜: 얼림 버튼 위치/마진/배경/아이콘과 방장·리스너 문구가 요구 문자열과 정확히 일치하는지 최종 확인하기 위해서다.
- 어떻게:
- 실행 명령: `python3` 스크립트로 `activity_live_room.xml`의 뷰 순서·속성(`tv_chat_freeze_switch``fl_speaker_mute` 위, `13.3dp`, OFF 배경, `ic_ice`)과 `LiveRoomActivity.kt` 문구를 자동 검증
- 결과: `MANUAL QA PASS: Layout placement/style and freeze notice phrases verified from source.`
- 2026-03-20
- 무엇: 최종 빌드 재검증을 수행했다.
- 왜: 최종 응답 직전 변경 상태에서 디버그 조립 성공을 다시 확인하기 위해서다.
- 어떻게:
- 실행 명령: `./gradlew :app:assembleDebug`
- 결과: `BUILD SUCCESSFUL` (기존 경고만 출력)