Skip to content

Commit bc7772a

Browse files
committed
Moved permission check and request to PermissionUtils
1 parent 21634cb commit bc7772a

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package org.wordpress.android.util;
2+
3+
import android.Manifest.permission;
4+
import android.app.Activity;
5+
import android.content.pm.PackageManager;
6+
import android.support.v4.app.ActivityCompat;
7+
import android.support.v4.content.ContextCompat;
8+
9+
import java.util.ArrayList;
10+
import java.util.List;
11+
12+
public class PermissionUtils {
13+
/**
14+
* Check for permissions, request them if they're not granted.
15+
*
16+
* @return true if permissions are already granted, else request them and return false.
17+
*/
18+
private static boolean checkAndRequestPermissions(Activity activity, int requestCode, String[] permissionList) {
19+
List<String> toRequest = new ArrayList<>();
20+
for (String permission : permissionList) {
21+
if (ContextCompat.checkSelfPermission(activity, permission) != PackageManager.PERMISSION_GRANTED) {
22+
toRequest.add(permission);
23+
}
24+
}
25+
if (toRequest.size() > 0) {
26+
String[] requestedPermissions = toRequest.toArray(new String[toRequest.size()]);
27+
ActivityCompat.requestPermissions(activity, requestedPermissions, requestCode);
28+
return false;
29+
}
30+
return true;
31+
}
32+
33+
public static boolean checkAndRequestCameraAndStoragePermissions(Activity activity, int requestCode) {
34+
return checkAndRequestPermissions(activity, requestCode, new String[]{
35+
permission.WRITE_EXTERNAL_STORAGE,
36+
permission.CAMERA
37+
});
38+
}
39+
40+
public static boolean checkAndRequestStoragePermission(Activity activity, int requestCode) {
41+
return checkAndRequestPermissions(activity, requestCode, new String[]{
42+
permission.WRITE_EXTERNAL_STORAGE
43+
});
44+
}
45+
46+
public static boolean checkLocationPermissions(Activity activity, int requestCode) {
47+
return checkAndRequestPermissions(activity, requestCode, new String[]{
48+
permission.ACCESS_FINE_LOCATION,
49+
permission.ACCESS_COARSE_LOCATION
50+
});
51+
}
52+
}

0 commit comments

Comments
 (0)