From d9cb12e8826b0c3fb2ef4d8c70206223c0d12065 Mon Sep 17 00:00:00 2001 From: klaus Date: Thu, 28 Aug 2025 00:46:52 +0900 Subject: [PATCH] =?UTF-8?q?fix(chat):=20=EC=B1=84=ED=8C=85=EB=B0=A9=20?= =?UTF-8?q?=EC=9E=85=EC=9E=A5=20=EC=8B=9C=20=EC=84=9C=EB=B2=84=20=EB=A9=A4?= =?UTF-8?q?=EB=B2=84=20=EC=A0=95=EB=B3=B4=EB=A1=9C=20=EC=BA=94=20=EB=B0=B0?= =?UTF-8?q?=EC=A7=80=20=EB=8F=99=EA=B8=B0=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ChatRoomActivity에서 getMemberInfo 호출 추가 - 응답 성공 시 SharedPreferenceManager.can/point 갱신 및 헤더 배지 즉시 반영 - 네트워크 실패 시 UI 흐름 방해 없이 조용히 무시 처리 --- .../chat/talk/room/ChatRoomActivity.kt | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/chat/talk/room/ChatRoomActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/chat/talk/room/ChatRoomActivity.kt index 143c3cdb..b9729be4 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/chat/talk/room/ChatRoomActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/chat/talk/room/ChatRoomActivity.kt @@ -16,6 +16,7 @@ import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.SimpleItemAnimator import coil.load import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers +import io.reactivex.rxjava3.schedulers.Schedulers import kr.co.vividnext.sodalive.R import kr.co.vividnext.sodalive.base.BaseActivity import kr.co.vividnext.sodalive.base.SodaDialog @@ -25,6 +26,7 @@ import kr.co.vividnext.sodalive.common.SharedPreferenceManager import kr.co.vividnext.sodalive.databinding.ActivityChatRoomBinding import kr.co.vividnext.sodalive.extensions.dpToPx import kr.co.vividnext.sodalive.extensions.moneyFormat +import kr.co.vividnext.sodalive.user.UserRepository import org.koin.android.ext.android.inject import java.util.Locale @@ -38,6 +40,7 @@ class ChatRoomActivity : BaseActivity( // Repository 주입 (7.1 초기 데이터 로딩) private val chatRepository: ChatRepository by inject() + private val userRepository: UserRepository by inject() // 5.2 무한 스크롤/자동 스크롤 상태 private val items: MutableList = mutableListOf() @@ -76,6 +79,8 @@ class ChatRoomActivity : BaseActivity( loadInitialMessages() // 배경 표시 설정 적용 applyBackgroundVisibility() + // 서버 최신 보유 캔 정보 조회 및 헤더 반영 + fetchAndBindMemberInfo() } @SuppressLint("SetTextI18n") @@ -869,6 +874,22 @@ class ChatRoomActivity : BaseActivity( return if (id > 0) id else null } + private fun fetchAndBindMemberInfo() { + val token = "Bearer ${SharedPreferenceManager.token}" + val disposable = userRepository.getMemberInfo(token) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe({ resp -> + val data = if (resp.success) resp.data else null + if (data != null) { + SharedPreferenceManager.can = data.can + SharedPreferenceManager.point = data.point + binding.tvCanBadge.text = data.can.moneyFormat() + } + }, { /* ignore error to avoid blocking chat UI */ }) + compositeDisposable.add(disposable) + } + private fun clearLocalPrefsForRoom(roomId: Long) { val keys = listOf( "chat_bg_visible_room_$roomId",