diff --git a/app/src/main/java/kr/co/vividnext/sodalive/chat/talk/room/ChatMessageAdapter.kt b/app/src/main/java/kr/co/vividnext/sodalive/chat/talk/room/ChatMessageAdapter.kt index 9706e116..54ac8c52 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/chat/talk/room/ChatMessageAdapter.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/chat/talk/room/ChatMessageAdapter.kt @@ -485,8 +485,7 @@ class ChatMessageAdapter : RecyclerView.Adapter() { override fun onAttachedToRecyclerView(recyclerView: RecyclerView) { super.onAttachedToRecyclerView(recyclerView) - // RecyclerView와 연결된 시점에 안정 ID 활성화 (JVM 테스트에서 NPE 회피) - setHasStableIds(true) + // 안정 ID는 어댑터 생성 시(init) 고정됨. 여기서는 연결 상태 플래그만 설정. isRecyclerViewAttached = true } 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 8ed0ef70..818eed33 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 @@ -123,6 +123,8 @@ class ChatRoomActivity : BaseActivity( binding.rvMessages.layoutManager = layoutManager chatAdapter = ChatMessageAdapter().apply { + // RecyclerView에 연결하기 전에 안정 ID를 활성화해야 함 + setHasStableIds(true) setCallback(object : ChatMessageAdapter.Callback { override fun onRetrySend(localId: String) { onRetrySendClicked(localId)