From df9f17e383525a56f7f9d7f4110cdbc3f234cb37 Mon Sep 17 00:00:00 2001 From: easyhooon <51016231+easyhooon@users.noreply.github.com> Date: Sun, 20 Jun 2021 16:09:03 +0900 Subject: [PATCH] ChatAdapter viewBinding implementation --- .../ac/konkuk/koogle/Adapter/ChatAdapter.kt | 49 ++++++------------- 1 file changed, 14 insertions(+), 35 deletions(-) diff --git a/app/src/main/java/kr/ac/konkuk/koogle/Adapter/ChatAdapter.kt b/app/src/main/java/kr/ac/konkuk/koogle/Adapter/ChatAdapter.kt index 2b23e16..84f3536 100644 --- a/app/src/main/java/kr/ac/konkuk/koogle/Adapter/ChatAdapter.kt +++ b/app/src/main/java/kr/ac/konkuk/koogle/Adapter/ChatAdapter.kt @@ -13,6 +13,9 @@ import kr.ac.konkuk.koogle.DBKeys.Companion.LEFT_CHAT import kr.ac.konkuk.koogle.DBKeys.Companion.RIGHT_CHAT import kr.ac.konkuk.koogle.Model.ChatModel import kr.ac.konkuk.koogle.R +import kr.ac.konkuk.koogle.databinding.ItemCardBinding +import kr.ac.konkuk.koogle.databinding.ItemLeftChatBinding +import kr.ac.konkuk.koogle.databinding.ItemRightChatBinding import java.text.SimpleDateFormat import java.util.* @@ -23,45 +26,36 @@ class ChatAdapter(val context: Context, private val chatList: MutableList(itemView) { + inner class LeftViewHolder(private val binding: ItemLeftChatBinding) : BaseViewHolder(binding.root) { @SuppressLint("SimpleDateFormat") val format = SimpleDateFormat("a HH:mm", Locale.KOREA) - val tv_writerName = itemView.findViewById(R.id.writerNameTextView) - val tv_chatContent = itemView.findViewById(R.id.contentTextView) - val tv_createTime = itemView.findViewById(R.id.timeTextView) - val iv_writerProfileImage = itemView.findViewById(R.id.writerProfileImage) - - override fun bind(chatModel: ChatModel) { val time = Date(chatModel.chatCreatedAt) - tv_writerName.text = chatModel.writerName - tv_chatContent.text = chatModel.chatContent - tv_createTime.text = format.format(time).toString() + binding.writerNameTextView.text = chatModel.writerName + binding.contentTextView.text = chatModel.chatContent + binding.timeTextView.text = format.format(time).toString() if (chatModel.writerProfileImageUrl.isNotEmpty()) { - Glide.with(iv_writerProfileImage) + Glide.with(binding.writerProfileImage) .load(chatModel.writerProfileImageUrl) - .into(iv_writerProfileImage) + .into(binding.writerProfileImage) } } } - inner class RightViewHolder(itemView: View) : BaseViewHolder(itemView) { + inner class RightViewHolder(private val binding: ItemRightChatBinding) : BaseViewHolder(binding.root) { @SuppressLint("SimpleDateFormat") val format = SimpleDateFormat("a HH:mm", Locale.KOREA) - - val tv_chatContent = itemView.findViewById(R.id.contentTextView) - val tv_createTime = itemView.findViewById(R.id.timeTextView) override fun bind(chatModel: ChatModel) { val time = Date(chatModel.chatCreatedAt) - tv_chatContent.text = chatModel.chatContent - tv_createTime.text = format.format(time).toString() + binding.contentTextView.text = chatModel.chatContent + binding.timeTextView.text = format.format(time).toString() } } @@ -70,14 +64,10 @@ class ChatAdapter(val context: Context, private val chatList: MutableList { - val view = - LayoutInflater.from(context).inflate(R.layout.item_left_chat, parent, false) - LeftViewHolder(view) + LeftViewHolder(ItemLeftChatBinding.inflate(LayoutInflater.from(parent.context),parent,false)) } RIGHT_CHAT -> { - val view = - LayoutInflater.from(context).inflate(R.layout.item_right_chat, parent, false) - RightViewHolder(view) + RightViewHolder(ItemRightChatBinding.inflate(LayoutInflater.from(parent.context),parent,false)) } else -> throw IllegalArgumentException("Invalid view type") } @@ -103,17 +93,6 @@ class ChatAdapter(val context: Context, private val chatList: MutableList() { -// override fun areItemsTheSame(oldModel: ChatModel, newModel: ChatModel): Boolean { -// return oldModel.chatCreatedAt == newModel.chatCreatedAt -// } -// -// override fun areContentsTheSame(oldModel: ChatModel, newModel: ChatModel): Boolean { -// return oldModel == newModel -// } -// } -// } override fun getItemCount(): Int { return chatList.size