|
1 | 1 | package pub.devrel.easypermissions;
|
2 | 2 |
|
| 3 | +import android.app.Activity; |
3 | 4 | import android.app.Dialog;
|
4 | 5 | import android.content.DialogInterface;
|
5 | 6 | import android.os.Build;
|
6 | 7 | import android.support.annotation.RequiresApi;
|
7 |
| -import android.support.v4.app.ActivityCompat; |
8 | 8 | import android.support.v4.app.Fragment;
|
9 |
| -import android.support.v4.app.FragmentActivity; |
10 | 9 |
|
11 | 10 | import java.util.Arrays;
|
12 | 11 |
|
| 12 | +import pub.devrel.easypermissions.helper.PermissionHelper; |
| 13 | + |
13 | 14 | /**
|
14 | 15 | * Click listener for either {@link RationaleDialogFragment} or {@link RationaleDialogFragmentCompat}.
|
15 | 16 | */
|
@@ -52,18 +53,16 @@ class RationaleDialogClickListener implements Dialog.OnClickListener {
|
52 | 53 | public void onClick(DialogInterface dialog, int which) {
|
53 | 54 | if (which == Dialog.BUTTON_POSITIVE) {
|
54 | 55 | if (mHost instanceof Fragment) {
|
55 |
| - ((Fragment) mHost).requestPermissions(mConfig.permissions, mConfig.requestCode); |
| 56 | + PermissionHelper.newInstance((Fragment) mHost).directRequestPermissions( |
| 57 | + mConfig.requestCode, mConfig.permissions); |
56 | 58 | } else if (mHost instanceof android.app.Fragment) {
|
57 |
| - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { |
58 |
| - ((android.app.Fragment) mHost) |
59 |
| - .requestPermissions(mConfig.permissions, mConfig.requestCode); |
60 |
| - } else { |
61 |
| - throw new IllegalArgumentException( |
62 |
| - "Target SDK needs to be greater than 23 if caller is android.app.Fragment"); |
63 |
| - } |
64 |
| - } else if (mHost instanceof FragmentActivity) { |
65 |
| - ActivityCompat.requestPermissions( |
66 |
| - (FragmentActivity) mHost, mConfig.permissions, mConfig.requestCode); |
| 59 | + PermissionHelper.newInstance((android.app.Fragment) mHost).directRequestPermissions( |
| 60 | + mConfig.requestCode, mConfig.permissions); |
| 61 | + } else if (mHost instanceof Activity) { |
| 62 | + PermissionHelper.newInstance((Activity) mHost).directRequestPermissions( |
| 63 | + mConfig.requestCode, mConfig.permissions); |
| 64 | + } else { |
| 65 | + throw new RuntimeException("Host must be an Activity or Fragment!"); |
67 | 66 | }
|
68 | 67 | } else {
|
69 | 68 | notifyPermissionDenied();
|
|
0 commit comments