Skip to content

Commit

Permalink
Moved permission check and request to PermissionUtils
Browse files Browse the repository at this point in the history
  • Loading branch information
maxme committed Oct 22, 2015
1 parent 21634cb commit bc7772a
Showing 1 changed file with 52 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package org.wordpress.android.util;

import android.Manifest.permission;
import android.app.Activity;
import android.content.pm.PackageManager;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;

import java.util.ArrayList;
import java.util.List;

public class PermissionUtils {
/**
* Check for permissions, request them if they're not granted.
*
* @return true if permissions are already granted, else request them and return false.
*/
private static boolean checkAndRequestPermissions(Activity activity, int requestCode, String[] permissionList) {
List<String> toRequest = new ArrayList<>();
for (String permission : permissionList) {
if (ContextCompat.checkSelfPermission(activity, permission) != PackageManager.PERMISSION_GRANTED) {
toRequest.add(permission);
}
}
if (toRequest.size() > 0) {
String[] requestedPermissions = toRequest.toArray(new String[toRequest.size()]);
ActivityCompat.requestPermissions(activity, requestedPermissions, requestCode);
return false;
}
return true;
}

public static boolean checkAndRequestCameraAndStoragePermissions(Activity activity, int requestCode) {
return checkAndRequestPermissions(activity, requestCode, new String[]{
permission.WRITE_EXTERNAL_STORAGE,
permission.CAMERA
});
}

public static boolean checkAndRequestStoragePermission(Activity activity, int requestCode) {
return checkAndRequestPermissions(activity, requestCode, new String[]{
permission.WRITE_EXTERNAL_STORAGE
});
}

public static boolean checkLocationPermissions(Activity activity, int requestCode) {
return checkAndRequestPermissions(activity, requestCode, new String[]{
permission.ACCESS_FINE_LOCATION,
permission.ACCESS_COARSE_LOCATION
});
}
}

0 comments on commit bc7772a

Please sign in to comment.