fun updateData(data : List<ChatItem>){ Log.d("M_ChatAdapter", "update data adapter - new data ${data.size} hash : ${data.hashCode()}" + " old ${items.size} hash: ${items.hashCode()}") val diffCallback = object : DiffUtil.Callback(){ override fun areItemsTheSame(oldPos: Int, newPos: Int): Boolean = items[oldPos].id == data[newPos].id override fun areContentsTheSame(oldPos: Int, newPos: Int): Boolean = items[oldPos].hashCode() == data[newPos].hashCode() override fun getOldListSize(): Int = items.size override fun getNewListSize(): Int = data.size } val diffResult = DiffUtil.calculateDiff(diffCallback) items = data diffResult.dispatchUpdatesTo(this) По сути меняется только тип List
Обсуждают сегодня