Improved saving of call uri when main activity is paused

This commit is contained in:
Juha Heinanen
2021-01-18 09:32:06 +02:00
parent b02d20fb3c
commit c05a0eca0a
@@ -68,6 +68,11 @@ class MainActivity : AppCompatActivity() {
private var restart = false private var restart = false
private var atStartup = false private var atStartup = false
private var resumeUri = ""
private var resumeUap = ""
private var resumeCall: Call? = null
private var resumeAction = ""
@SuppressLint("ClickableViewAccessibility") @SuppressLint("ClickableViewAccessibility")
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
@@ -255,7 +260,7 @@ class MainActivity : AppCompatActivity() {
val aor = ua.account.aor val aor = ua.account.aor
if (Call.calls().isEmpty()) { if (Call.calls().isEmpty()) {
val uriText = callUri.text.toString().trim() val uriText = callUri.text.toString().trim()
if (uriText.length > 0) { if (uriText.isNotEmpty()) {
var uri = ContactsActivity.findContactURI(uriText) var uri = ContactsActivity.findContactURI(uriText)
if (!uri.startsWith("sip:")) { if (!uri.startsWith("sip:")) {
uri = "sip:$uri" uri = "sip:$uri"
@@ -271,17 +276,17 @@ class MainActivity : AppCompatActivity() {
callUri.isFocusable = false callUri.isFocusable = false
if (am.mode != AudioManager.MODE_IN_COMMUNICATION) if (am.mode != AudioManager.MODE_IN_COMMUNICATION)
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")) { if (!call(ua, uri, "outgoing")) {
am.mode = AudioManager.MODE_NORMAL am.mode = AudioManager.MODE_NORMAL
callButton.visibility = View.VISIBLE callButton.visibility = View.VISIBLE
callButton.isEnabled = true callButton.isEnabled = true
hangupButton.visibility = View.INVISIBLE hangupButton.visibility = View.INVISIBLE
hangupButton.isEnabled = false hangupButton.isEnabled = false
} else {
callButton.visibility = View.INVISIBLE
callButton.isEnabled = false
hangupButton.visibility = View.VISIBLE
hangupButton.isEnabled = true
} }
} }
} else { } else {
@@ -674,8 +679,7 @@ class MainActivity : AppCompatActivity() {
Log.d("Baresip", "Main onPause") Log.d("Baresip", "Main onPause")
Utils.addActivity("main") Utils.addActivity("main")
visible = false visible = false
if (UserAgent.uas().isNotEmpty() && aorSpinner.selectedItemPosition >= 0) saveCallUri()
UserAgent.uas()[aorSpinner.selectedItemPosition].account.resumeUri = callUri.text.toString()
super.onPause() super.onPause()
} }
@@ -1715,6 +1719,16 @@ class MainActivity : AppCompatActivity() {
return 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") @Suppress("DEPRECATION")
private fun dismissKeyguard() { private fun dismissKeyguard() {
if (Build.VERSION.SDK_INT >= 27) { if (Build.VERSION.SDK_INT >= 27) {
@@ -1731,11 +1745,6 @@ class MainActivity : AppCompatActivity() {
companion object { companion object {
var visible = false var visible = false
var resumeAction = ""
var resumeUap = ""
var resumeCall: Call? = null
var resumeUri = ""
var activityAor = "" var activityAor = ""
// <aor, password> of those accounts that have auth username without auth password // <aor, password> of those accounts that have auth username without auth password