From a10e02ecdf34a79fc2cd1e91c53308501a20e5a2 Mon Sep 17 00:00:00 2001 From: geeksville Date: Sun, 19 Apr 2020 09:48:12 -0700 Subject: [PATCH] old versions of androids never grant new permissions. Don't warn user about this. --- .../main/java/com/geeksville/mesh/MainActivity.kt | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/geeksville/mesh/MainActivity.kt b/app/src/main/java/com/geeksville/mesh/MainActivity.kt index e849fd8b6..f8cb48d29 100644 --- a/app/src/main/java/com/geeksville/mesh/MainActivity.kt +++ b/app/src/main/java/com/geeksville/mesh/MainActivity.kt @@ -227,7 +227,20 @@ class MainActivity : AppCompatActivity(), Logging, ) { super.onRequestPermissionsResult(requestCode, permissions, grantResults) - if (grantResults.contains(PackageManager.PERMISSION_DENIED)) { + // Older versions of android don't know about these permissions - ignore failure to grant + val ignoredPermissions = arrayOf( + Manifest.permission.ACCESS_COARSE_LOCATION, + Manifest.permission.REQUEST_COMPANION_RUN_IN_BACKGROUND, + Manifest.permission.REQUEST_COMPANION_USE_DATA_IN_BACKGROUND + ) + + val deniedPermissions = permissions.filterIndexed { index, name -> + grantResults[index] == PackageManager.PERMISSION_DENIED && + !ignoredPermissions.contains(name) + } + + if (deniedPermissions.isNotEmpty()) { + warn("Denied permissions: ${deniedPermissions.joinToString(",")}") Toast.makeText( this, getString(R.string.permission_missing),