mirror of
https://github.com/SchildiChat/SchildiChat-android.git
synced 2024-11-25 02:45:53 +03:00
For bottom timestamps, we can hide member names also when hiding avatars
Member names not really important in direct chats or for outgoing messages. Change-Id: I1d3328444daf571488b1d9b4d2d188d695c515b3
This commit is contained in:
parent
0b2d98b116
commit
be2983053a
1 changed files with 17 additions and 4 deletions
|
@ -64,11 +64,13 @@ abstract class AbsMessageItem<H : AbsMessageItem.Holder> : AbsBaseMessageItem<H>
|
|||
val contentInBubble = infoInBubbles(holder.memberNameView.context)
|
||||
|
||||
val avatarImageView: ImageView?
|
||||
val memberNameView: TextView?
|
||||
var memberNameView: TextView?
|
||||
var timeView: TextView?
|
||||
val hiddenViews = ArrayList<View>()
|
||||
val invisibleViews = ArrayList<View>()
|
||||
|
||||
val avatarUnnecessary = canHideAvatars()
|
||||
|
||||
// Select which views are visible, based on bubble style and other criteria
|
||||
if (attributes.informationData.showInformation) {
|
||||
if (contentInBubble) {
|
||||
|
@ -114,8 +116,15 @@ abstract class AbsMessageItem<H : AbsMessageItem.Holder> : AbsBaseMessageItem<H>
|
|||
if (BubbleThemeUtils.getBubbleTimeLocation(holder.bubbleTimeView.context) == BubbleThemeUtils.BUBBLE_TIME_BOTTOM) {
|
||||
timeView = holder.bubbleFooterTimeView
|
||||
if (attributes.informationData.showInformation) {
|
||||
// Don't hide, so our relative layout rules still work
|
||||
invisibleViews.add(holder.bubbleTimeView)
|
||||
if (avatarUnnecessary) {
|
||||
// In the case of footer time, we can also hide the names without making it look awkward
|
||||
hiddenViews.add(holder.bubbleMemberNameView)
|
||||
memberNameView = null
|
||||
hiddenViews.add(holder.bubbleTimeView)
|
||||
} else {
|
||||
// Don't completely remove, just hide, so our relative layout rules still work
|
||||
invisibleViews.add(holder.bubbleTimeView)
|
||||
}
|
||||
} else {
|
||||
// Do hide, or we accidentally reserve space
|
||||
hiddenViews.add(holder.bubbleTimeView)
|
||||
|
@ -127,7 +136,7 @@ abstract class AbsMessageItem<H : AbsMessageItem.Holder> : AbsBaseMessageItem<H>
|
|||
|
||||
// Dual-side bubbles: hide own avatar, and all in direct chats
|
||||
if ((!attributes.informationData.showInformation) ||
|
||||
(contentInBubble && (attributes.informationData.sentByMe || attributes.informationData.isDirect))) {
|
||||
(contentInBubble && avatarUnnecessary)) {
|
||||
avatarImageView = null
|
||||
hiddenViews.add(holder.avatarImageView)
|
||||
} else {
|
||||
|
@ -293,6 +302,10 @@ abstract class AbsMessageItem<H : AbsMessageItem.Holder> : AbsBaseMessageItem<H>
|
|||
open fun reserveFooterSpace(holder: H, width: Int, height: Int) {
|
||||
}
|
||||
|
||||
open fun canHideAvatars(): Boolean {
|
||||
return attributes.informationData.sentByMe || attributes.informationData.isDirect
|
||||
}
|
||||
|
||||
override fun setBubbleLayout(holder: H, bubbleStyle: String, bubbleStyleSetting: String, reverseBubble: Boolean) {
|
||||
super.setBubbleLayout(holder, bubbleStyle, bubbleStyleSetting, reverseBubble)
|
||||
|
||||
|
|
Loading…
Reference in a new issue