Commit Graph

962 Commits

Author SHA1 Message Date
1882139fac feat(chat-room): 7.1 로컬 우선 표시 및 오프라인 대체 처리 추가
- 진입 시 로컬 최근 20개 메시지 즉시 표시
- enterChatRoom 응답으로 최신 상태로 전체 갱신
- 네트워크 실패 시 로컬 UI 유지 및 토스트 노출
2025-08-13 23:46:45 +09:00
7fc72da905 feat(chat-room): 7.3 로컬 DB 동기화 및 메시지 상태/정리 로직 구현
- ChatMessageDao에 상태 업데이트/정리 보조 쿼리 추가
- ChatRepository에 로컬 저장, 상태 업데이트, 오래된 메시지 정리 API 추가
- Activity 전송/상태 변경 시 DB 반영 및 로딩 후 정리 트리거
2025-08-13 23:36:50 +09:00
9fa270da10 feat(chat-room): 7.2 점진적 메시지 로딩 구현 및 중복 방지 처리
- 상단 스크롤 시 loadMoreMessages로 이전 메시지 로드
- 커서(timestamp) 기반 페이징 및 hasMore/nextCursor 상태 갱신
- messageId 기반 중복 제거, prepend 시 스크롤 위치 보정
2025-08-13 23:30:41 +09:00
637595e8cd feat(chat-room): 7.1 초기 데이터 로딩 구현 및 ServerChatMessage 매퍼 추가
- enterChatRoom API 연동하여 캐릭터/메시지 초기 로딩
- ServerChatMessage -> ChatMessage 매퍼 추가(toDomain)
- ChatRoomActivity에서 어댑터에 초기 메시지 세팅 및 헤더 갱신
- hasMore/nextCursor 상태 갱신 및 오류 처리
2025-08-13 23:26:01 +09:00
ceae25ea06 feat(chat-room): 메시지 입력/전송/실패 처리(6.1~6.3) 구현
- 왜: 채팅방에서 메시지 입력/전송 및 오류 대응 UX 완성을 위해 6.x 과업을 구현했습니다.
- 무엇:
  - 6.1 입력창 UI
    - EditText placeholder 리소스(@string/chat_input_placeholder) 적용, 최대 200자 제한
    - imeOptions(actionSend|flagNoEnterAction)로 IME 전송 액션 지원
    - 전송 버튼 활성/비활성 상태 관리(TextWatcher), 접근성 라벨(@string/action_send)
    - 입력창 포커스/클릭 시 키보드 표시, 전송 후 키보드 숨김
  - 6.2 전송 플로우
    - onSendClicked()/sendMessage() 도입: 즉시 SENDING 상태로 사용자 메시지 추가
    - 타이핑 인디케이터 표시/숨김 제어(ChatMessageAdapter.show/hideTypingIndicator)
    - 성공 시뮬레이션 후 SENT로 상태 업데이트 및 AI 응답 메시지 추가
    - TODO: 실제 TalkApi POST 연동 지점 주석 추가
  - 6.3 전송 실패 처리
    - FAILED 상태 시 사용자 메시지에 재전송 버튼 노출(item_chat_user_message.xml: iv_retry)
    - 어댑터 콜백을 통한 onRetrySend(localId) 처리 → 재시도 시 SENDING → SENT(성공 시)로 전환
    - strings: action_retry 추가, 접근성 라벨 적용
2025-08-13 23:10:32 +09:00
0cf0d2e790 feat(chat-room-ui): 5.1~5.5 구현 - Activity 구조/헤더/안내/배경 및 스크롤
왜: 채팅방 UI tasks 5를 완료하여 기본 화면 구성을 완성하고 사용자 경험을 개선하기 위함

무엇: \n- 5.1 기본 Activity 구조 구현 (roomId 처리, setupView 골격)\n- 5.2 RecyclerView 설정 및 무한 스크롤/자동 스크롤/상단 prepend 보정 로직\n- 5.3 헤더 영역: 뒤로가기, 프로필(CoIL), 이름, 타입 배지(기존 배경 리소스)\n- 5.4 안내 메시지: SharedPreferences로 접기 상태 저장, 캐릭터 타입별 안내, strings 리소스 사용\n- 5.5 배경 프로필 이미지 로딩 및 딤 처리 적용(레이아웃 구성 활용)

추가: 관련 문서 docs/ (5.1/5.2/5.3/5.4/5.5, notice strings) 작성 및 정리
2025-08-13 21:37:42 +09:00
45b76da1e8 feat(chat-room-ui): ChatMessageAdapter 구현 2025-08-13 21:08:01 +09:00
9bb8dcd881 feat(chat-room-ui): 사용자 메시지, AI 메시지 아이템 레이아웃, 타이핑 인디케이터 아이템 레이아웃 및 애니메이션 추가
item_chat_user_message.xml
- 오른쪽 정렬된 메시지 버블 구현
- 버블 왼쪽에 시간 텍스트(tv_time) 배치
- bg_chat_user_message 배경 및 패딩 적용
- 텍스트 접근성과 가독성 향상을 위한 속성 설정

item_chat_ai_message.xml
- 왼쪽 정렬된 메시지, 프로필 이미지와 이름, 오른쪽 시간 표시 구조 구현
- 그룹화 대응을 위한 조건부 표시(View visibility) 구조 마련
- bg_chat_ai_message 배경과 가독성 개선 속성 적용

item_chat_typing_indicator.xml, typing_dots_animation.xml
- AI 메시지와 동일한 좌측 정렬 구조에 3개 점 애니메이션 영역 구현
- 600ms alpha 애니메이션 반복으로 로딩 상태 시각화
- 추후 ViewHolder에서 점별 startOffset 설정을 통해 순차 반짝임 완성 예정
2025-08-13 20:30:07 +09:00
760cbb8228 feat(chat-room-ui): implement main chat room layout (task 3.1) 2025-08-13 20:14:51 +09:00
4a214523c6 feat(chat): 채팅 문자열 리소스 추가 - task 2.3 완료 (chat_notice_clone, chat_notice_character, chat_input_placeholder) - requirements 6.1/6.2, 4.2 충족 - 파일: app/src/main/res/values/strings.xml 2025-08-13 19:58:11 +09:00
6345b1dbee feat(chat): 타이핑 인디케이터 애니메이션 추가\n\n- task 2.2 완료: typing_dots_animation.xml(alpha, 600ms, reverse, infinite) 생성\n- 사용자 메시지 전송 후 AI 응답 대기 시 점(•••) 순차 반짝임 효과 제공\n- 파일: app/src/main/res/anim/typing_dots_animation.xml\n\n왜: 사용자 메시지 전송 직후 로딩 상태를 시각적으로 표시하기 위함\n무엇: 세 점에 동일 애니메이션을 적용하고 startOffset(0/200/400ms)으로 시퀀싱하여 반짝임 구현\n관련: .kiro/specs/chat-room-ui/tasks.md 2.2, design.md 453~464 2025-08-13 19:56:59 +09:00
228acadf5a feat(chat-ui): 채팅 메시지 배경 drawable 추가 (Task 2.1)
- 사용자/AI/입력/안내 배경 리소스 생성
- 기존 라운드 리소스 재활용 및 불투명도 적용
- 요구사항 2,6 및 디자인 가이드 반영
- docs: Task 2.1 수행 내역 문서 추가 (docs/chat-room-ui-2.1-drawables.md)
2025-08-13 19:41:33 +09:00
6388895e6e feat(chat-room): ChatRepository 도입 및 TalkApi에 입장/메시지 조회 API 추가
- Repository 패턴 구현: 로컬 DB(Room) + 네트워크(TalkApi) 통합
- enterChatRoom, loadMoreMessages, clearAllMessagesOnLogout 제공
- TalkApi에 /enter, /messages 엔드포인트 추가
- Entity↔도메인 매퍼 추가
- Koin 모듈에 ChatRepository 바인딩
2025-08-13 17:30:04 +09:00
725c4335e1 feat(chat-talk-room): Room Database 설정 및 Entity 생성
refactor(chat-talk-room): 패키지 chat.room → chat.talk.room 마이그레이션 및 DI 모듈 분리

왜: 기능 영역 명확화(talk) 및 DI 책임 분리로 유지보수성과 확장성을 높이기 위함
무엇:
- 모델/응답/enum 파일들을 chat.room → chat.talk.room 으로 이동
- Room DB 패키지를 chat.room.db → chat.talk.room.db 로 이동
- AppDatabase 클래스명을 역할에 맞게 ChatMessageDatabase로 변경

