-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathMessageAdapter.kt
41 lines (33 loc) · 1.59 KB
/
MessageAdapter.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package com.example.manolja.ui.adapter
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.example.manolja.R
import com.example.manolja.domain.Message
class MessageAdapter(private val messages: List<Message>) : RecyclerView.Adapter<MessageAdapter.MessageViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MessageViewHolder {
val view = LayoutInflater.from(parent.context).inflate(viewType, parent, false)
return MessageViewHolder(view)
}
override fun onBindViewHolder(holder: MessageViewHolder, position: Int) {
val message = messages[position]
holder.bind(message)
}
override fun getItemCount(): Int = messages.size
override fun getItemViewType(position: Int): Int {
val message = messages[position]
return if (message.isCurrentUser) R.layout.item_message_right else R.layout.item_message_left
}
class MessageViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
private val messageText: TextView = itemView.findViewById(R.id.message_text)
private val messageTime: TextView = itemView.findViewById(R.id.message_time)
private val messageSender: TextView = itemView.findViewById(R.id.message_sender)
fun bind(message: Message) {
messageText.text = message.text
messageTime.text = android.text.format.DateFormat.format("HH:mm", message.timestamp)
messageSender.text = message.sender
}
}
}