From c05a0eca0a763a1c522bfb41a3b4244517120b93 Mon Sep 17 00:00:00 2001 From: Juha Heinanen Date: Mon, 18 Jan 2021 09:32:06 +0200 Subject: [PATCH] Improved saving of call uri when main activity is paused --- .../kotlin/com/tutpro/baresip/MainActivity.kt | 35 ++++++++++++------- 1 file changed, 22 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 7830629d..f8ce700c 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt @@ -68,6 +68,11 @@ class MainActivity : AppCompatActivity() { private var restart = false private var atStartup = false + private var resumeUri = "" + private var resumeUap = "" + private var resumeCall: Call? = null + private var resumeAction = "" + @SuppressLint("ClickableViewAccessibility") override fun onCreate(savedInstanceState: Bundle?) { @@ -255,7 +260,7 @@ class MainActivity : AppCompatActivity() { val aor = ua.account.aor if (Call.calls().isEmpty()) { val uriText = callUri.text.toString().trim() - if (uriText.length > 0) { + if (uriText.isNotEmpty()) { var uri = ContactsActivity.findContactURI(uriText) if (!uri.startsWith("sip:")) { uri = "sip:$uri" @@ -271,17 +276,17 @@ class MainActivity : AppCompatActivity() { callUri.isFocusable = false if (am.mode != AudioManager.MODE_IN_COMMUNICATION) am.mode = AudioManager.MODE_IN_COMMUNICATION - callButton.visibility = View.INVISIBLE - callButton.isEnabled = false - hangupButton.visibility = View.VISIBLE - hangupButton.isEnabled = false - 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 { + callButton.visibility = View.INVISIBLE + callButton.isEnabled = false + hangupButton.visibility = View.VISIBLE + hangupButton.isEnabled = true } } } else { @@ -674,8 +679,7 @@ class MainActivity : AppCompatActivity() { Log.d("Baresip", "Main onPause") Utils.addActivity("main") visible = false - if (UserAgent.uas().isNotEmpty() && aorSpinner.selectedItemPosition >= 0) - UserAgent.uas()[aorSpinner.selectedItemPosition].account.resumeUri = callUri.text.toString() + saveCallUri() super.onPause() } @@ -1715,6 +1719,16 @@ class MainActivity : AppCompatActivity() { return } + private fun saveCallUri() { + if (UserAgent.uas().isNotEmpty() && aorSpinner.selectedItemPosition >= 0) { + val ua = UserAgent.uas()[aorSpinner.selectedItemPosition] + if (Call.uaCalls(ua, "").size == 0) + ua.account.resumeUri = callUri.text.toString() + else + ua.account.resumeUri = "" + } + } + @Suppress("DEPRECATION") private fun dismissKeyguard() { if (Build.VERSION.SDK_INT >= 27) { @@ -1731,11 +1745,6 @@ class MainActivity : AppCompatActivity() { companion object { var visible = false - - var resumeAction = "" - var resumeUap = "" - var resumeCall: Call? = null - var resumeUri = "" var activityAor = "" // of those accounts that have auth username without auth password