Advertisement
Guest User

Untitled

a guest
Feb 20th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.04 KB | None | 0 0
  1. PermissionManager() {
  2. // Empty constructor
  3. }
  4.  
  5. // Requestcode for the permissions
  6. public static final int REQUEST_CODE_GALLERY = 1992;
  7. // initialize the subject
  8. private PublishSubject<Boolean> mediaPermissionSubject = PublishSubject.create();
  9.  
  10. /**
  11. * Function to check for permissions.
  12. * @param activity -Activity from which the permissions are requested
  13. * @return boolean observable - Observable which emits booleans
  14. */
  15.  
  16. public Observable<Boolean> checkForMediaPermissions(Activity activity) {
  17. if (checkPermissions(activity, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE})) {
  18. return Observable.just(true);
  19. }
  20.  
  21. ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
  22. REQUEST_CODE_GALLERY);
  23. return mediaPermissionSubject;
  24. }
  25.  
  26. /**
  27. * Function to pass onRequestPermissionResult callback results.
  28. *
  29. * @param int - requestcode
  30. * @param String[] - array of permissions
  31. * @param int[] - the array of grantresults
  32. */
  33.  
  34. public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[]
  35. grantResults) {
  36. switch (requestCode) {
  37. case REQUEST_CODE_GALLERY:
  38. mediaPermissionSubject.onNext(checkAllPermissionsGranted(grantResults));
  39. break;
  40. }
  41. }
  42.  
  43. /**
  44. * Helper Function to check permissions.
  45. *
  46. * @param activity - activity from which the permissions are requested
  47. * @param String[] - array of permissions
  48. */
  49.  
  50. private boolean checkPermissions(Activity activity, @NonNull String[] permissions) {
  51. for (String permission : permissions) {
  52. if (ActivityCompat.checkSelfPermission(activity, permission) != PackageManager.PERMISSION_GRANTED) {
  53. return false;
  54. }
  55. }
  56. return true;
  57. }
  58.  
  59. /**
  60. * Helper Function to remove subscriptions.
  61. */
  62.  
  63. public void removeSubscriptions(){
  64. mediaPermissionSubject.unsubscribeOn(AndroidSchedulers.mainThread());
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement