Skip to content

Commit efc730e

Browse files
committed
代码优化
1 parent 11504e6 commit efc730e

File tree

2 files changed

+57
-58
lines changed

2 files changed

+57
-58
lines changed

Demo/src/main/java/com/hyj/permission/demo/PermissionNativeFragment.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,15 @@ private void fragmentSimplePermission() {
6767
* 多个权限申请
6868
*/
6969
private void fragmentMultiPermission() {
70-
int flag = ContextCompat.checkSelfPermission(getContext(), Manifest.permission.READ_CONTACTS);
71-
if (flag != PackageManager.PERMISSION_GRANTED) {
70+
boolean hasPermission = true;
71+
for (String permission : PermsEnm.LOCATION_CONTACTS.getPermissions()) {
72+
if (PackageManager.PERMISSION_GRANTED != ContextCompat.checkSelfPermission(getContext(), permission)) {
73+
hasPermission = false;
74+
break;
75+
}
76+
}
77+
78+
if (!hasPermission) {
7279
requestPermissions(PermsEnm.LOCATION_CONTACTS.getPermissions(), PermsEnm.LOCATION_CONTACTS.getRequestCode());
7380
}
7481
}

Permission/src/main/java/com/hyj/lib/permission/PermissionManager.java

Lines changed: 48 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -46,26 +46,14 @@ public static <T> void openGPSLocation(final T actFmg, final IGPSCallBack callBa
4646
GPSHelper.openGPSLocation(actFmg, callBack);
4747
}
4848

49-
/**
50-
* 检查所请求的权限是否被授予
51-
*
52-
* @param activity 上下文对象
53-
* @param permInfo 权限请求信息
54-
* @return
55-
*/
56-
public static boolean hasPermissions(@NonNull Activity activity, IPermissionInfo permInfo) {
57-
PermUtils.checkIPermInfo(permInfo);
58-
return hasPermissions(activity, permInfo.getPermissions());
59-
}
60-
6149
/**
6250
* 检查所请求的权限是否被授予
6351
*
6452
* @param activity 上下文对象
6553
* @param perms 权限请求信息
6654
* @return
6755
*/
68-
public static boolean hasPermissions(@NonNull Activity activity, String... perms) {
56+
private static boolean hasPermissions(@NonNull Activity activity, String... perms) {
6957
PermUtils.checkActivity(activity);
7058
PermUtils.checkPermissioins(perms);
7159

@@ -97,13 +85,17 @@ public static void requestPermissions(@NonNull Activity activity, @NonNull IPerm
9785
}
9886

9987
/**
100-
* 申请动态权限
88+
* <pre>
89+
* 申请动态权限
90+
* 此方法将在后期版本中删除,请调用 requestPermissions(Activity, IPermissionCallback, IPermissionInfo)
91+
* </pre>
10192
*
10293
* @param activity 上下文对象
10394
* @param callback 权限处理结果回调
10495
* @param requestCode 权限请求码
10596
* @param perms 权限请求信息
10697
*/
98+
@Deprecated
10799
public static void requestPermissions(@NonNull Activity activity, @NonNull IPermissionCallback callback, int requestCode, String... perms) {
108100
PermUtils.checkActivity(activity);
109101
PermUtils.checkPermissioins(perms);
@@ -137,48 +129,6 @@ private static void notifyHasPermissions(Activity activity, int requestCode, Str
137129
onRequestPermissionsResult(activity, requestCode, perms, grantResults);
138130
}
139131

140-
/**
141-
* <pre>
142-
* 处理拒绝且不再询问之后,进入应用权限设置页面设置后
143-
* 返回App的页面,接收返回结果的处理
144-
* </pre>
145-
*
146-
* @param activity
147-
* @param requestCode
148-
*/
149-
public static void onActivityResult(Activity activity, int requestCode) {
150-
GPSHelper.onActivityResult(activity, requestCode);
151-
152-
String callBackKey = PermUtils.generateCallBackKey(activity, requestCode);
153-
IPermissionCallback callback = mCallBack.get(callBackKey);
154-
if (null == callback) {
155-
return;
156-
}
157-
158-
List<String> granted = new ArrayList<>();//已经被授权的权限
159-
List<String> denied = new ArrayList<>();//已经被拒绝的权限
160-
161-
List<String> perms = mPerms.get(callBackKey);
162-
for (String perm : perms) {
163-
if (hasPermissions(activity, perm)) {
164-
granted.add(perm);
165-
} else {
166-
denied.add(perm);
167-
}
168-
}
169-
170-
if (!denied.isEmpty()) { //被拒绝的授权
171-
callback.onPermissionDenied(requestCode, denied);
172-
}
173-
174-
if (!granted.isEmpty() && denied.isEmpty()) { //全部通过了
175-
callback.onPermissionGranted(requestCode, granted);
176-
}
177-
178-
mCallBack.remove(callBackKey);
179-
mPerms.remove(callback);
180-
}
181-
182132
/**
183133
* <pre>
184134
* 处理权限请求结果方法
@@ -252,4 +202,46 @@ private static void callBcakMethod(Activity activity, int requestCode, List<Stri
252202
private static boolean somePermissionPermanetlyDenied(Activity activity, List<String> deniedPermissions) {
253203
return PermissionHelper.newInstance(activity).somePermissionPermanetlyDenied(deniedPermissions);
254204
}
205+
206+
/**
207+
* <pre>
208+
* 处理拒绝且不再询问之后,进入应用权限设置页面设置后
209+
* 返回App的页面,接收返回结果的处理
210+
* </pre>
211+
*
212+
* @param activity
213+
* @param requestCode
214+
*/
215+
public static void onActivityResult(Activity activity, int requestCode) {
216+
GPSHelper.onActivityResult(activity, requestCode);
217+
218+
String callBackKey = PermUtils.generateCallBackKey(activity, requestCode);
219+
IPermissionCallback callback = mCallBack.get(callBackKey);
220+
if (null == callback) {
221+
return;
222+
}
223+
224+
List<String> granted = new ArrayList<>();//已经被授权的权限
225+
List<String> denied = new ArrayList<>();//已经被拒绝的权限
226+
227+
List<String> perms = mPerms.get(callBackKey);
228+
for (String perm : perms) {
229+
if (hasPermissions(activity, perm)) {
230+
granted.add(perm);
231+
} else {
232+
denied.add(perm);
233+
}
234+
}
235+
236+
if (!denied.isEmpty()) { //被拒绝的授权
237+
callback.onPermissionDenied(requestCode, denied);
238+
}
239+
240+
if (!granted.isEmpty() && denied.isEmpty()) { //全部通过了
241+
callback.onPermissionGranted(requestCode, granted);
242+
}
243+
244+
mCallBack.remove(callBackKey);
245+
mPerms.remove(callback);
246+
}
255247
}

0 commit comments

Comments
 (0)