From fbf5d56bab27d8d49619b0145fb76eced9ea382a Mon Sep 17 00:00:00 2001 From: Juha Heinanen Date: Wed, 1 Apr 2020 13:08:51 +0300 Subject: [PATCH] - Ask for microphone permission as the first thing when baresip starts. --- .../kotlin/com/tutpro/baresip/MainActivity.kt | 33 ++++++++++--------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt index 8c98df97..e75015c3 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt @@ -52,6 +52,7 @@ class MainActivity : AppCompatActivity() { internal lateinit var speakerIcon: MenuItem internal var restart = false + internal var atStartup = false override fun onCreate(savedInstanceState: Bundle?) { @@ -425,22 +426,22 @@ class MainActivity : AppCompatActivity() { baresipService = Intent(this@MainActivity, BaresipService::class.java) - if (!BaresipService.isServiceRunning) { - if (File(filesDir.absolutePath + "/accounts").exists()) { - val accounts = String(Utils.getFileContents(filesDir.absolutePath + "/accounts")!!, - Charsets.UTF_8).lines().toMutableList() - askAorPasswords(accounts) - } else { - startBaresip() - } - } - - if (intent.hasExtra("onStartup")) - moveTaskToBack(true) + atStartup = intent.hasExtra("onStartup") if (intent.hasExtra("action")) // MainActivity was not visible when call, message, or transfer request came in handleIntent(intent) + else + if (!BaresipService.isServiceRunning) + if (File(filesDir.absolutePath + "/accounts").exists()) { + val accounts = String(Utils.getFileContents(filesDir.absolutePath + "/accounts")!!, + Charsets.UTF_8).lines().toMutableList() + askAorPasswords(accounts) + } else { + // Baresip is started for the first time + Utils.requestPermission(this, Manifest.permission.RECORD_AUDIO, + RECORD_PERMISSION_REQUEST_CODE) + } } // OnCreate @@ -914,10 +915,12 @@ class MainActivity : AppCompatActivity() { when (requestCode) { - RECORD_PERMISSION_REQUEST_CODE -> + RECORD_PERMISSION_REQUEST_CODE -> { if ((grantResults.size > 0) && (grantResults[0] != PackageManager.PERMISSION_GRANTED)) Toast.makeText(applicationContext, getString(R.string.no_calls), Toast.LENGTH_LONG).show() + startBaresip() + } BACKUP_PERMISSION_REQUEST_CODE -> if ((grantResults.size > 0) && (grantResults[0] == PackageManager.PERMISSION_GRANTED)) @@ -1013,6 +1016,8 @@ class MainActivity : AppCompatActivity() { private fun startBaresip() { baresipService.setAction("Start") startService(baresipService) + if (atStartup) + moveTaskToBack(true) } private fun backup(password: String) { @@ -1090,8 +1095,6 @@ class MainActivity : AppCompatActivity() { } baresipService.setAction("UpdateNotification") startService(baresipService) - Utils.requestPermission(this, Manifest.permission.RECORD_AUDIO, - RECORD_PERMISSION_REQUEST_CODE) } ACCOUNT_CODE -> {