fix(chat-room): stable IDs 설정 시점을 setAdapter 이전으로 이동
- ChatMessageAdapter: onAttachedToRecyclerView에서 setHasStableIds 호출 제거 - ChatRoomActivity: 어댑터 생성 직후 setHasStableIds(true) 설정 후 RecyclerView에 연결 원인: 옵저버 등록 이후 setHasStableIds 변경으로 런타임 예외 발생 검증: 단위 테스트 모두 통과, 빌드 성공
This commit is contained in:
@@ -485,8 +485,7 @@ class ChatMessageAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
|
||||
|
||||
override fun onAttachedToRecyclerView(recyclerView: RecyclerView) {
|
||||
super.onAttachedToRecyclerView(recyclerView)
|
||||
// RecyclerView와 연결된 시점에 안정 ID 활성화 (JVM 테스트에서 NPE 회피)
|
||||
setHasStableIds(true)
|
||||
// 안정 ID는 어댑터 생성 시(init) 고정됨. 여기서는 연결 상태 플래그만 설정.
|
||||
isRecyclerViewAttached = true
|
||||
}
|
||||
|
||||
|
||||
@@ -123,6 +123,8 @@ class ChatRoomActivity : BaseActivity<ActivityChatRoomBinding>(
|
||||
binding.rvMessages.layoutManager = layoutManager
|
||||
|
||||
chatAdapter = ChatMessageAdapter().apply {
|
||||
// RecyclerView에 연결하기 전에 안정 ID를 활성화해야 함
|
||||
setHasStableIds(true)
|
||||
setCallback(object : ChatMessageAdapter.Callback {
|
||||
override fun onRetrySend(localId: String) {
|
||||
onRetrySendClicked(localId)
|
||||
|
||||
Reference in New Issue
Block a user