Files
sodalive-android/docs/20260320_채팅창얼림온오프수정.md

3.4 KiB

20260320 채팅창 얼림 on/off 수정 계획

구현 체크리스트

  • 얼림 버튼 위치를 스피커 음소거 버튼 위로 이동하고 하단 마진을 13.3으로 적용한다. (QA: 레이아웃 속성 확인)
  • 얼림 OFF 상태 배경을 동일 위치의 기존 버튼 스타일과 동일하게 적용한다. (QA: 배경 리소스 확인)
  • 얼림 ON 상태 배경을 라운드 코너 10, #3bb9f1 50% 투명도로 적용하고 아이콘 ic_ice를 노출한다. (QA: 배경/아이콘 리소스 확인)
  • 얼림 버튼은 방장(크리에이터)에게만 보이도록 유지한다. (QA: isHost 분기 확인)
  • 얼림 ON/OFF 시스템 문구를 방장/일반 유저 조건에 맞게 변경한다. (QA: 메시지 생성/수신 분기 확인)
  • 수정 파일 진단, 테스트, 빌드를 실행하고 결과를 기록한다. (QA: 명령 실행 결과 확인)

검증 기록

  • 2026-03-20
    • 무엇: 얼림 버튼을 상단 텍스트 토글에서 우측 옵션 버튼 영역으로 이동하고, ON/OFF 배경 및 아이콘을 요구 조건으로 변경했다.
    • 왜: 스피커 음소거 버튼 위 배치, 13.3dp 하단 마진, OFF 동일 스타일/ON 50% 투명 #3BB9F1 스타일 요구사항을 충족하기 위해서다.
    • 어떻게: activity_live_room.xml에서 tv_chat_freeze_switchll_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.ktbuildChatFreezeStatusMessage를 호스트 여부 기반으로 재작성하고, 토글 송신/수신 및 입장 시 초기 얼림 공지에서 각각 호스트/리스너 문구를 사용하도록 반영했다.
  • 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_switchfl_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 (기존 경고만 출력)