From db4cec01a93e92c0920e04daa2803ee3c8907669 Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 12 Dec 2019 13:34:04 +0100 Subject: [PATCH] Simplification --- .../java/eu/faircode/email/FragmentGmail.java | 15 ++------------- app/src/main/java/eu/faircode/email/Helper.java | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentGmail.java b/app/src/main/java/eu/faircode/email/FragmentGmail.java index 5d6b8d8b3c..c0ea9cb7cf 100644 --- a/app/src/main/java/eu/faircode/email/FragmentGmail.java +++ b/app/src/main/java/eu/faircode/email/FragmentGmail.java @@ -88,17 +88,12 @@ public class FragmentGmail extends FragmentBase { tvError = view.findViewById(R.id.tvError); grpError = view.findViewById(R.id.grpError); - List permissions = new ArrayList<>(); - permissions.add(Manifest.permission.READ_CONTACTS); // profile - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) - permissions.add(Manifest.permission.GET_ACCOUNTS); - // Wire controls btnGrant.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - requestPermissions(permissions.toArray(new String[0]), ActivitySetup.REQUEST_CHOOSE_ACCOUNT); + requestPermissions(Helper.getOAuthPermissions(), ActivitySetup.REQUEST_CHOOSE_ACCOUNT); } }); @@ -133,13 +128,7 @@ public class FragmentGmail extends FragmentBase { pbSelect.setVisibility(View.GONE); grpError.setVisibility(View.GONE); - boolean granted = true; - for (String permission : permissions) - if (!hasPermission(permission)) { - granted = false; - break; - } - + boolean granted = Helper.hasPermissions(getContext(), Helper.getOAuthPermissions()); setGranted(granted); return view; diff --git a/app/src/main/java/eu/faircode/email/Helper.java b/app/src/main/java/eu/faircode/email/Helper.java index 0a4659b7b0..4e7f4c3418 100644 --- a/app/src/main/java/eu/faircode/email/Helper.java +++ b/app/src/main/java/eu/faircode/email/Helper.java @@ -19,6 +19,7 @@ package eu.faircode.email; Copyright 2018-2019 by Marcel Bokhorst (M66B) */ +import android.Manifest; import android.app.Activity; import android.app.KeyguardManager; import android.content.ActivityNotFoundException; @@ -179,6 +180,21 @@ public class Helper { return (ContextCompat.checkSelfPermission(context, name) == PackageManager.PERMISSION_GRANTED); } + static boolean hasPermissions(Context context, String[] permissions) { + for (String permission : permissions) + if (!hasPermission(context, permission)) + return false; + return true; + } + + static String[] getOAuthPermissions() { + List permissions = new ArrayList<>(); + permissions.add(Manifest.permission.READ_CONTACTS); // profile + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) + permissions.add(Manifest.permission.GET_ACCOUNTS); + return permissions.toArray(new String[0]); + } + static boolean hasCustomTabs(Context context, Uri uri) { PackageManager pm = context.getPackageManager(); Intent view = new Intent(Intent.ACTION_VIEW, uri);