From 275814f96f0f0f817dde8a27a1ba31de1668f0f7 Mon Sep 17 00:00:00 2001 From: Juha Heinanen Date: Thu, 2 Sep 2021 12:18:27 +0300 Subject: [PATCH] Cleaner handling of first start --- .../kotlin/com/tutpro/baresip/MainActivity.kt | 32 +++++++++++-------- 1 file changed, 19 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 fbe32f7e..9c9b1569 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt @@ -93,6 +93,7 @@ class MainActivity : AppCompatActivity() { private var resumeUap = "" private var resumeCall: Call? = null private var resumeAction = "" + private var firstRun = false @SuppressLint("ClickableViewAccessibility") override fun onCreate(savedInstanceState: Bundle?) { @@ -624,17 +625,15 @@ class MainActivity : AppCompatActivity() { else if (!BaresipService.isServiceRunning) if (File(filesDir.absolutePath + "/accounts").exists()) { - val accounts = String(Utils.getFileContents(filesDir.absolutePath + "/accounts")!!, - Charsets.UTF_8).lines().toMutableList() + val accounts = String( + Utils.getFileContents(filesDir.absolutePath + "/accounts")!!, + Charsets.UTF_8 + ).lines().toMutableList() askPasswords(accounts) } else { // Baresip is started for the first time - if (!Utils.checkPermission(this, Manifest.permission.RECORD_AUDIO)) - Utils.requestPermission(this, Manifest.permission.RECORD_AUDIO, - RECORD_PERMISSION_REQUEST_CODE) - else - // Some old devices have granted Mic permission without a need to ask - startBaresip() + firstRun = true + startBaresip() } intent.removeExtra("action") @@ -649,6 +648,16 @@ class MainActivity : AppCompatActivity() { else volumeControlStream = AudioManager.STREAM_VOICE_CALL + window.decorView.post { + if (firstRun) { + if (!Utils.checkPermission(this, Manifest.permission.RECORD_AUDIO)) + Utils.requestPermission( + this, Manifest.permission.RECORD_AUDIO, RECORD_PERMISSION_REQUEST_CODE + ) + firstRun = false + } + } + } // OnCreate override fun onNewIntent(intent: Intent) { @@ -1233,13 +1242,10 @@ class MainActivity : AppCompatActivity() { when (requestCode) { - RECORD_PERMISSION_REQUEST_CODE -> { + RECORD_PERMISSION_REQUEST_CODE -> if ((grantResults.isNotEmpty()) && (grantResults[0] != PackageManager.PERMISSION_GRANTED)) Utils.alertView(this, getString(R.string.notice), - getString(R.string.no_calls), ::startBaresip) - else - startBaresip() - } + getString(R.string.no_calls)) BACKUP_PERMISSION_REQUEST_CODE -> if ((grantResults.isNotEmpty()) && (grantResults[0] == PackageManager.PERMISSION_GRANTED))