1
0
Fork 0
mirror of https://github.com/M66B/FairEmail.git synced 2025-02-27 16:33:47 +00:00

Simplification

This commit is contained in:
M66B 2019-12-12 13:34:04 +01:00
parent f142b90efe
commit db4cec01a9
2 changed files with 18 additions and 13 deletions

View file

@ -88,17 +88,12 @@ public class FragmentGmail extends FragmentBase {
tvError = view.findViewById(R.id.tvError);
grpError = view.findViewById(R.id.grpError);
List<String> 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;

View file

@ -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<String> 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);