From 21df2e48858e4405c1fbc3f20ef8f00035d60aab Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 6 Jun 2022 17:33:47 +0200 Subject: [PATCH] Debug: persistent URIs --- .../faircode/email/FragmentOptionsMisc.java | 32 +++++++++++++++++++ .../main/res/layout/fragment_options_misc.xml | 12 ++++++- app/src/main/res/values/strings.xml | 1 + 3 files changed, 44 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java b/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java index f6c754b367..74fd1b50b1 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java @@ -26,6 +26,7 @@ import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; +import android.content.UriPermission; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PermissionGroupInfo; @@ -193,6 +194,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc private Button btnFontMap; private Button btnCiphers; private Button btnFiles; + private Button btnUris; private Button btnAllPermissions; private TextView tvPermissions; @@ -367,6 +369,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc btnFontMap = view.findViewById(R.id.btnFontMap); btnCiphers = view.findViewById(R.id.btnCiphers); btnFiles = view.findViewById(R.id.btnFiles); + btnUris = view.findViewById(R.id.btnUris); btnAllPermissions = view.findViewById(R.id.btnAllPermissions); tvPermissions = view.findViewById(R.id.tvPermissions); @@ -1413,6 +1416,35 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc } }); + btnUris.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + SpannableStringBuilder ssb = new SpannableStringBuilderEx(); + List permissions = v.getContext().getContentResolver().getPersistedUriPermissions(); + for (UriPermission permission : permissions) { + ssb.append(permission.getUri().toString()); + ssb.append('\u00a0'); + if (permission.isReadPermission()) + ssb.append("r"); + if (permission.isWritePermission()) + ssb.append("w"); + ssb.append('\n'); + } + + new AlertDialog.Builder(v.getContext()) + .setIcon(R.drawable.twotone_info_24) + .setTitle(R.string.title_advanced_all_permissions) + .setMessage(ssb) + .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + // Do nothing + } + }) + .show(); + } + }); + btnAllPermissions.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/res/layout/fragment_options_misc.xml b/app/src/main/res/layout/fragment_options_misc.xml index d3a252ffbb..3551252a9c 100644 --- a/app/src/main/res/layout/fragment_options_misc.xml +++ b/app/src/main/res/layout/fragment_options_misc.xml @@ -1643,6 +1643,16 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/btnCiphers" /> +