From ccd274fe9e03d06491cfb4df376704c713a6912d Mon Sep 17 00:00:00 2001 From: M66B Date: Wed, 10 Feb 2021 18:24:45 +0100 Subject: [PATCH] Debug info: Android permissions --- app/src/main/java/eu/faircode/email/Log.java | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/faircode/email/Log.java b/app/src/main/java/eu/faircode/email/Log.java index 18f2eea5ae..a908f043ee 100644 --- a/app/src/main/java/eu/faircode/email/Log.java +++ b/app/src/main/java/eu/faircode/email/Log.java @@ -29,6 +29,8 @@ import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; import android.content.res.Configuration; import android.content.res.Resources; import android.database.sqlite.SQLiteFullException; @@ -1105,7 +1107,7 @@ public class Log { return true; while (ex != null) { - for (StackTraceElement ste :stack) + for (StackTraceElement ste : stack) if (ste.getClassName().startsWith(BuildConfig.APPLICATION_ID)) return true; ex = ex.getCause(); @@ -1478,6 +1480,22 @@ public class Log { sb.append("\r\n"); + try { + PackageInfo pi = context.getPackageManager() + .getPackageInfo(BuildConfig.APPLICATION_ID, PackageManager.GET_PERMISSIONS); + for (int i = 0; i < pi.requestedPermissions.length; i++) + if (pi.requestedPermissions[i] != null && + pi.requestedPermissions[i].startsWith("android.permission.")) { + boolean granted = ((pi.requestedPermissionsFlags[i] & PackageInfo.REQUESTED_PERMISSION_GRANTED) != 0); + sb.append(pi.requestedPermissions[i].replace("android.permission.", "")) + .append('=').append(granted).append("\r\n"); + } + } catch (Throwable ex) { + sb.append(ex.toString()).append("\r\n"); + } + + sb.append("\r\n"); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { try { // https://developer.android.com/reference/android/app/ApplicationExitInfo