From 45937ee69ef6e36d53f947f0ffe9ea7eb789230f Mon Sep 17 00:00:00 2001 From: Juha Heinanen Date: Tue, 21 Feb 2023 04:37:06 +0200 Subject: [PATCH] Final permissions touches --- .../kotlin/com/tutpro/baresip/MainActivity.kt | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt index 0d4eca6e..be7bab59 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt @@ -90,6 +90,7 @@ class MainActivity : AppCompatActivity() { private lateinit var contactsRequest: ActivityResultLauncher private lateinit var callsRequest: ActivityResultLauncher private lateinit var comDevChangedListener: AudioManager.OnCommunicationDeviceChangedListener + private lateinit var permissions: Array private var callHandler: Handler = Handler(Looper.getMainLooper()) private var callRunnable: Runnable? = null @@ -678,10 +679,15 @@ class MainActivity : AppCompatActivity() { } } + permissions = if (Build.VERSION.SDK_INT >= 31) + arrayOf(RECORD_AUDIO, BLUETOOTH_CONNECT) + else + arrayOf(RECORD_AUDIO) + requestPermissionsLauncher = registerForActivityResult(ActivityResultContracts.RequestMultiplePermissions()) { isGranted: Map -> if (firstRun && isGranted.isEmpty()) - askPermissions(arrayOf(RECORD_AUDIO, BLUETOOTH_CONNECT)) + askPermissions(permissions) } if (Preferences(applicationContext).displayTheme != AppCompatDelegate.getDefaultNightMode()) { @@ -695,13 +701,13 @@ class MainActivity : AppCompatActivity() { super.onStart() Log.e(TAG, "Main onStart") - if (!Utils.checkPermissions(this, arrayOf(RECORD_AUDIO, BLUETOOTH_CONNECT))) + if (!Utils.checkPermissions(this, permissions)) if (ActivityCompat.shouldShowRequestPermissionRationale(this, RECORD_AUDIO) || - ActivityCompat.shouldShowRequestPermissionRationale(this, BLUETOOTH_CONNECT)) { - askPermissions(arrayOf(RECORD_AUDIO, BLUETOOTH_CONNECT)) + ((BLUETOOTH_CONNECT in permissions) && + ActivityCompat.shouldShowRequestPermissionRationale(this, BLUETOOTH_CONNECT))) { + askPermissions(permissions) } else { - requestPermissionsLauncher.launch(arrayOf(RECORD_AUDIO, BLUETOOTH_CONNECT) - ) + requestPermissionsLauncher.launch(permissions) } val action = intent.getStringExtra("action")