Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void run() {
- if (isListenersCorrect()) {
- if (isNeedToAskPermissions()) {
- checkPermissions();
- } else {
- successListener.run();
- }
- } else {
- throw new RuntimeException("OnPermissionSuccessListener or OnPermissionFailureListener or OnPermissionNewerAskAgainListener not implemented. Use methods: onSuccess, onFailure and onNewerAskAgain");
- }
- }
- @RequiresApi(api = Build.VERSION_CODES.M)
- private void checkPermissions() {
- final String[] permissionsForRequest = getPermissionsForRequest();
- if (permissionsForRequest.length > 0) {
- activity.requestPermissions(permissionsForRequest, PERMISSION_REQUEST_CODE);
- } else {
- successListener.run();
- }
- }
- public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
- if (requestCode == PERMISSION_REQUEST_CODE) {
- for (String permission : permissions) {
- if (isNeedToAskPermissions()) {
- if (isPermissionNotGranted(permission)) {
- if (isNeverAskAgain(permission)) {
- neverAskAgainListener.run();
- } else {
- failureListener.run();
- }
- return;
- }
- }
- }
- }
- successListener.run();
- }
- public void unsubscribe() {
- activity = null;
- if (failureListener != null) {
- failureListener = null;
- }
- if (successListener != null) {
- successListener = null;
- }
- if (neverAskAgainListener != null) {
- neverAskAgainListener = null;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement