1111import com .hjq .permissions .fragment .factory .PermissionFragmentFactoryByApp ;
1212import com .hjq .permissions .fragment .factory .PermissionFragmentFactoryBySupport ;
1313import com .hjq .permissions .manifest .AndroidManifestParser ;
14- import com .hjq .permissions .permission .PermissionType ;
14+ import com .hjq .permissions .permission .PermissionChannel ;
1515import com .hjq .permissions .permission .base .IPermission ;
1616import com .hjq .permissions .start .StartActivityAgent ;
1717import com .hjq .permissions .tools .PermissionApi ;
@@ -125,7 +125,7 @@ public static OnPermissionDescription getPermissionDescription() {
125125 @ Nullable
126126 private Fragment mAppFragment ;
127127
128- /** Support 包下的 Fragment 对象 */
128+ /** Support 库中的 Fragment 对象 */
129129 @ Nullable
130130 private android .support .v4 .app .Fragment mSupportFragment ;
131131
@@ -262,24 +262,25 @@ public void request(@Nullable OnPermissionCallback callback) {
262262 // 判断要申请的权限是否都授予了
263263 if (PermissionApi .isGrantedPermissions (context , requestList )) {
264264 // 如果是的话,就不申请权限,而是通知权限申请成功
265- permissionInterceptor .onRequestPermissionEnd (activity , true , requestList ,
266- requestList , new ArrayList <>(), callback );
265+ permissionInterceptor .onRequestPermissionEnd (activity , true , requestList , requestList , new ArrayList <>(), callback );
267266 return ;
268267 }
269268
270- // 检查 App 包下的 Fragment 是不是不可用
271- if (appFragment != null && PermissionUtils .isFragmentUnavailable (appFragment )) {
272- return ;
273- }
274-
275- // 检查 Support 包下的 Fragment 是不是不可用
276- if (supportFragment != null && PermissionUtils .isFragmentUnavailable (supportFragment )) {
277- return ;
269+ final PermissionFragmentFactory <?, ?> fragmentFactory ;
270+ if (supportFragment != null ) {
271+ if (PermissionUtils .isFragmentUnavailable (supportFragment )) {
272+ return ;
273+ }
274+ fragmentFactory = generatePermissionFragmentFactory (activity , supportFragment );
275+ } else if (appFragment != null ) {
276+ if (PermissionUtils .isFragmentUnavailable (appFragment )) {
277+ return ;
278+ }
279+ fragmentFactory = generatePermissionFragmentFactory (activity , appFragment );
280+ } else {
281+ fragmentFactory = generatePermissionFragmentFactory (activity );
278282 }
279283
280- // 创建 Fragment 工厂
281- final PermissionFragmentFactory <?, ?> fragmentFactory = generatePermissionFragmentFactory (activity , supportFragment , appFragment );
282-
283284 // 申请没有授予过的权限
284285 permissionInterceptor .onRequestPermissionStart (activity , requestList , fragmentFactory , permissionDescription , callback );
285286 }
@@ -450,7 +451,7 @@ public static void startPermissionActivity(@NonNull Activity activity,
450451 return ;
451452 }
452453 PermissionFragmentFactory <?, ?> fragmentFactory = generatePermissionFragmentFactory (activity );
453- fragmentFactory .createAndCommitFragment (permissions , PermissionType . SPECIAL , () -> {
454+ fragmentFactory .createAndCommitFragment (permissions , PermissionChannel . START_ACTIVITY_FOR_RESULT , () -> {
454455 if (PermissionUtils .isActivityUnavailable (activity )) {
455456 return ;
456457 }
@@ -513,7 +514,7 @@ public static void startPermissionActivity(@NonNull Fragment appFragment,
513514 return ;
514515 }
515516 PermissionFragmentFactory <?, ?> fragmentFactory = generatePermissionFragmentFactory (activity , appFragment );
516- fragmentFactory .createAndCommitFragment (permissions , PermissionType . SPECIAL , () -> {
517+ fragmentFactory .createAndCommitFragment (permissions , PermissionChannel . START_ACTIVITY_FOR_RESULT , () -> {
517518 if (PermissionUtils .isActivityUnavailable (activity ) || PermissionUtils .isFragmentUnavailable (appFragment )) {
518519 return ;
519520 }
@@ -576,7 +577,7 @@ public static void startPermissionActivity(@NonNull android.support.v4.app.Fragm
576577 return ;
577578 }
578579 PermissionFragmentFactory <?, ?> fragmentFactory = generatePermissionFragmentFactory (activity , supportFragment );
579- fragmentFactory .createAndCommitFragment (permissions , PermissionType . SPECIAL , () -> {
580+ fragmentFactory .createAndCommitFragment (permissions , PermissionChannel . START_ACTIVITY_FOR_RESULT , () -> {
580581 if (PermissionUtils .isActivityUnavailable (activity ) || PermissionUtils .isFragmentUnavailable (supportFragment )) {
581582 return ;
582583 }
@@ -587,23 +588,26 @@ public static void startPermissionActivity(@NonNull android.support.v4.app.Fragm
587588 /**
588589 * 创建 Fragment 工厂
589590 */
591+ @ NonNull
590592 private static PermissionFragmentFactory <?, ?> generatePermissionFragmentFactory (@ NonNull Activity activity ) {
591593 return generatePermissionFragmentFactory (activity , null , null );
592594 }
593595
596+ @ NonNull
594597 private static PermissionFragmentFactory <?, ?> generatePermissionFragmentFactory (@ NonNull Activity activity ,
595- @ Nullable android .support .v4 .app .Fragment supportFragment ) {
598+ @ Nullable android .support .v4 .app .Fragment supportFragment ) {
596599 return generatePermissionFragmentFactory (activity , supportFragment , null );
597600 }
598601
602+ @ NonNull
599603 private static PermissionFragmentFactory <?, ?> generatePermissionFragmentFactory (@ NonNull Activity activity ,
600- @ Nullable Fragment appFragment ) {
604+ @ Nullable Fragment appFragment ) {
601605 return generatePermissionFragmentFactory (activity , null , appFragment );
602606 }
603607
604608 private static PermissionFragmentFactory <?, ?> generatePermissionFragmentFactory (@ NonNull Activity activity ,
605- @ Nullable android .support .v4 .app .Fragment supportFragment ,
606- @ Nullable Fragment appFragment ) {
609+ @ Nullable android .support .v4 .app .Fragment supportFragment ,
610+ @ Nullable Fragment appFragment ) {
607611 final PermissionFragmentFactory <?, ?> fragmentFactory ;
608612 if (supportFragment != null ) {
609613 fragmentFactory = new PermissionFragmentFactoryBySupport (supportFragment .getActivity (), supportFragment .getChildFragmentManager ());
0 commit comments