diff --git a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/Chat/ChatEditView.kt b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/Chat/ChatEditView.kt new file mode 100644 index 0000000..4aee9e1 --- /dev/null +++ b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/Chat/ChatEditView.kt @@ -0,0 +1,18 @@ +package com.remax.visualnovel.ui.Chat + +import android.content.Context +import android.util.AttributeSet +import com.remax.visualnovel.R +import com.remax.visualnovel.widget.uitoken.view.UITokenEditView + + +class ChatEditView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0) + : UITokenEditView(context, attrs, defStyleAttr) { + + + init { + setBackgroundResource(R.color.transparent) + + } + +} \ No newline at end of file diff --git a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/Chat/InputPanel.kt b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/Chat/InputPanel.kt index 09037be..ff24114 100644 --- a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/Chat/InputPanel.kt +++ b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/Chat/InputPanel.kt @@ -12,12 +12,18 @@ import com.remax.visualnovel.databinding.ChatInputpanelBinding class InputPanel @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0) : FrameLayout(context, attrs, defStyleAttr) { - private var binding: ChatInputpanelBinding? = null + private var binding: ChatInputpanelBinding + private var mMode = MODE_TEXT + + companion object { + private const val MODE_TEXT = 1; + private const val MODE_VOICE = 2; + } init { binding = inflate(ChatInputpanelBinding::inflate) - binding?.run { + binding.run { chatPopMenu.setMenuList(mutableListOf( PopMenuIconView.MenuItem(R.mipmap.chat_ai_talk) { Toast.makeText(context, "聊天", Toast.LENGTH_SHORT).show() @@ -26,10 +32,39 @@ class InputPanel @JvmOverloads constructor(context: Context, attrs: AttributeSet Toast.makeText(context, "通话", Toast.LENGTH_SHORT).show() } )) + + ivChatModeSwitcher.setOnClickListener { + switchMode(if (mMode == MODE_TEXT) MODE_VOICE else MODE_TEXT) + } + } + + switchMode(mMode) + } + + + private fun switchMode(newMode: Int) { + if (newMode != mMode) { + mMode = newMode + + binding.run { + when (mMode) { + MODE_TEXT-> { + ivChatModeSwitcher.setImageResource(R.mipmap.chat_voice_b) + ivChatSend.visibility = VISIBLE + ivHold2talk.visibility = GONE + chatEditView.visibility = VISIBLE + } + + MODE_VOICE-> { + ivChatModeSwitcher.setImageResource(R.mipmap.chat_keyboard) + ivChatSend.visibility = GONE + ivHold2talk.visibility = VISIBLE + chatEditView.visibility = GONE + } + } + } } } - - } \ No newline at end of file diff --git a/VisualNovel/app/src/main/res/layout/chat_inputpanel.xml b/VisualNovel/app/src/main/res/layout/chat_inputpanel.xml index 21df17b..693b776 100644 --- a/VisualNovel/app/src/main/res/layout/chat_inputpanel.xml +++ b/VisualNovel/app/src/main/res/layout/chat_inputpanel.xml @@ -7,19 +7,6 @@ android:padding="@dimen/dp_20" > - - + + - + + + + + diff --git a/VisualNovel/app/src/main/res/values/strings.xml b/VisualNovel/app/src/main/res/values/strings.xml index cf9cff2..123b090 100644 --- a/VisualNovel/app/src/main/res/values/strings.xml +++ b/VisualNovel/app/src/main/res/values/strings.xml @@ -337,7 +337,6 @@ Prompt Heart member unlock Member unlock - Hold to Talk Release to send My Chat Personal Chat Setting @@ -464,5 +463,8 @@ All from + Hold to Talk + Type a message + \ No newline at end of file