문서:
- docs/chat-talk-room-package-migration-and-di-module.md 추가
- docs/chat-room-room-database.md 내용 클래스명/경로 갱신
2025-08-13 17:10:06 +09:00
64deadda0b feat(chat-room): 1.1 데이터 모델 생성 및 채팅 메시지 모델 서버-로컬 분리
왜: 서버 스키마와 클라이언트 전용 필드가 혼재되어 혼란을 야기하던 문제를 해결하고, 유지보수성과 확장성을 높이기 위함.

무엇:
- tasks 1.1 수행 (데이터 모델 클래스 생성)
  - ChatMessage 데이터 클래스 생성 (로컬/UI/도메인용)
  - MessageStatus enum 생성 (SENDING, SENT, FAILED)
  - MessageType enum 생성 (USER_MESSAGE, AI_MESSAGE, NOTICE, TYPING_INDICATOR)
  - CharacterType 기존 enum 재사용 (chat/character/detail/CharacterDetailResponse.kt)
  - ChatRoomEnterResponse, ChatMessagesResponse 데이터 클래스 생성
- 채팅 메시지 모델 서버-로컬 분리 및 응답 모델 정리
  - ServerChatMessage DTO 추가 (서버 응답 전용: messageId, message, profileImageUrl, mine, createdAt)
  - ChatMessageMappers 추가: ServerChatMessage.toLocal(isGrouped: Boolean = false)
  - ChatRoomEnterResponse, ChatMessagesResponse에서 messages 타입을 List<ServerChatMessage>로 정리
- 문서
  - docs/chat-room-data-models.md 갱신 (서버/로컬 분리 사항 반영)
  - docs/chat-room-message-model-separation.md 신설 (분리 배경/가이드)

추가 참고:
- 시간 포맷 유틸은 후속 태스크(8.1)에서 테스트와 함께 구현 예정
2025-08-13 05:23:12 +09:00
558f74d861 feat(chat): 캐릭터 상세에서 채팅방 생성 후 ChatRoomActivity로 네비게이션 추가
- ChatRoomActivity에 EXTRA_ROOM_ID 및 newIntent 추가
- CharacterDetailActivity에서 chatRoomId 수신 시 화면 이동 처리
- 이벤트 소비 유지로 중복 네비게이션 방지
2025-08-13 02:21:43 +09:00
4eedecd1ce feat(chat-character): 채팅 톡 탭
- 데이터가 없으면 "대화 중인 톡이 없습니다" 메시지 표시
2025-08-13 01:23:56 +09:00
08f9d398c4 feat(chat-character): 캐릭터 상세
- 원작의 UI 레벨을 세계관 하위로 이동
2025-08-13 01:17:27 +09:00
f102c84ea6 feat(chat-character): 캐릭터 탭 모든 액션
- 로그인과 본인인증이 되어 있어야 가능하도록 수정
2025-08-13 01:09:34 +09:00
0c3bca0f9e feat(chat-character): 캐릭터 상세 페이지 API 연동 및 UI 상태 처리
- CharacterApi에 캐릭터 상세 조회 엔드포인트 추가
- CharacterDetailRepository 생성 및 Koin DI 등록
- CharacterDetailViewModel에서 실제 API 호출/로딩/에러 상태 관리
- CharacterDetailActivity에서 loadMock 제거 후 load 호출, Koin 주입으로 전환
- 로딩 다이얼로그 및 에러 토스트 처리 로직 추가
2025-08-13 00:52:24 +09:00
ff1e134fe4 feat(character list): 캐릭터 탭
- 배너 리스트 추가
- 배너, 캐릭터 클릭시 캐릭터 상세 페이지로 이동
2025-08-13 00:05:39 +09:00
d8b48fe362 feat(character list): 캐릭터 이미지 배경색 제거 2025-08-12 23:39:22 +09:00
ac2482a645 feat(character detail): 캐릭터 상세 페이지 UI 추가 2025-08-12 22:15:52 +09:00
80c593bc11 fix: 채팅방 리스트 API URL 수정
- /api/chat/talk/rooms -> /api/chat/room/list
2025-08-11 14:55:31 +09:00
18b61ab74f fix: 채팅 탭 data class
- SerializedName 추가
2025-08-11 11:24:10 +09:00
ea22c7244c feat(ui): 캐릭터 탭
- loadingDialog, Toast 라이브 데이터 옵저버 연결
2025-08-05 02:07:46 +09:00
b1c9c3e124 feat(ui): 톡 탭
- api, viewmodel, repository 연결
- 채팅방 리스트 UI 추가
2025-08-05 02:01:19 +09:00
93fc837b7a feat(ui): 캐릭터 탭
- 섹션별로 데이터가 있으면 보여주고 없으면 UI를 제거하도록 로직 추가
2025-08-04 23:38:51 +09:00
f0eda41c7c feat(ui): viewmodel, repository, api 추가 2025-08-04 22:24:13 +09:00
47717002e8 feat(ui): banner 추가 2025-08-04 22:10:27 +09:00
7b7513561d refactor: item decoration 추가 2025-08-04 22:04:19 +09:00
33bdaa7dbd refactor: 캐릭터 탭 내부에서 사용하는 Adapter 코드를 ViewBinding 코드로 리팩토링 2025-08-04 21:02:05 +09:00
b919691689 feat(character): 캐릭터 탭 UI 및 기본 기능 구현 2025-08-04 20:27:33 +09:00
e90222e8db feat(ui): 채팅 탭 내 TabLayout 캐릭터, 톡 탭 추가 2025-08-01 19:25:14 +09:00
3cf57c1f91 feat(ui): 채팅 탭 추가 2025-08-01 14:47:51 +09:00
e25276658d feat: 마이페이지
- 내 채널 보기 추가
2025-07-30 14:52:59 +09:00
d088c6f6b3 # 고객센터 UI 개선 및 버전 업데이트 (v1.41.0)
## 변경사항
- 앱 버전을 1.40.0(179)에서 1.41.0(181)으로 업데이트
- 고객센터 화면에 전용 로고 이미지 추가 및 UI 개선
  - 플레이스홀더 이미지를 고객센터 전용 로고로 교체
  - 텍스트 마진 조정 (13.3dp → 16dp)
