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" /> +