Final permissions touches

This commit is contained in:
Juha Heinanen
2023-02-21 04:37:06 +02:00
parent bd699ce783
commit 45937ee69e
@@ -90,6 +90,7 @@ class MainActivity : AppCompatActivity() {
private lateinit var contactsRequest: ActivityResultLauncher<Intent> private lateinit var contactsRequest: ActivityResultLauncher<Intent>
private lateinit var callsRequest: ActivityResultLauncher<Intent> private lateinit var callsRequest: ActivityResultLauncher<Intent>
private lateinit var comDevChangedListener: AudioManager.OnCommunicationDeviceChangedListener private lateinit var comDevChangedListener: AudioManager.OnCommunicationDeviceChangedListener
private lateinit var permissions: Array<String>
private var callHandler: Handler = Handler(Looper.getMainLooper()) private var callHandler: Handler = Handler(Looper.getMainLooper())
private var callRunnable: Runnable? = null 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 = requestPermissionsLauncher =
registerForActivityResult(ActivityResultContracts.RequestMultiplePermissions()) { isGranted: Map<String, Boolean> -> registerForActivityResult(ActivityResultContracts.RequestMultiplePermissions()) { isGranted: Map<String, Boolean> ->
if (firstRun && isGranted.isEmpty()) if (firstRun && isGranted.isEmpty())
askPermissions(arrayOf(RECORD_AUDIO, BLUETOOTH_CONNECT)) askPermissions(permissions)
} }
if (Preferences(applicationContext).displayTheme != AppCompatDelegate.getDefaultNightMode()) { if (Preferences(applicationContext).displayTheme != AppCompatDelegate.getDefaultNightMode()) {
@@ -695,13 +701,13 @@ class MainActivity : AppCompatActivity() {
super.onStart() super.onStart()
Log.e(TAG, "Main 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) || if (ActivityCompat.shouldShowRequestPermissionRationale(this, RECORD_AUDIO) ||
ActivityCompat.shouldShowRequestPermissionRationale(this, BLUETOOTH_CONNECT)) { ((BLUETOOTH_CONNECT in permissions) &&
askPermissions(arrayOf(RECORD_AUDIO, BLUETOOTH_CONNECT)) ActivityCompat.shouldShowRequestPermissionRationale(this, BLUETOOTH_CONNECT))) {
askPermissions(permissions)
} else { } else {
requestPermissionsLauncher.launch(arrayOf(RECORD_AUDIO, BLUETOOTH_CONNECT) requestPermissionsLauncher.launch(permissions)
)
} }
val action = intent.getStringExtra("action") val action = intent.getStringExtra("action")