Commit 66bd3831 authored by Leonardo Aramaki's avatar Leonardo Aramaki

Code minor code refactorings

parent 731e786c
...@@ -3,12 +3,10 @@ package chat.rocket.android.chatroom.adapter ...@@ -3,12 +3,10 @@ package chat.rocket.android.chatroom.adapter
import android.graphics.Color import android.graphics.Color
import android.graphics.drawable.Drawable import android.graphics.drawable.Drawable
import android.text.Spannable import android.text.Spannable
import android.text.Spanned
import android.text.method.LinkMovementMethod import android.text.method.LinkMovementMethod
import android.text.style.ImageSpan import android.text.style.ImageSpan
import android.view.View import android.view.View
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.core.view.postDelayed
import chat.rocket.android.R import chat.rocket.android.R
import chat.rocket.android.chatroom.uimodel.MessageUiModel import chat.rocket.android.chatroom.uimodel.MessageUiModel
import chat.rocket.android.emoji.EmojiReactionListener import chat.rocket.android.emoji.EmojiReactionListener
...@@ -48,56 +46,53 @@ class MessageViewHolder( ...@@ -48,56 +46,53 @@ class MessageViewHolder(
} }
override fun bindViews(data: MessageUiModel) { override fun bindViews(data: MessageUiModel) {
with(itemView) { itemView.day_marker_layout.visibility = if (data.showDayMarker) {
day_marker_layout.visibility = if (data.showDayMarker) { itemView.day.text = data.currentDayMarkerText
day.text = data.currentDayMarkerText View.VISIBLE
View.VISIBLE } else {
} else { View.GONE
View.GONE }
}
if (data.isFirstUnread) {
new_messages_notif.visibility = View.VISIBLE
} else {
new_messages_notif.visibility = View.GONE
}
text_message_time.text = data.time if (data.isFirstUnread) {
text_sender.text = data.senderName itemView.new_messages_notif.visibility = View.VISIBLE
} else {
itemView.new_messages_notif.visibility = View.GONE
}
if (data.content is Spannable) { itemView.text_message_time.text = data.time
val spans = data.content.getSpans(0, data.content.length, ImageSpan::class.java) itemView.text_sender.text = data.senderName
spans.forEach {
if (it.drawable is GifDrawable) { if (data.content is Spannable) {
it.drawable.callback = this@MessageViewHolder val spans = data.content.getSpans(0, data.content.length, ImageSpan::class.java)
(it.drawable as GifDrawable).start() spans.forEach {
} if (it.drawable is GifDrawable) {
it.drawable.callback = this@MessageViewHolder
(it.drawable as GifDrawable).start()
} }
} }
}
text_content.text_content.text = data.content itemView.text_content.text_content.text = data.content
image_avatar.setImageURI(data.avatar) itemView.image_avatar.setImageURI(data.avatar)
text_content.setTextColor(if (data.isTemporary) Color.GRAY else Color.BLACK) itemView.text_content.setTextColor(if (data.isTemporary) Color.GRAY else Color.BLACK)
data.message.let { data.message.let {
text_edit_indicator.isVisible = !it.isSystemMessage() && it.editedBy != null itemView.text_edit_indicator.isVisible = !it.isSystemMessage() && it.editedBy != null
image_star_indicator.isVisible = it.starred?.isNotEmpty() ?: false itemView.image_star_indicator.isVisible = it.starred?.isNotEmpty() ?: false
} }
if (data.unread == null) { if (data.unread == null) {
read_receipt_view.isVisible = false itemView.read_receipt_view.isVisible = false
} else { } else {
read_receipt_view.setImageResource( itemView.read_receipt_view.setImageResource(
if (data.unread == true) { if (data.unread == true) {
R.drawable.ic_check_unread_24dp R.drawable.ic_check_unread_24dp
} else { } else {
R.drawable.ic_check_read_24dp R.drawable.ic_check_read_24dp
} }
) )
read_receipt_view.isVisible = true itemView.read_receipt_view.isVisible = true
}
} }
} }
} }
...@@ -982,12 +982,12 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR ...@@ -982,12 +982,12 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR
text_message?.removeCallbacks(what) text_message?.removeCallbacks(what)
} }
override fun invalidateDrawable(p0: Drawable?) { override fun invalidateDrawable(who: Drawable?) {
text_message?.invalidate() text_message?.invalidate()
} }
override fun scheduleDrawable(who: Drawable?, what: Runnable?, w: Long) { override fun scheduleDrawable(who: Drawable?, what: Runnable?, `when`: Long) {
text_message?.postDelayed(what, w) text_message?.postDelayed(what, `when`)
} }
override fun showMessageInfo(id: String) { override fun showMessageInfo(id: String) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment