diff --git a/VisualNovel/app/src/main/java/com/remax/visualnovel/entity/response/ChatHistory.kt b/VisualNovel/app/src/main/java/com/remax/visualnovel/entity/response/ChatHistory.kt index 3329ecc..164a155 100644 --- a/VisualNovel/app/src/main/java/com/remax/visualnovel/entity/response/ChatHistory.kt +++ b/VisualNovel/app/src/main/java/com/remax/visualnovel/entity/response/ChatHistory.kt @@ -6,6 +6,7 @@ import kotlinx.parcelize.Parcelize @Parcelize data class ChatHistory( var id: Int? = 0, + var imgUrl: String?, var time: Long, var describle: String ) : Parcelable { diff --git a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/ChatSettingView.kt b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/ChatSettingView.kt index 68e67dd..a19395a 100644 --- a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/ChatSettingView.kt +++ b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/ChatSettingView.kt @@ -11,9 +11,11 @@ import com.remax.visualnovel.R import com.remax.visualnovel.databinding.LayoutChatMenuViewBinding import com.remax.visualnovel.entity.response.ChatBackground import com.remax.visualnovel.entity.response.ChatBubble +import com.remax.visualnovel.entity.response.ChatHistory import com.remax.visualnovel.entity.response.ChatMode import com.remax.visualnovel.entity.response.ChatSound import com.remax.visualnovel.ui.chat.ui.expandableSelector.SelectorItem +import java.util.Date class ChatSettingView @JvmOverloads constructor( context: Context, @@ -34,6 +36,7 @@ class ChatSettingView @JvmOverloads constructor( initSoundSelectorView() initBubbleSelectView() initBackgroundSelectView() + initHistoryListView() } @@ -221,4 +224,38 @@ class ChatSettingView @JvmOverloads constructor( } + fun initHistoryListView() { + val items = listOf( + ChatHistory( + imgUrl = "", + time = Date().time - 3600*100*1, + describle = "上次聊天记录 11111", + ), + ChatHistory( + imgUrl = "", + time = Date().time - 3600*100*2, + describle = "上次聊天记录 2222", + ), + ChatHistory( + imgUrl = "", + time = Date().time - 3600*100*3, + describle = "上次聊天记录 333", + ), + ChatHistory( + imgUrl = "", + time = Date().time - 3600*100*4, + describle = "上次聊天记录 444", + ),ChatHistory( + imgUrl = "", + time = Date().time - 3600*100*5, + describle = "上次聊天记录 5555", + ) + + ) + + mBinding.historySelectView.setItems(items) + } + + + } diff --git a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/expandableSelector/ExpandHistorySubView.kt b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/expandableSelector/ExpandHistorySubView.kt new file mode 100644 index 0000000..416ff93 --- /dev/null +++ b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/expandableSelector/ExpandHistorySubView.kt @@ -0,0 +1,77 @@ +package com.remax.visualnovel.ui.chat.ui.expandableSelector + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import android.widget.LinearLayout +import androidx.recyclerview.widget.RecyclerView +import com.drake.brv.annotaion.DividerOrientation +import com.drake.brv.utils.bindingAdapter +import com.drake.brv.utils.divider +import com.drake.brv.utils.grid +import com.drake.brv.utils.linear +import com.drake.brv.utils.models +import com.drake.brv.utils.setup +import com.remax.visualnovel.R +import com.remax.visualnovel.databinding.LayoutItemSettingHistoryBinding +import com.remax.visualnovel.databinding.LayoutSettingBgSubViewBinding +import com.remax.visualnovel.entity.response.ChatHistory +import com.remax.visualnovel.extension.glide.load +import java.text.SimpleDateFormat + + +class ExpandHistorySubView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : LinearLayout(context, attrs, defStyleAttr) { + private lateinit var items: List + private var mBinding: LayoutSettingBgSubViewBinding + + + init { + mBinding = LayoutSettingBgSubViewBinding.inflate(LayoutInflater.from(context), this, true) + with(mBinding) { + initRv(itemsRv) + } + } + + private fun initRv(itemsRv: RecyclerView) { + itemsRv.linear() + .divider { + setDivider(10, true) + orientation = DividerOrientation.VERTICAL + }.setup { + addType(R.layout.layout_item_setting_history) + + onClick(R.id.root) { + itemsRv.bindingAdapter.models?.filterIsInstance()?.forEach { item -> + openChatHistory(item) + } + } + + onBind { + val item = getModel() + with(getBinding()) { + if (!item.imgUrl.isNullOrEmpty()) { + ivActorAvatar.load(item.imgUrl) + } + + tvChatTime.text = SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(item.time) + tvChatDes.text = item.describle + } + } + } + } + + fun setItems(newItems: List) { + items = newItems + mBinding.itemsRv.models = items + } + + fun openChatHistory(history: ChatHistory) { + + } + + +} \ No newline at end of file diff --git a/VisualNovel/app/src/main/res/layout/layout_chat_menu_view.xml b/VisualNovel/app/src/main/res/layout/layout_chat_menu_view.xml index 0651d5b..d146105 100644 --- a/VisualNovel/app/src/main/res/layout/layout_chat_menu_view.xml +++ b/VisualNovel/app/src/main/res/layout/layout_chat_menu_view.xml @@ -275,6 +275,11 @@ android:layout_height="wrap_content" android:orientation="vertical" android:layout_marginTop="10dp" > + diff --git a/VisualNovel/app/src/main/res/layout/layout_item_setting_history.xml b/VisualNovel/app/src/main/res/layout/layout_item_setting_history.xml new file mode 100644 index 0000000..8685052 --- /dev/null +++ b/VisualNovel/app/src/main/res/layout/layout_item_setting_history.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + diff --git a/VisualNovel/app/src/main/res/values/colors.xml b/VisualNovel/app/src/main/res/values/colors.xml index 126a3a6..72ffb90 100644 --- a/VisualNovel/app/src/main/res/values/colors.xml +++ b/VisualNovel/app/src/main/res/values/colors.xml @@ -190,6 +190,7 @@ #ff565563 #ff333333 #ff666666 + #ff999999 #fff6f6f6