Skip to content

Commit f04f47f

Browse files
committed
Add an interrupt voice recording api
1 parent 85e498f commit f04f47f

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

ease-im-kit/src/main/kotlin/com/hyphenate/easeui/feature/chat/widgets/ChatUIKitLayout.kt

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.hyphenate.easeui.feature.chat.widgets
22

3+
import android.app.ProgressDialog.show
34
import android.content.ClipData
45
import android.content.ClipboardManager
56
import android.content.Context
@@ -39,6 +40,7 @@ import com.hyphenate.easeui.common.ChatThread
3940
import com.hyphenate.easeui.common.ChatType
4041
import com.hyphenate.easeui.common.bus.ChatUIKitFlowBus
4142
import com.hyphenate.easeui.common.enums.ChatUIKitFinishReason
43+
import com.hyphenate.easeui.common.extensions.hideSoftKeyboard
4244
import com.hyphenate.easeui.common.extensions.isSuccess
4345
import com.hyphenate.easeui.common.extensions.lifecycleScope
4446
import com.hyphenate.easeui.common.extensions.mainScope
@@ -274,6 +276,8 @@ class ChatUIKitLayout @JvmOverloads constructor(
274276
*/
275277
private var multipleSelectRemoveMsgListener: OnMultipleSelectRemoveMsgListener? = null
276278

279+
private var voiceRecorderDialog:ChatUIKitVoiceRecorderDialog?=null
280+
277281
private val chatMessageListener = object : ChatUIKitMessageListener() {
278282
override fun onMessageReceived(messages: MutableList<ChatMessage>?) {
279283
var refresh = false
@@ -565,7 +569,7 @@ class ChatUIKitLayout @JvmOverloads constructor(
565569
}
566570

567571
override fun onToggleVoiceBtnClicked() {
568-
ChatUIKitVoiceRecorderDialog(mContext, conversationId).apply {
572+
voiceRecorderDialog=ChatUIKitVoiceRecorderDialog(mContext, conversationId).apply {
569573
if (mContext is AppCompatActivity) {
570574
show(mContext.supportFragmentManager, "ease_chat_voice_recorder_dialog")
571575
setOnVoiceRecorderClickListener(object : OnVoiceRecorderClickListener {
@@ -1364,6 +1368,12 @@ class ChatUIKitLayout @JvmOverloads constructor(
13641368
return chatType?.getConversationType() == ChatConversationType.ChatRoom
13651369
}
13661370

1371+
fun stopRecorder(){
1372+
if (voiceRecorderDialog?.recordStatus == ChatUIKitVoiceRecorderDialog.RecordStatus.RECORDING){
1373+
voiceRecorderDialog?.toStopRecordStatus()
1374+
}
1375+
}
1376+
13671377
companion object {
13681378
private val TAG: String = ChatUIKitLayout::class.java.simpleName.toString()
13691379
private const val MSG_TYPING_HEARTBEAT = 0

ease-im-kit/src/main/kotlin/com/hyphenate/easeui/feature/chat/widgets/ChatUIKitVoiceRecorderDialog.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ class ChatUIKitVoiceRecorderDialog(
2828
private var recordTouchListener: OnChatRecordTouchListener? = null
2929
private var dismissListener: OnDismissListener? = null
3030
private var listener: OnVoiceRecorderClickListener? = null
31-
private var recordStatus = RecordStatus.RECORD_IDLE
31+
var recordStatus = RecordStatus.RECORD_IDLE
32+
private set
3233
private val micImageHandler by lazy {
3334
val handlerThread = HandlerThread("mic-change")
3435
handlerThread.start()
@@ -155,7 +156,7 @@ class ChatUIKitVoiceRecorderDialog(
155156
timer.startTimer()
156157
}
157158

158-
private fun toStopRecordStatus() {
159+
fun toStopRecordStatus() {
159160
setRecordStopStatus()
160161
stopRecord()
161162
timer.stopTimer()
@@ -367,7 +368,7 @@ class ChatUIKitVoiceRecorderDialog(
367368
this.dismissListener = listener
368369
}
369370

370-
private enum class RecordStatus {
371+
enum class RecordStatus {
371372
/**
372373
* Recorder is idle.
373374
*/

0 commit comments

Comments
 (0)