BaseFragment 权限不使用反射

This commit is contained in:
jk 2025-11-20 16:55:29 +08:00
parent df3481c924
commit eb12cf44be
1 changed files with 22 additions and 52 deletions

View File

@ -1,10 +1,7 @@
package com.tfq.library.base; package com.tfq.library.base;
import static com.tfq.library.app.BaseConstants.REQUEST_PER;
import android.content.Context; import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -21,7 +18,6 @@ import com.hjq.toast.Toaster;
import com.tfq.library.R; import com.tfq.library.R;
import com.tfq.library.permission.PermissionConverter; import com.tfq.library.permission.PermissionConverter;
import com.tfq.library.view.Animation; import com.tfq.library.view.Animation;
import com.tfq.library.view.AuthDialog;
import java.util.List; import java.util.List;
@ -63,49 +59,36 @@ public abstract class BaseFragment extends Fragment {
Animation.startAnimation(requireActivity()); Animation.startAnimation(requireActivity());
} }
/** /**
* 权限请求 * 权限请求
*
* @param iPermissions 单个权限
* @param listener 回调
*/ */
protected void requestPermission(IPermission[] per,Listener listener) { protected void requestPermission(IPermission iPermissions, Listener listener) {
requestPermission(per, content, listener); XXPermissions.with(getActivity())
.permission(iPermissions)
.request(new OnPermissionCallback() {
@Override
public void onResult(@NonNull List<IPermission> grantedList, @NonNull List<IPermission> deniedList) {
boolean allGranted = deniedList.isEmpty();
if (!allGranted) {
return;
} }
listener.success();
protected void requestPermission(IPermission[] per, String content, Listener listener) { showGrantedPermissionsToast(requireActivity(), grantedList);
if (!TextUtils.isEmpty(content)) {
this.content = content;
} }
requestPermission(per, content, true, listener); });
}
protected void requestPermission(IPermission[] per, String content, boolean req_permission, Listener listener) {
if (!TextUtils.isEmpty(content)) {
this.content = content;
}
requestPermission(per, req_permission, listener);
} }
/** /**
* 申请权限 * 权限请求
* *
* @param permission 权限集合 * @param iPermissions 权限数组
* @param req_permission 申请权限之前是否提示默认false不提示 * @param listener 回调
* @param listener 监听
*/ */
protected void requestPermission(IPermission[] permission, boolean req_permission, Listener listener) { protected void requestPermission(IPermission[] iPermissions, Listener listener) {
if (!req_permission) {//不弹窗直接申请权限
requestPermission(permission, null ,listener);
} else {//先弹窗,再去申请
new AuthDialog(getActivity(), REQUEST_PER, new AuthDialog.Listener() {
@Override
public void callBack() {
//同意申请权限,去申请
requestPermission(permission, null ,listener);
}
}).show();
}
}
private void requestPermission(IPermission[] iPermissions, Object object, Listener listener) {
XXPermissions.with(getActivity()) XXPermissions.with(getActivity())
.permissions(iPermissions) .permissions(iPermissions)
.request(new OnPermissionCallback() { .request(new OnPermissionCallback() {
@ -118,19 +101,6 @@ public abstract class BaseFragment extends Fragment {
listener.success(); listener.success();
showGrantedPermissionsToast(requireActivity(), grantedList); showGrantedPermissionsToast(requireActivity(), grantedList);
} }
// @Override
// public void onDenied(@NonNull List<String> permissions, boolean doNotAskAgain) {
// if (show_doNotAskAgain) {
// if (doNotAskAgain) {
// //如果是被永久拒绝就跳转到应用权限系统设置页面
// XXPermissions.startPermissionActivity(getActivity(), iPermissionList);
// } else {
// //获取权限失败
// }
// }
// }
}); });
} }