Skip to content

Commit 22a0489

Browse files
committed
Merge branch 'develop'
2 parents 2dea550 + 566d77d commit 22a0489

File tree

11 files changed

+214
-218
lines changed

11 files changed

+214
-218
lines changed

.idea/misc.xml

Lines changed: 1 addition & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 76 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ Android API_LEVEL >= 11
4444
*/
4545
compile 'com.github.imfms.simple-runtime-permission:simple-runtime-permission-rxjava2:${latest.version}'
4646
}
47-
47+
4848
## How to use
4949

5050

@@ -74,107 +74,106 @@ callback mode response request
7474
ShowRequestPermissionRationaleListener showRequestPermissionRationaleListener,
7575
String... permissions
7676
)
77-
77+
7878
- String... Permission string array, accept mulit args, recommend select from Manifest.permission.*
7979
- PermissionListener Permission request callback listener
80-
80+
8181
// When all of request permissions were granted
8282
void onAllPermissionGranted()
8383

8484
// When any permissions were refused
8585
void onPermissionRefuse(PermissionRefuseResultHelper resultHelper)
86-
87-
   - [Optional] ShowRequestPermissionRationaleListener ShowRequestPermissionRationale callback listener, can refer official document [Requesting Permissions at Run Time#Explain why the app needs permissions](https://developer.android.com/training/permissions/requesting.html#explain)
88-
89-
// When need show request permission rationale tip
90-
void onShowRequestPermissionRationale(
91-
ShowRequestPermissionRationaleControler controler,
92-
String[] permissions
93-
)
94-
95-
/*
96-
When request permission rationale refuse
97-
when ShowRequestPermissionRationaleControler.doCancel() invoke
98-
*/
99-
void onRequestPermissionRationaleRefuse(
100-
String[] permissions
101-
)
102-
103-
86+
87+
- [Optional] ShowRequestPermissionRationaleListener ShowRequestPermissionRationale callback listener, can refer official document [Requesting Permissions at Run Time#Explain why the app needs permissions](https://developer.android.com/training/permissions/requesting.html#explain)
88+
89+
// When need show request permission rationale tip
90+
void onShowRequestPermissionRationale(
91+
ShowRequestPermissionRationaleControler controler,
92+
String[] permissions
93+
)
94+
95+
/*
96+
When request permission rationale refuse
97+
when ShowRequestPermissionRationaleControler.doCancel() invoke
98+
*/
99+
void onRequestPermissionRationaleRefuse(
100+
String[] permissions
101+
)
102+
103+
104104
- String[] Need show request permission rationale permission string array
105105
- ShowRequestPermissionRationaleControler Controler
106106
- void doContinue() // Do request permission from system (user select agree)
107107
- void doCancel() // Cancel request action (user select refuse)
108-
108+
109109
4. Sample
110110

111111
> Request 'read contacts' & 'call phone' permission, When user has refused this permission(not select never tip) tell user why need this permission
112-
113-
```java
114-
SimpleRuntimePermission simplePermission = new SimpleRuntimePermission(mActivity);
115112
116-
simplePermission.request(
117-
new SimpleRuntimePermission.PermissionListener() {
118-
@Override
119-
public void onAllPermissionGranted() {
120-
Toast.makeText(mActivity, "Success, geted permission", Toast.LENGTH_SHORT).show();
121-
}
113+
```java
114+
SimpleRuntimePermissionHelper.with(mActivity)
115+
.permission(Manifest.permission.READ_CONTACTS, Manifest.permission.CALL_PHONE)
116+
.showPermissionRationaleListener(new ShowRequestPermissionRationaleListener() {
117+
@Override
118+
public void onShowRequestPermissionRationale(final ShowRequestPermissionRationaleControler controler, String[] permissions) {
119+
new AlertDialog.Builder(mActivity)
120+
.setTitle("Tips")
121+
.setMessage("Please Give Me Those Permissions")
122+
.setPositiveButton("Yes, I Will", new DialogInterface.OnClickListener() {
123+
@Override
124+
public void onClick(DialogInterface dialog, int which) {
125+
controler.doContinue();
126+
}
127+
})
128+
.setNegativeButton("Sorry, I can't", new DialogInterface.OnClickListener() {
129+
@Override
130+
public void onClick(DialogInterface dialog, int which) {
131+
controler.doCancel();
132+
}
133+
})
134+
.setCancelable(false)
135+
.create()
136+
.show();
137+
}
122138

123-
@Override
124-
public void onPermissionRefuse(PermissionRefuseResultHelper resultHelper) {
125-
Toast.makeText(mActivity, "Fail, some permission were refused", Toast.LENGTH_SHORT).show();
126-
}
139+
@Override
140+
public void onRequestPermissionRationaleRefuse(String[] permissions) {
141+
Toast.makeText(mActivity, "Well, You refused.", Toast.LENGTH_SHORT).show();
142+
}
143+
})
144+
.execute(new PermissionListener() {
145+
@Override
146+
public void onAllPermissionGranted() {
147+
Toast.makeText(mActivity, requestSuccessStr, Toast.LENGTH_SHORT).show();
127148
}
128-
, new ShowRequestPermissionRationaleListener() {
129-
@Override
130-
public void onShowRequestPermissionRationale(final ShowRequestPermissionRationaleControler controler, String[] permissions) {
131-
new AlertDialog.Builder(mActivity)
132-
.setTitle("PermissionRequestTip")
133-
.setMessage("I need those permissions, please select agree")
134-
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
135-
@Override
136-
public void onClick(DialogInterface dialog, int which) {
137-
controler.doContinue();
138-
}
139-
})
140-
.setNegativeButton("Refuse", new DialogInterface.OnClickListener() {
141-
@Override
142-
public void onClick(DialogInterface dialog, int which) {
143-
controler.doCancel();
144-
}
145-
})
146-
.create()
147-
.show();
148-
}
149149

150-
@Override
151-
public void onRequestPermissionRationaleRefuse(String[] permissions) {
152-
Toast.makeText(mActivity, "Fail, user refused request permission tip", Toast.LENGTH_SHORT).show();
153-
}
150+
@Override
151+
public void onPermissionRefuse(PermissionRefuseResultHelper resultHelper) {
152+
String str = String.format("all: %s\ngranted: %s\nrefuse:%s\nnever_ask: %s",
153+
resultHelper.getAllPermissions(),
154+
resultHelper.getGrantPermissions(),
155+
resultHelper.getRefusePermissions(),
156+
resultHelper.getNeverAskAgainPermissions()
157+
);
158+
159+
new AlertDialog.Builder(MainActivity.this)
160+
.setMessage(str)
161+
.show();
154162
}
155-
, Manifest.permission.CALL_PHONE, Manifest.permission.READ_CONTACTS
156-
);
163+
});
157164
```
158-
159-
5. For easy use, support a helper class 'SimpleRuntimePermissionHelper', it's chain mode (refer[yanzhenjie/AndPermission](https://github.com/yanzhenjie/AndPermission))
160-
```java
161-
SimpleRuntimePermissionHelper.with(SimpleRuntimePermission)
162-
.permission(...)
163-
.showPermissionRationaleListener(...)
164-
.execute(resultListener...);
165-
```
166-
165+
167166
### For RxJava1
168167

169168
1. Instance RxSimpleRuntimePermission
170169

171170
RxSimpleRuntimePermission(Activity activity)
172-
171+
173172
2. Invoke request permision method
174173
- compose Use RxJava operator 'compose' to compose request permission action, when get refuse result it will wrapper result to PermissionException for subscriber's onError()
175-
174+
176175
<T> RxSimpleRuntimePermissionTransform<T> compose(ShowRequestPermissionRationaleListener showRequestPermissionRationaleListener, String... permissions)
177-
176+
178177
- request Create observer, developer can subscribe result, when get refuse result it will wrapper result to PermissionException for subscriber's onError()
179178

180179
Observable<None> request(ShowRequestPermissionRationaleListener showRequestPermissionRationaleListener, String... permissions)
@@ -185,11 +184,11 @@ callback mode response request
185184
public final PermissionRefuseResultHelper result;
186185
}
187186
```
188-
187+
189188
3. Sample
190189

191190
> Request 'read contacts' & 'call phone' permission, When user has refused this permission(not select never tip) tell user why need this permission
192-
191+
193192
```java
194193
RxSimpleRuntimePermission rxSimpleRuntimePermission = new RxSimpleRuntimePermission(mActivity);
195194

@@ -245,7 +244,7 @@ callback mode response request
245244
}
246245
});
247246
```
248-
247+
249248

250249
### For RxJava2
251250

0 commit comments

Comments
 (0)