Refactors RoomSummaryItem

This commit is contained in:
ericdecanini 2022-04-29 12:37:19 +02:00
parent 7e415e82b0
commit 7cc79fef0f

View File

@ -105,14 +105,14 @@ abstract class RoomSummaryItem : VectorEpoxyModel<RoomSummaryItem.Holder>() {
override fun bind(holder: Holder) { override fun bind(holder: Holder) {
super.bind(holder) super.bind(holder)
renderDisplayMode(holder)
holder.rootView.onClick(itemClickListener) holder.rootView.onClick(itemClickListener)
holder.rootView.setOnLongClickListener { holder.rootView.setOnLongClickListener {
it.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS) it.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS)
itemLongClickListener?.onLongClick(it) ?: false itemLongClickListener?.onLongClick(it) ?: false
} }
holder.titleView.text = matrixItem.getBestName() holder.titleView.text = matrixItem.getBestName()
holder.lastEventTimeView.text = lastEventTime
holder.subtitleView.text = getTextForLastEventView()
holder.unreadCounterBadgeView.render(UnreadCounterBadgeView.State(unreadNotificationCount, showHighlighted)) holder.unreadCounterBadgeView.render(UnreadCounterBadgeView.State(unreadNotificationCount, showHighlighted))
holder.unreadIndentIndicator.isVisible = hasUnreadMessage holder.unreadIndentIndicator.isVisible = hasUnreadMessage
holder.draftView.isVisible = hasDraft holder.draftView.isVisible = hasDraft
@ -122,22 +122,24 @@ abstract class RoomSummaryItem : VectorEpoxyModel<RoomSummaryItem.Holder>() {
holder.roomAvatarFailSendingImageView.isVisible = hasFailedSending holder.roomAvatarFailSendingImageView.isVisible = hasFailedSending
renderSelection(holder, showSelected) renderSelection(holder, showSelected)
holder.roomAvatarPresenceImageView.render(showPresence, userPresence) holder.roomAvatarPresenceImageView.render(showPresence, userPresence)
showTypingViewIfNecessary(holder)
} }
private fun showTypingViewIfNecessary(holder: Holder) { private fun renderDisplayMode(holder: Holder) = when (displayMode) {
if (displayMode != RoomListDisplayMode.FILTERED) { RoomListDisplayMode.ROOMS,
holder.typingView.setTextOrHide(typingMessage) RoomListDisplayMode.PEOPLE,
holder.subtitleView.isInvisible = holder.typingView.isVisible RoomListDisplayMode.NOTIFICATIONS -> renderForDefaultDisplayMode(holder)
} RoomListDisplayMode.FILTERED -> renderForFilteredDisplayMode(holder)
} }
private fun getTextForLastEventView(): CharSequence { private fun renderForDefaultDisplayMode(holder: Holder) {
return if (displayMode == RoomListDisplayMode.FILTERED) { holder.subtitleView.text = lastFormattedEvent.charSequence
subtitle holder.lastEventTimeView.text = lastEventTime
} else { }
lastFormattedEvent.charSequence
} private fun renderForFilteredDisplayMode(holder: Holder) {
holder.subtitleView.text = subtitle
holder.typingView.setTextOrHide(typingMessage)
holder.subtitleView.isInvisible = holder.typingView.isVisible
} }
override fun unbind(holder: Holder) { override fun unbind(holder: Holder) {