From 4c5aa50fafd5a8b4c8425e5109f3d7fe86bc2c36 Mon Sep 17 00:00:00 2001 From: Juha Heinanen Date: Wed, 18 Nov 2020 17:52:17 +0200 Subject: [PATCH] Place call without delay after setting mode to MODE_IN_COMMUNICATION --- .../kotlin/com/tutpro/baresip/MainActivity.kt | 21 +++++++------------ 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt index a8e40734..d96d4a1a 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt @@ -254,9 +254,6 @@ class MainActivity : AppCompatActivity() { String.format(getString(R.string.invalid_sip_uri), uri)) } else { callUri.isFocusable = false - // Set audio mode to MODE_IN_COMMUNICATION and wait 2.5 sec before - // placing to call in order to avoid missing audio from callee due to - // a bug in many Android devices. val am = getSystemService(Context.AUDIO_SERVICE) as AudioManager if (am.mode != AudioManager.MODE_IN_COMMUNICATION) am.mode = AudioManager.MODE_IN_COMMUNICATION @@ -264,16 +261,14 @@ class MainActivity : AppCompatActivity() { callButton.isEnabled = false hangupButton.visibility = View.VISIBLE hangupButton.isEnabled = false - Handler().postDelayed({ - hangupButton.isEnabled = true - if (!call(ua, uri, "outgoing")) { - am.mode = AudioManager.MODE_NORMAL - callButton.visibility = View.VISIBLE - callButton.isEnabled = true - hangupButton.visibility = View.INVISIBLE - hangupButton.isEnabled = false - } - }, 2500) + hangupButton.isEnabled = true + if (!call(ua, uri, "outgoing")) { + am.mode = AudioManager.MODE_NORMAL + callButton.visibility = View.VISIBLE + callButton.isEnabled = true + hangupButton.visibility = View.INVISIBLE + hangupButton.isEnabled = false + } } } else { val latest = CallHistory.aorLatestHistory(aor)