From 5db35154df99462866061c16ef4b64a9366f1362 Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 25 Jun 2022 14:22:31 +0200 Subject: [PATCH] Explicitly request read URI permission --- app/src/main/java/eu/faircode/email/ActivitySetup.java | 2 ++ app/src/main/java/eu/faircode/email/ActivitySignature.java | 1 + app/src/main/java/eu/faircode/email/FragmentCompose.java | 2 ++ app/src/main/java/eu/faircode/email/FragmentContacts.java | 1 + .../main/java/eu/faircode/email/FragmentOptionsEncryption.java | 1 + app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java | 1 + app/src/main/java/eu/faircode/email/FragmentRules.java | 1 + 7 files changed, 9 insertions(+) diff --git a/app/src/main/java/eu/faircode/email/ActivitySetup.java b/app/src/main/java/eu/faircode/email/ActivitySetup.java index 7aacea9414..fd4ec19536 100644 --- a/app/src/main/java/eu/faircode/email/ActivitySetup.java +++ b/app/src/main/java/eu/faircode/email/ActivitySetup.java @@ -1752,6 +1752,7 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac private void onImportCertificate(Intent intent) { Intent open = new Intent(Intent.ACTION_GET_CONTENT); open.addCategory(Intent.CATEGORY_OPENABLE); + open.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); open.setType("*/*"); if (open.resolveActivity(getPackageManager()) == null) // system whitelisted ToastEx.makeText(this, R.string.title_no_saf, Toast.LENGTH_LONG).show(); @@ -1776,6 +1777,7 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac private static Intent getIntentImport() { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENABLE); + intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); intent.setType("*/*"); return intent; } diff --git a/app/src/main/java/eu/faircode/email/ActivitySignature.java b/app/src/main/java/eu/faircode/email/ActivitySignature.java index be90d15fba..43f0c82e34 100644 --- a/app/src/main/java/eu/faircode/email/ActivitySignature.java +++ b/app/src/main/java/eu/faircode/email/ActivitySignature.java @@ -257,6 +257,7 @@ public class ActivitySignature extends ActivityBase { private void onMenuSelectFile() { Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); intent.addCategory(Intent.CATEGORY_OPENABLE); + intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); intent.setType("text/*"); Helper.openAdvanced(intent); startActivityForResult(intent, REQUEST_FILE); diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index f8d078ca84..9933bd5ba0 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -2596,6 +2596,7 @@ public class FragmentCompose extends FragmentBase { private void onActionAttachment() { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENABLE); + intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); intent.setType("*/*"); intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); PackageManager pm = getContext().getPackageManager(); @@ -3041,6 +3042,7 @@ public class FragmentCompose extends FragmentBase { Log.i("Using file picker"); Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENABLE); + intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); intent.setType("image/*"); intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); if (intent.resolveActivity(pm) == null) // GET_CONTENT whitelisted diff --git a/app/src/main/java/eu/faircode/email/FragmentContacts.java b/app/src/main/java/eu/faircode/email/FragmentContacts.java index 1b54763940..39349736c5 100644 --- a/app/src/main/java/eu/faircode/email/FragmentContacts.java +++ b/app/src/main/java/eu/faircode/email/FragmentContacts.java @@ -396,6 +396,7 @@ public class FragmentContacts extends FragmentBase { } else { Intent open = new Intent(Intent.ACTION_GET_CONTENT); open.addCategory(Intent.CATEGORY_OPENABLE); + open.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); open.setType("*/*"); if (open.resolveActivity(pm) == null) // system whitelisted ToastEx.makeText(context, R.string.title_no_saf, Toast.LENGTH_LONG).show(); diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsEncryption.java b/app/src/main/java/eu/faircode/email/FragmentOptionsEncryption.java index 419ecce3b5..8b514331e5 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsEncryption.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsEncryption.java @@ -360,6 +360,7 @@ public class FragmentOptionsEncryption extends FragmentBase PackageManager pm = context.getPackageManager(); Intent open = new Intent(Intent.ACTION_GET_CONTENT); open.addCategory(Intent.CATEGORY_OPENABLE); + open.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); open.setType("*/*"); if (open.resolveActivity(pm) == null) // system whitelisted ToastEx.makeText(context, R.string.title_no_saf, Toast.LENGTH_LONG).show(); diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java b/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java index 7b11f65f7a..f67ba34076 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java @@ -1175,6 +1175,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc public void onClick(View v) { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENABLE); + intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); intent.setType("*/*"); Intent choose = Helper.getChooser(v.getContext(), intent); getActivity().startActivityForResult(choose, ActivitySetup.REQUEST_IMPORT_PROVIDERS); diff --git a/app/src/main/java/eu/faircode/email/FragmentRules.java b/app/src/main/java/eu/faircode/email/FragmentRules.java index 69ef477c7b..cbdbe75478 100644 --- a/app/src/main/java/eu/faircode/email/FragmentRules.java +++ b/app/src/main/java/eu/faircode/email/FragmentRules.java @@ -307,6 +307,7 @@ public class FragmentRules extends FragmentBase { private void onMenuImport() { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENABLE); + intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); intent.setType("*/*"); startActivityForResult(intent, REQUEST_IMPORT); }