add func of handle to hangup

This commit is contained in:
zhongchao
2021-11-26 16:57:05 +08:00
parent 8708327e51
commit 82accd5dc6

View File

@@ -3,6 +3,7 @@ package com.mogo.module.carchatting.view
import android.annotation.SuppressLint
import android.content.Context
import android.media.AudioManager
import android.os.Handler
import android.view.LayoutInflater
import android.view.View
import android.widget.FrameLayout
@@ -35,6 +36,9 @@ class CallingWindowManager private constructor() : IVoiceIntentListener {
companion object {
const val MSG_DIALING_TIME_OUT = 1001
const val DEFAULT_MAX_DIALING_TIME = 30 * 1000L
val callingWindowManager by lazy(LazyThreadSafetyMode.SYNCHRONIZED) {
CallingWindowManager()
}
@@ -84,6 +88,8 @@ class CallingWindowManager private constructor() : IVoiceIntentListener {
private var agreeIncomingBack: (() -> Unit)? = null
private var hangUpIncomingBack: (() -> Unit)? = null
private var handler: Handler? = null
@SuppressLint("InflateParams")
fun init(
context: Context, serviceApi: IMogoServiceApis,
@@ -101,6 +107,16 @@ class CallingWindowManager private constructor() : IVoiceIntentListener {
this.showVehicleTeamView = showVehicleTeamView
this.quitVehicleTeam = quitVehicleTeam
this.moveToCenter = moveToCenter
handler = Handler(context.mainLooper) {
log(TAG, "times up ,ready to refuse call ")
when (it.what) {
MSG_DIALING_TIME_OUT -> {
releaseAudioAndVoice()
hangUpIncomingBack?.invoke()
}
}
true
}
hideIncomingView()
}
@@ -210,6 +226,7 @@ class CallingWindowManager private constructor() : IVoiceIntentListener {
this.agreeIncomingBack = agreeIncomingBack
this.hangUpIncomingBack = hangUpIncomingBack
if (!isLauncherCallingViewShown) {
handler?.sendEmptyMessageDelayed(MSG_DIALING_TIME_OUT, DEFAULT_MAX_DIALING_TIME)
IMVoiceClient.speakAndRegisterCall({ _ ->
if (isLauncherCallingViewShown) {
log(TAG, "speakAndRegisterCall")
@@ -246,8 +263,10 @@ class CallingWindowManager private constructor() : IVoiceIntentListener {
mContext!!.resources.getDimension(R.dimen.module_call_chat_state_incoming_hawk_eye_height)
.toInt()
)
val x = mContext!!.resources.getDimension(R.dimen.module_call_chat_state_location_hawk_eye_x)
val y = mContext!!.resources.getDimension(R.dimen.module_call_chat_state_location_hawk_eye_y)
val x =
mContext!!.resources.getDimension(R.dimen.module_call_chat_state_location_hawk_eye_x)
val y =
mContext!!.resources.getDimension(R.dimen.module_call_chat_state_location_hawk_eye_y)
params.leftMargin = x.toInt()
params.topMargin = y.toInt()
serviceApi?.windowManagerApi?.addView(launcherIncomingView, params, true)
@@ -329,6 +348,7 @@ class CallingWindowManager private constructor() : IVoiceIntentListener {
return
}
Logger.d(TAG, "隐藏Launcher来电浮窗===$isLauncherCallingViewShown")
handler?.removeMessages(MSG_DIALING_TIME_OUT)
releaseAudioAndVoice()
if (isLauncherIncomingViewShown) {
isLauncherIncomingViewShown = false