fixes issues related to location permission denial even when allowed inside in-app camera flow (#5313)

* fixes issues related to location permission denial even when allowed inside in-app camera flow

* fixes related to in app camera location permissions
This commit is contained in:
Srishti Rohatgi 2023-09-28 19:37:28 +05:30 committed by GitHub
parent 8d604a25fa
commit 9525409b9b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
18 changed files with 442 additions and 251 deletions

View file

@ -38,7 +38,6 @@ object DownloadUtils {
}
PermissionUtils.checkPermissionsAndPerformAction(
activity,
PermissionUtils.PERMISSIONS_STORAGE,
{ enqueueRequest(activity, req) },
{
Toast.makeText(
@ -48,8 +47,9 @@ object DownloadUtils {
).show()
},
R.string.storage_permission,
R.string.write_storage_permission_rationale
)
R.string.write_storage_permission_rationale,
*PermissionUtils.PERMISSIONS_STORAGE
)
}
private fun enqueueRequest(activity: Activity, req: DownloadManager.Request) {

View file

@ -100,11 +100,11 @@ public class PermissionUtils {
* @param rationaleMessage rationale message to be displayed when permission was denied. It
* can be an invalid @StringRes
*/
public static void checkPermissionsAndPerformAction(Activity activity, String[] permissions,
public static void checkPermissionsAndPerformAction(Activity activity,
Runnable onPermissionGranted, @StringRes int rationaleTitle,
@StringRes int rationaleMessage) {
checkPermissionsAndPerformAction(activity, permissions, onPermissionGranted, null,
rationaleTitle, rationaleMessage);
@StringRes int rationaleMessage, String... permissions) {
checkPermissionsAndPerformAction(activity, onPermissionGranted, null,
rationaleTitle, rationaleMessage, permissions);
}
/**
@ -125,9 +125,9 @@ public class PermissionUtils {
* @param rationaleTitle rationale title to be displayed when permission was denied
* @param rationaleMessage rationale message to be displayed when permission was denied
*/
public static void checkPermissionsAndPerformAction(Activity activity, String[] permissions,
public static void checkPermissionsAndPerformAction(Activity activity,
Runnable onPermissionGranted, Runnable onPermissionDenied, @StringRes int rationaleTitle,
@StringRes int rationaleMessage) {
@StringRes int rationaleMessage, String... permissions) {
Dexter.withActivity(activity)
.withPermissions(permissions)
.withListener(new MultiplePermissionsListener() {
@ -135,6 +135,7 @@ public class PermissionUtils {
public void onPermissionsChecked(MultiplePermissionsReport report) {
if (report.areAllPermissionsGranted()) {
onPermissionGranted.run();
return;
}
if (report.isAnyPermissionPermanentlyDenied()) {
// permission is denied permanently, we will show user a dialog message.