- 마이페이지 화면 UI 개선
  - 본인인증 버튼 텍스트 간소화 ("본인인증 완료" → "인증완료")
  - 레이아웃 구조 개선 (패딩/마진 조정)
  - RecyclerView 스크롤 경험 개선 (clipToPadding 속성 추가)
2025-07-28 17:33:03 +09:00
9361610647 feat: 마이페이지
- 상단에 최신 공지사항 추가
2025-07-25 22:18:22 +09:00
7ed5e921bd feat: 마이페이지
- 최근 들은 콘텐츠 추가
2025-07-25 21:36:34 +09:00
39be49b481 feat: 마이페이지
- 신규 UI 적용
2025-07-25 16:52:34 +09:00
3b7b5f98bd fix: 메인 라이브 - 최근 종료한 라이브
- 이미지 사이즈 72 -> 84
2025-07-21 20:07:46 +09:00
9be1b86c5d fix: 메인 홈 - 인기 크리에이터
- 팔로우/팔로잉 배경색 변경
2025-07-21 19:52:23 +09:00
cfe9d3ab11 fix: 메인 라이브 - 최근 종료한 라이브
- 비로그인 상태에서 터치시 로그인 페이지로 이동
2025-07-21 18:56:44 +09:00
accb413636 feat: 메인 홈 - 오디션
- 비로그인 상태에서 터치시 로그인 페이지로 이동
2025-07-21 18:51:01 +09:00
bdac7b7899 feat: 메인 홈 - 인기 크리에이터
- 팔로우/언팔로우 기능 추가
2025-07-21 18:48:09 +09:00
58bc42cc0f feat: 메인 라이브 - 최근 종료한 라이브
- 사용 하지 않는 데이터 제거
2025-07-21 18:24:53 +09:00
44d7ce65ae feat: 메인 라이브
- 신규 UI 적용
2025-07-21 18:00:31 +09:00
c55cc68f5c feat: 메인 라이브, 메인 홈
- 섹션 제목 크기 26 -> 24
- 오디션 배너 변경
- 추천 채널 아이템 bg 톤다운
2025-07-19 04:02:29 +09:00
d7cc874684 feat: 메인 라이브
- 최근 종료한 라이브, 라이브 다시 듣기, 라이브 예약 아이템 사이즈 조절
2025-07-19 02:17:47 +09:00
f1164bbd30 feat: 메인 라이브 - 지금 라이브 중
- bg => #263238로 변경
- 가로 => 168 -> 144
- 세로 => 238 -> 204
2025-07-19 01:26:21 +09:00