Skip to content

Commit

Permalink
Merge branch 'develop' into issue/3791-support-library-23.2
Browse files Browse the repository at this point in the history
# Conflicts:
#	WordPress/src/main/res/layout/me_fragment.xml
  • Loading branch information
kwonye committed May 10, 2016
2 parents 140b53d + 81c3fe1 commit 30c98a2
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 1 deletion.
2 changes: 1 addition & 1 deletion WordPressUtils/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ buildscript {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0'
classpath 'com.android.tools.build:gradle:2.1.0'
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@

import android.Manifest.permission;
import android.app.Activity;
import android.app.Fragment;
import android.content.Context;
import android.content.pm.PackageManager;
import android.support.v13.app.FragmentCompat;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;

Expand Down Expand Up @@ -30,23 +33,65 @@ private static boolean checkAndRequestPermissions(Activity activity, int request
return true;
}

/**
* 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(Fragment fragment, int requestCode, String[] permissionList) {
List<String> toRequest = new ArrayList<>();
for (String permission : permissionList) {
Context context = fragment.getActivity();
if (context != null && ContextCompat.checkSelfPermission(context, permission) != PackageManager
.PERMISSION_GRANTED) {
toRequest.add(permission);
}
}
if (toRequest.size() > 0) {
String[] requestedPermissions = toRequest.toArray(new String[toRequest.size()]);
FragmentCompat.requestPermissions(fragment, 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 checkAndRequestCameraAndStoragePermissions(Fragment fragment, int requestCode) {
return checkAndRequestPermissions(fragment, 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 checkAndRequestStoragePermission(Fragment fragment, int requestCode) {
return checkAndRequestPermissions(fragment, 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
});
}

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

0 comments on commit 30c98a2

Please sign in to comment.