Skip to content

Commit 9bea9c1

Browse files
authored
Merge pull request #71 from xuchengpu/dev
Fix the issue of the absence of the item background setting function …
2 parents cb6d07d + 49f7c38 commit 9bea9c1

File tree

5 files changed

+31
-14
lines changed

5 files changed

+31
-14
lines changed

ease-im-kit/src/main/kotlin/com/hyphenate/easeui/feature/conversation/config/ChatUIKitConvItemConfig.kt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package com.hyphenate.easeui.feature.conversation.config
22

33
import android.content.Context
4+
import android.graphics.drawable.ColorDrawable
5+
import android.graphics.drawable.Drawable
46
import android.util.AttributeSet
57
import androidx.core.content.ContextCompat
68
import com.hyphenate.easeui.ChatUIKitClient
@@ -9,6 +11,7 @@ import com.hyphenate.easeui.configs.ChatUIKitAvatarConfig
911
import com.hyphenate.easeui.feature.conversation.interfaces.UnreadDotPosition
1012
import com.hyphenate.easeui.feature.conversation.interfaces.UnreadStyle
1113
import com.hyphenate.easeui.widget.ChatUIKitImageView
14+
import androidx.core.graphics.drawable.toDrawable
1215

1316
/**
1417
* Conversation item configuration
@@ -41,6 +44,7 @@ data class ChatUIKitConvItemConfig(
4144
var avatarSize: Int = -1,
4245
var avatarConfig: ChatUIKitAvatarConfig = ChatUIKitClient.getConfig()?.avatarConfig?.copy() ?: ChatUIKitAvatarConfig(),
4346
var itemHeight: Float = -1f,
47+
var itemBackground: Drawable? = null
4448
) {
4549
internal companion object {
4650

@@ -119,6 +123,17 @@ data class ChatUIKitConvItemConfig(
119123
a.getDimension(R.styleable.ChatUIKitConversationListLayout_ease_con_item_height, -1f).let {
120124
if (it != -1f) itemConfig.itemHeight = it
121125
}
126+
a.getResourceId(R.styleable.ChatUIKitConversationListLayout_ease_con_item_background, -1).let { resId ->
127+
if (resId != -1) {
128+
itemConfig.itemBackground = ContextCompat.getDrawable(context, resId)
129+
} else {
130+
a.getColor(R.styleable.ChatUIKitConversationListLayout_ease_con_item_background, -1).let { color ->
131+
if (color != -1) {
132+
itemConfig.itemBackground = color.toDrawable()
133+
}
134+
}
135+
}
136+
}
122137
a.recycle()
123138
}
124139
return itemConfig

ease-im-kit/src/main/kotlin/com/hyphenate/easeui/feature/conversation/interfaces/IConvItemStyle.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ import android.graphics.drawable.Drawable
44
import com.hyphenate.easeui.common.interfaces.IAvatarStyle
55

66
interface IConvItemStyle : IAvatarStyle, IConvItemTextStyle {
7-
// fun setItemBackGround(backGround: Drawable?)
7+
8+
fun setItemBackGround(backGround: Drawable?)
89
fun setItemHeight(height: Int)
910

1011
/**

ease-im-kit/src/main/kotlin/com/hyphenate/easeui/feature/conversation/viewholders/ChatUIKitConversationViewHolder.kt

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
package com.hyphenate.easeui.feature.conversation.viewholders
22

3+
import android.R.attr.name
4+
import android.R.id.message
35
import android.graphics.drawable.Drawable
46
import android.view.View
57
import androidx.viewbinding.ViewBinding
68
import coil.load
79
import com.hyphenate.easeui.ChatUIKitClient
810
import com.hyphenate.easeui.R
911
import com.hyphenate.easeui.base.ChatUIKitBaseRecyclerViewAdapter
12+
import com.hyphenate.easeui.common.ChatLog
1013
import com.hyphenate.easeui.common.ChatMessageDirection
1114
import com.hyphenate.easeui.common.ChatMessageStatus
1215
import com.hyphenate.easeui.common.ChatType
@@ -39,16 +42,10 @@ class ChatUIKitConversationViewHolder(
3942
private var bgDrawable: Drawable? = null
4043

4144
init {
42-
config?.bindView(viewBinding)
43-
}
44-
45-
override fun initView(viewBinding: ViewBinding?) {
46-
super.initView(viewBinding)
47-
viewBinding?.let {
48-
if (it is UikitItemConversationListBinding) {
49-
ChatUIKitClient.getConfig()?.avatarConfig?.setAvatarStyle(it.avatar)
50-
bgDrawable = it.root.background
51-
}
45+
viewBinding.let {
46+
config?.bindView(it)
47+
ChatUIKitClient.getConfig()?.avatarConfig?.setAvatarStyle(it.avatar)
48+
bgDrawable = config?.itemBackground?:it.root.background
5249
}
5350
}
5451

ease-im-kit/src/main/kotlin/com/hyphenate/easeui/feature/conversation/viewholders/ChatUIKitConversationViewHolderFactory.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,20 @@ object ChatUIKitConversationViewHolderFactory {
1313
inflater: LayoutInflater,
1414
parent: ViewGroup?,
1515
viewType: ChatUIKitConvViewType = ChatUIKitConvViewType.VIEW_TYPE_CONVERSATION,
16-
style: ChatUIKitConvItemConfig = ChatUIKitConvItemConfig()
16+
config: ChatUIKitConvItemConfig = ChatUIKitConvItemConfig()
1717
): ChatUIKitBaseRecyclerViewAdapter.ViewHolder<ChatUIKitConversation> {
1818
return when(viewType) {
1919
ChatUIKitConvViewType.VIEW_TYPE_CONVERSATION -> {
2020
ChatUIKitConversationViewHolder(
2121
UikitItemConversationListBinding.inflate(inflater, parent, false),
22-
style
22+
config
2323
)
2424
}
2525
else -> {
2626
// Return default view holder
2727
ChatUIKitConversationViewHolder(
2828
UikitItemConversationListBinding.inflate(inflater, parent, false),
29-
style
29+
config
3030
)
3131
}
3232
}

ease-im-kit/src/main/kotlin/com/hyphenate/easeui/feature/conversation/widgets/ChatUIKitConversationListLayout.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -332,6 +332,10 @@ class ChatUIKitConversationListLayout @JvmOverloads constructor(
332332
listAdapter?.setConversationItemConfig(itemConfig)
333333
}
334334

335+
override fun setItemBackGround(backGround: Drawable?) {
336+
itemConfig.itemBackground = backGround
337+
notifyDataSetChanged()
338+
}
335339

336340
override fun setItemHeight(height: Int) {
337341
itemConfig.itemHeight = height.toFloat()

0 commit comments

Comments
 (0)