From 8b58b4367d204328fa45c29cb65c4627a33a3898 Mon Sep 17 00:00:00 2001 From: Rohit Verma Date: Wed, 28 Aug 2024 20:03:57 +0530 Subject: [PATCH] add condition to check for partial access on API >= 34 It prevents invoking photo picker on UploadActivity. --- .../main/java/fr/free/nrw/commons/upload/UploadActivity.java | 3 ++- .../main/java/fr/free/nrw/commons/utils/PermissionUtils.java | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.java b/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.java index 707bf1363..eb180ec44 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.java @@ -278,7 +278,8 @@ public class UploadActivity extends BaseActivity implements UploadContract.View, public void checkStoragePermissions() { // Check if all required permissions are granted final boolean hasAllPermissions = PermissionUtils.hasPermission(this, PERMISSIONS_STORAGE); - if (hasAllPermissions) { + final boolean hasPartialAccess = PermissionUtils.hasPartialAccess(this); + if (hasAllPermissions || hasPartialAccess) { // All required permissions are granted, so enable UI elements and perform actions receiveSharedItems(); binding.cvContainerTopCard.setVisibility(View.VISIBLE); diff --git a/app/src/main/java/fr/free/nrw/commons/utils/PermissionUtils.java b/app/src/main/java/fr/free/nrw/commons/utils/PermissionUtils.java index 5fb444192..88a314fc6 100644 --- a/app/src/main/java/fr/free/nrw/commons/utils/PermissionUtils.java +++ b/app/src/main/java/fr/free/nrw/commons/utils/PermissionUtils.java @@ -76,7 +76,9 @@ public class PermissionUtils { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { return ContextCompat.checkSelfPermission(activity, permission.READ_MEDIA_VISUAL_USER_SELECTED - ) == PackageManager.PERMISSION_GRANTED; + ) == PackageManager.PERMISSION_GRANTED && ContextCompat.checkSelfPermission( + activity, permission.READ_MEDIA_IMAGES + ) == PackageManager.PERMISSION_DENIED; } return false; }