Adds vertical centering of title when no subtitle is present
This commit is contained in:
parent
52c404ac9c
commit
21fe5a23fb
@ -18,9 +18,10 @@ package im.vector.app.features.home.room.list
|
|||||||
|
|
||||||
import android.view.HapticFeedbackConstants
|
import android.view.HapticFeedbackConstants
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
|
||||||
import android.widget.ImageView
|
import android.widget.ImageView
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
|
import androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
import androidx.constraintlayout.widget.ConstraintSet
|
||||||
import androidx.core.view.isInvisible
|
import androidx.core.view.isInvisible
|
||||||
import androidx.core.view.isVisible
|
import androidx.core.view.isVisible
|
||||||
import com.airbnb.epoxy.EpoxyAttribute
|
import com.airbnb.epoxy.EpoxyAttribute
|
||||||
@ -134,12 +135,33 @@ abstract class RoomSummaryItem : VectorEpoxyModel<RoomSummaryItem.Holder>() {
|
|||||||
private fun renderForDefaultDisplayMode(holder: Holder) {
|
private fun renderForDefaultDisplayMode(holder: Holder) {
|
||||||
holder.subtitleView.text = lastFormattedEvent.charSequence
|
holder.subtitleView.text = lastFormattedEvent.charSequence
|
||||||
holder.lastEventTimeView.text = lastEventTime
|
holder.lastEventTimeView.text = lastEventTime
|
||||||
|
holder.typingView.setTextOrHide(typingMessage)
|
||||||
|
holder.subtitleView.isInvisible = holder.typingView.isVisible
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun renderForFilteredDisplayMode(holder: Holder) {
|
private fun renderForFilteredDisplayMode(holder: Holder) {
|
||||||
holder.subtitleView.text = subtitle
|
holder.subtitleView.text = subtitle
|
||||||
holder.typingView.setTextOrHide(typingMessage)
|
if (subtitle.isEmpty()) {
|
||||||
holder.subtitleView.isInvisible = holder.typingView.isVisible
|
holder.centerTitleVertically()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun Holder.centerTitleVertically() {
|
||||||
|
removeTitleTopMargin()
|
||||||
|
constrainTitleToParentBottom()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun Holder.removeTitleTopMargin() {
|
||||||
|
val layoutParams = titleView.layoutParams as ConstraintLayout.LayoutParams
|
||||||
|
layoutParams.topMargin = 0
|
||||||
|
titleView.layoutParams = layoutParams
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun Holder.constrainTitleToParentBottom() {
|
||||||
|
val constraintSet = ConstraintSet()
|
||||||
|
constraintSet.clone(rootView)
|
||||||
|
constraintSet.connect(titleView.id, ConstraintSet.BOTTOM, rootView.id, ConstraintSet.BOTTOM)
|
||||||
|
constraintSet.applyTo(rootView)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun unbind(holder: Holder) {
|
override fun unbind(holder: Holder) {
|
||||||
@ -175,6 +197,6 @@ abstract class RoomSummaryItem : VectorEpoxyModel<RoomSummaryItem.Holder>() {
|
|||||||
val roomAvatarPublicDecorationImageView by bind<ImageView>(R.id.roomAvatarPublicDecorationImageView)
|
val roomAvatarPublicDecorationImageView by bind<ImageView>(R.id.roomAvatarPublicDecorationImageView)
|
||||||
val roomAvatarFailSendingImageView by bind<ImageView>(R.id.roomAvatarFailSendingImageView)
|
val roomAvatarFailSendingImageView by bind<ImageView>(R.id.roomAvatarFailSendingImageView)
|
||||||
val roomAvatarPresenceImageView by bind<PresenceStateImageView>(R.id.roomAvatarPresenceImageView)
|
val roomAvatarPresenceImageView by bind<PresenceStateImageView>(R.id.roomAvatarPresenceImageView)
|
||||||
val rootView by bind<ViewGroup>(R.id.itemRoomLayout)
|
val rootView by bind<ConstraintLayout>(R.id.itemRoomLayout)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user