Files
sodalive-android/docs/20260318_라이브룸채팅왕관표시수정.md

5.3 KiB

20260318_라이브룸채팅왕관표시수정.md

개요

  • 라이브룸 일반 채팅(LiveRoomNormalChat)의 랭킹 왕관 표시를 요청사항에 맞게 수정한다.

작업 내용

  • 기존 랭킹 분기(-2, -1, 1, 2, 3) 및 레이아웃 구조 확인
  • item_live_room_chat.xml에서 왕관 parent/자식 크기 제어 구조 반영
  • LiveRoomChat.kt에서 1, 2, 3위 왕관 리소스/배경 처리 로직 반영
  • -2, -1 표시 및 크기 유지 확인
  • 검증 수행 (lsp_diagnostics, ./gradlew :app:testDebugUnitTest, ./gradlew :app:assembleDebug)
  • 사용자 피드백 반영: fl_crown 제거 후 fl_profile/iv_crown 직접 크기 조절로 재수정
  • 1, 2, 3위에서만 iv_crown=match_parent, fl_profile=39x38dp 적용 및 나머지 기본 크기 유지

검증 기록

  • 무엇을: 라이브룸 일반 채팅의 랭킹 왕관 표시에서 1, 2, 3위 리소스를 img_rank_1~3로 변경하고, 해당 경우에만 왕관 parent 크기를 39dp x 38dp로 적용
  • 왜: 상위 3위 왕관 표시 규격을 신규 디자인 리소스에 맞추고, -2, -1 표시 크기는 기존과 동일하게 유지하기 위함
  • 어떻게:
    • item_live_room_chat.xmliv_crown 전용 parent(fl_crown)를 추가하고 iv_crownmatch_parent로 변경
    • LiveRoomChat.kt에서 기본 왕관 parent 크기를 16.7dp로 초기화 후, 1, 2, 3위에서만 39dp x 38dp로 변경
    • 1, 2, 3위에서는 iv_bgnull 처리하고 img_rank_1, img_rank_2, img_rank_3를 사용
    • -2, -1 분기의 왕관/배경 리소스는 기존 로직을 유지
    • lsp_diagnostics 실행(현재 환경 .kt, .xml LSP 미구성), Gradle 테스트/빌드 검증 수행
  • 실행 명령:
    • lsp_diagnostics filePath=app/src/main/java/kr/co/vividnext/sodalive/live/room/chat/LiveRoomChat.kt
    • lsp_diagnostics filePath=app/src/main/res/layout/item_live_room_chat.xml
    • ./gradlew :app:testDebugUnitTest
    • ./gradlew :app:assembleDebug
  • 결과:
    • app/src/main/java/kr/co/vividnext/sodalive/live/room/chat/LiveRoomChat.kt 반영 완료
    • app/src/main/res/layout/item_live_room_chat.xml 반영 완료
    • ./gradlew :app:testDebugUnitTest 성공
    • ./gradlew :app:assembleDebug 성공
    • LSP 진단은 .kt, .xml 서버 미설정으로 미실행(Gradle 검증으로 대체)

추가 검증 (lint)

  • 무엇을: 변경 영향 확인을 위해 :app:lintDebug 추가 실행
  • 왜: XML/Kotlin 수정 후 정적 분석 경고/오류 여부를 확인하기 위함
  • 실행 명령:
    • ./gradlew :app:lintDebug
  • 결과:
    • 실패(기존 이슈): AndroidManifest.xmlcom.facebook.FacebookActivity MissingClass 포함 기존 lint 오류 21건, 경고 593건
    • 이번 변경 파일(LiveRoomChat.kt, item_live_room_chat.xml) 직접 오류는 로그상 확인되지 않음

추가 수정 (요청 반영: fl_profile/iv_crown 직접 조절)

  • 무엇을: fl_crown 방식 대신 fl_profileiv_crown의 크기를 직접 제어하도록 변경
  • 왜: 왕관 전용 container가 프로필 container보다 커져 표시가 깨질 수 있는 문제를 방지하기 위함
  • 어떻게:
    • item_live_room_chat.xml에서 fl_crown을 제거하고 iv_crownfl_profile 직계 자식으로 복원
    • LiveRoomChat.kt에서 LiveRoomNormalChat 바인딩 시 기본값을 fl_profile=33.3dp, iv_crown=16.7dp로 초기화
    • 1, 2, 3위일 때만 fl_profile=39x38dp, iv_crown=match_parent로 변경하고 img_rank_1~3 적용
    • -2, -1, 그 외 분기는 기본 크기를 유지
    • 뷰 재활용 영향 방지를 위해 LiveRoomDonationChat, LiveRoomRouletteDonationChat에서도 기본 크기 초기화 추가
  • 실행 명령:
    • lsp_diagnostics filePath=app/src/main/java/kr/co/vividnext/sodalive/live/room/chat/LiveRoomChat.kt
    • lsp_diagnostics filePath=app/src/main/res/layout/item_live_room_chat.xml
    • ./gradlew :app:testDebugUnitTest
    • ./gradlew :app:assembleDebug
  • 결과:
    • app/src/main/java/kr/co/vividnext/sodalive/live/room/chat/LiveRoomChat.kt 재반영 완료
    • app/src/main/res/layout/item_live_room_chat.xml 재반영 완료
    • LiveRoomDonationChat, LiveRoomRouletteDonationChat의 기본 크기 초기화 반영 완료

재검증 결과 (요청 반영 후)

  • 실행 명령:
    • lsp_diagnostics filePath=app/src/main/java/kr/co/vividnext/sodalive/live/room/chat/LiveRoomChat.kt
    • lsp_diagnostics filePath=app/src/main/res/layout/item_live_room_chat.xml
    • ./gradlew :app:testDebugUnitTest
    • ./gradlew :app:assembleDebug
  • 결과:
    • lsp_diagnostics는 현재 환경 .kt, .xml 서버 미설정으로 미실행
    • ./gradlew :app:testDebugUnitTest 성공
    • ./gradlew :app:assembleDebug 성공

최종 재검증

  • 실행 명령:
    • lsp_diagnostics filePath=app/src/main/java/kr/co/vividnext/sodalive/live/room/chat/LiveRoomChat.kt
    • lsp_diagnostics filePath=app/src/main/res/layout/item_live_room_chat.xml
    • ./gradlew :app:testDebugUnitTest
    • ./gradlew :app:assembleDebug
  • 결과:
    • lsp_diagnostics는 현재 환경 .kt, .xml 서버 미설정으로 미실행
    • ./gradlew :app:testDebugUnitTest 성공(UP-TO-DATE 포함)
    • ./gradlew :app:assembleDebug 성공(UP-TO-DATE 포함)