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

View File

@ -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 = ""
// <aor, password> of those accounts that have auth username without auth password