Skip to content

fix: 채팅방 UI 개선 및 토큰 사용량 알림 토스트 전환 - #60

Merged
soyeonLee126 merged 30 commits into
developfrom
fix/chatting-room-ui
Aug 21, 2026
Merged

soyeonLee126 merged 30 commits into
developfrom
fix/chatting-room-ui

Conversation

@seunghee17

@seunghee17 seunghee17 commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator

작업 개요

채팅방 화면 UI를 손그림 시안에 맞춰 다듬고, 애니메이션·키보드 스크롤 보정을 개선했습니다. 또한 토큰 사용량(10% 미만 남음/전부 소진) 알림 정책을 확정 사양대로 구현하고, 소진 시 입력창을 잠그고, 메시지 전송 UX(즉시 입력칸 비우기)를 개선했습니다.

작업 유형

  • feat: 새 기능
  • fix: 버그 수정
  • refactor: 리팩토링 (동작 변경 없음)
  • build: 빌드/의존성 설정
  • chore: 기타 (문서, 설정 등)
  • test: 테스트 추가/수정

변경 사항

  • GamssInputBar, ConversationCard(채팅목록 카드) 테두리를 bg_textfield_default 손그림 시안으로 교체 (9-slice로 늘어나도 선 굵기 유지, 여러 줄 입력 시 텍스트-테두리 여백 8dp 보장)
  • 채팅방 진입 트랜지션 및 메시지 전송 애니메이션을 유려하게 개선
  • 토큰 사용량 10% 미만/전부 소진 알림을 TokenUsageRefreshNotifier로 전역 1회 통합, 토스트로 안내
    • 10% 미만 남음 / 전부 소진 모두 하루 1회만 토스트 — 소진시킨 그 전송 시점에 한 번만 뜨고, 이후 다른 채팅방에 들어가거나 재진입해도 다시 뜨지 않음
    • 전부 소진 시 MessageInputBar는 전송 버튼뿐 아니라 입력창 자체를 잠그고, placeholder를 "토큰이 모두 소모되어 메시지를 전송할 수 없습니다"로 교체
    • isExhausted 상태 자체는 알림 여부와 무관하게 채팅방 진입 때마다 최신화되어, 입력창 잠금은 몇 번을 재진입해도 항상 정확하게 반영됨
    • ChatRoomState.canSend에도 isTokenExhausted를 반영해, UI(버튼 비활성화)를 우회하는 경로로 onSend()가 불려도 서버에 요청이 나가지 않도록 방어
  • 메시지 전송 UX 개선: 전송 버튼을 누르면 서버 응답을 기다리지 않고 입력칸을 즉시 비움. 전송이 실패하거나 위험 신호로 차단되면 입력칸에 원래 내용을 복구(그 사이 새로 타이핑했다면 덮어쓰지 않음)
  • 채팅방 진입 시 IME(키보드) 인셋 변화에 따른 리스트 스크롤 보정 로직 수정 — 보고 있던 메시지가 키보드에 가려지지 않도록 함
  • 빈 화면 탭 시 키보드 내려가는 동작 추가
  • TopNavigation 메뉴 아이콘을 설정 아이콘으로 교체
  • 대화 목록 헤더 컬러값 등 세부 디자인 수정

관련 이슈

  • Closes #

관련 작업 (Notion)

  • (링크 추후 추가)

스크린샷 / 동작 화면

  • (추후 추가 예정)

체크리스트

  • base 브랜치가 develop으로 설정되어 있다
  • 로컬 빌드 및 실행을 확인했다
  • 커밋 메시지가 컨벤션(feat:, fix: 등)을 따른다
  • 불필요한 로그/주석/디버그 코드를 제거했다
  • 리뷰어가 이해할 수 있도록 설명을 작성했다

리뷰 요청 사항

아래는 이번에 정책이 새로 확정/변경된 지점이라 특히 봐주시면 좋겠습니다.

  • 토큰 소진 알림 1회 정책: 메시지를 보내 토큰을 전부 소모한 그 순간에만 토스트가 뜨고, 이후 같은 방 재진입·다른 채팅방 진입 시에는 토스트 없이 입력창만 잠긴 상태(placeholder 안내)로 보이는지 확인 부탁드립니다.
  • 토큰 소진 알림 1회 정책은 같은 프로세스 안에서 여러 방을 오가는 상황을 기준으로 구현했습니다. 프로세스 완전 종료 후 토큰 소모 상태에서 채팅방에 진입시 1회 토큰 소진 알림 토스트 메시지가 발행됩니다. UX상 합당한 구조인지 의견 부탁드립니다.
  • 입력창 즉시 비우기 + 실패 시 복구: 전송 버튼을 누르면 응답 전에 입력칸이 바로 비워지는지, 네트워크 오류 등으로 전송이 실패하면 입력칸에 원래 문구가 복구되는지 확인 부탁드립니다. (전송 중 다른 문구로 다시 타이핑한 경우, 복구가 그 문구를 덮어쓰지 않는 것도 함께 봐주시면 좋겠습니다.)
  • 답장(reply quote) 미리보기와의 타이밍: 위 두 변경과 달리 답장 미리보기 카드는 여전히 서버 응답 이후에만 사라집니다(입력칸만 먼저 비워짐). 이번 PR 범위에서는 의도적으로 그대로 뒀는데, UX상 거슬리는지 확인해 주시면 다음 작업에 반영하겠습니다.

@seunghee17
seunghee17 marked this pull request as ready for review August 20, 2026 12:50
@seunghee17
seunghee17 marked this pull request as draft August 20, 2026 14:24
@seunghee17
seunghee17 marked this pull request as ready for review August 20, 2026 14:40
# Conflicts:
#	feature/chat/src/main/java/com/gamss/android/feature/chat/ChatRoomScreen.kt
#	feature/chat/src/main/java/com/gamss/android/feature/chat/ChatRoomViewModel.kt
#	feature/chat/src/main/res/values/strings.xml
#	feature/chat/src/test/java/com/gamss/android/feature/chat/ChatRoomTestFakes.kt
@soyeonLee126
soyeonLee126 merged commit 4740af6 into develop Aug 21, 2026
6 checks passed
@soyeonLee126
soyeonLee126 deleted the fix/chatting-room-ui branch September 1, 2026 07:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants