From fc4e09185dc1af3c45eb7050b7a94829ce81354e Mon Sep 17 00:00:00 2001 From: Juha Heinanen Date: Sun, 11 Nov 2018 05:32:40 +0200 Subject: [PATCH] - avoid possible crash when returning to main activity after deleting an account - use force when Quit is done again (it may still take some time to quit if there is no network connectivity) - increased version codes --- app/build.gradle | 4 ++-- app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt | 8 +++++--- app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt | 9 ++++++--- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 1b1b3eef..f68e79ae 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -7,8 +7,8 @@ android { applicationId = 'com.tutpro.baresip' minSdkVersion 21 targetSdkVersion 27 - versionCode = 31 - versionName = '3.2.2' + versionCode = 32 + versionName = '3.2.3' externalNativeBuild { cmake { cFlags '-DHAVE_INTTYPES_H' diff --git a/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt b/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt index 0b2457da..ae78855a 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt @@ -427,9 +427,10 @@ class BaresipService: Service() { if (this::nm.isInitialized) nm.cancelAll() if (this::wl.isInitialized && wl.isHeld) wl.release() if (this::fl.isInitialized && fl.isHeld) fl.release() - if (IS_SERVICE_RUNNING) - baresipStop(false) - else if (RESTARTING) + if (IS_SERVICE_RUNNING) { + baresipStop(forceStop) + if (!forceStop) forceStop = true + } else if (RESTARTING) restart() } @@ -452,6 +453,7 @@ class BaresipService: Service() { val DEFAULT_CHANNEL_ID = "com.tutpro.baresip.default" val HIGH_CHANNEL_ID = "com.tutpro.baresip.high" var disconnected = false + var forceStop = false } diff --git a/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt index 32bb5695..daff4611 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt @@ -860,9 +860,10 @@ class MainActivity : AppCompatActivity() { ACCOUNTS_CODE -> { uaAdapter.notifyDataSetChanged() - if ((aorSpinner.selectedItemPosition == -1) && (uas.size > 0)) - aorSpinner.setSelection(0) - if (aorSpinner.selectedItemPosition >= 0) { + if (uas.size > 0) { + if ((aorSpinner.selectedItemPosition == -1) || + (aorSpinner.selectedItemPosition >= uas.size)) + aorSpinner.setSelection(0) val acc = uas[aorSpinner.selectedItemPosition].account if (acc.vmUri != "") { if (acc.vmNew > 0) @@ -873,6 +874,8 @@ class MainActivity : AppCompatActivity() { } else { voicemailButton.visibility = View.INVISIBLE } + } else { + aorSpinner.setSelection(-1) } baresipService.setAction("UpdateNotification") startService(baresipService)