Skip to content

Commit f3c09fd

Browse files
committed
add PermissionResultHelper
1 parent 5a2e69e commit f3c09fd

File tree

1 file changed

+130
-0
lines changed

1 file changed

+130
-0
lines changed
Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
package cn.f_ms.runtimepermission.simple;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
6+
/**
7+
* Permission Request Result Wrapper Helper
8+
*
9+
* @author _Ms
10+
* @time 2017/5/26
11+
*/
12+
public final class PermissionResultHelper {
13+
14+
private final List<Permission> mPermissions;
15+
16+
public PermissionResultHelper(List<Permission> permissions) {
17+
if (permissions == null) {
18+
throw new NullPointerException();
19+
}
20+
21+
mPermissions = permissions;
22+
}
23+
24+
/**
25+
* get all permission result
26+
*/
27+
public List<Permission> getPermissions() {
28+
return new ArrayList<>(mPermissions);
29+
}
30+
31+
/**
32+
* get all of grant permission result
33+
*/
34+
public List<Permission> getGrantPermissions() {
35+
36+
ArrayList<Permission> grantPermissions = new ArrayList<>();
37+
38+
for (Permission permission : mPermissions) {
39+
if (permission.isGranted) {
40+
grantPermissions.add(permission);
41+
}
42+
}
43+
return grantPermissions;
44+
}
45+
46+
/**
47+
* get all of refuse permission result
48+
*/
49+
public List<Permission> getRefusePermissions() {
50+
ArrayList<Permission> refusePermissions = new ArrayList<>();
51+
52+
for (Permission permission : mPermissions) {
53+
if (!permission.isGranted) {
54+
refusePermissions.add(permission);
55+
}
56+
}
57+
return refusePermissions;
58+
}
59+
60+
/**
61+
* get all of never ask again permission result
62+
*/
63+
public List<Permission> getNeverAskAgainPermissions() {
64+
ArrayList<Permission> neverAskAgainPerimssions = new ArrayList<>();
65+
66+
for (Permission permission : mPermissions) {
67+
if (!permission.isGranted
68+
&& !permission.isShouldShowRequestPermissionRationale) {
69+
neverAskAgainPerimssions.add(permission);
70+
}
71+
}
72+
return neverAskAgainPerimssions;
73+
}
74+
75+
/**
76+
* get all of should show request permission rationale permissions
77+
*/
78+
public List<Permission> getShouldShowRequestPermissionRationalePermissions() {
79+
80+
ArrayList<Permission> shouldShowRequestPermissionRationalePermissions = new ArrayList<>();
81+
82+
for (Permission permission : mPermissions) {
83+
if (!permission.isGranted
84+
&& permission.isShouldShowRequestPermissionRationale) {
85+
shouldShowRequestPermissionRationalePermissions.add(permission);
86+
}
87+
}
88+
return shouldShowRequestPermissionRationalePermissions;
89+
}
90+
91+
public boolean isExistRefust() { return !isAllGrant(); }
92+
93+
public boolean isExistShouldShowRequestPermissionRationale() {
94+
for (Permission permission : mPermissions) {
95+
if (!permission.isGranted
96+
&& permission.isShouldShowRequestPermissionRationale) {
97+
return true;
98+
}
99+
}
100+
return false;
101+
}
102+
103+
public boolean isExistNeverAskAgain() {
104+
for (Permission permission : mPermissions) {
105+
if (!permission.isGranted
106+
&& !permission.isShouldShowRequestPermissionRationale) {
107+
return true;
108+
}
109+
}
110+
return false;
111+
}
112+
113+
public boolean isAllGrant() {
114+
for (Permission permission : mPermissions) {
115+
if (!permission.isGranted) {
116+
return false;
117+
}
118+
}
119+
return true;
120+
}
121+
122+
public boolean isAllRefuse() {
123+
for (Permission permission : mPermissions) {
124+
if (permission.isGranted) {
125+
return false;
126+
}
127+
}
128+
return true;
129+
}
130+
}

0 commit comments

Comments
 (0)