@@ -90,41 +90,50 @@ public static boolean hasPermissions(@NonNull Context context,
90
90
}
91
91
92
92
/**
93
- * Request permissions from an Activity with standard OK/Cancel buttons .
93
+ * Request a set of permissions, showing a rationale if the system requests it .
94
94
*
95
- * @see #requestPermissions(Activity, String, int, int, int, String...)
95
+ * @param host requesting context.
96
+ * @param rationale a message explaining why the application needs this set of permissions;
97
+ * will be displayed if the user rejects the request the first time.
98
+ * @param requestCode request code to track this request, must be < 256.
99
+ * @param perms a set of permissions to be requested.
100
+ * @see Manifest.permission
96
101
*/
97
102
public static void requestPermissions (
98
103
@ NonNull Activity host , @ NonNull String rationale ,
99
104
int requestCode , @ Size (min = 1 ) @ NonNull String ... perms ) {
100
- requestPermissions (host , rationale , android .R .string .ok , android .R .string .cancel ,
101
- requestCode , perms );
105
+ requestPermissions (
106
+ new PermissionRequest .Builder (host , requestCode , perms )
107
+ .setRationale (rationale )
108
+ .build ());
102
109
}
103
110
104
111
/**
105
112
* Request permissions from a Support Fragment with standard OK/Cancel buttons.
106
113
*
107
- * @see #requestPermissions(Activity, String, int, int, int, String...)
114
+ * @see #requestPermissions(Activity, String, int, String...)
108
115
*/
109
116
public static void requestPermissions (
110
117
@ NonNull Fragment host , @ NonNull String rationale ,
111
118
int requestCode , @ Size (min = 1 ) @ NonNull String ... perms ) {
112
-
113
- requestPermissions (host , rationale , android .R .string .ok , android .R .string .cancel ,
114
- requestCode , perms );
119
+ requestPermissions (
120
+ new PermissionRequest .Builder (host , requestCode , perms )
121
+ .setRationale (rationale )
122
+ .build ());
115
123
}
116
124
117
125
/**
118
126
* Request permissions from a standard Fragment with standard OK/Cancel buttons.
119
127
*
120
- * @see #requestPermissions(Activity, String, int, int, int, String...)
128
+ * @see #requestPermissions(Activity, String, int, String...)
121
129
*/
122
130
public static void requestPermissions (
123
131
@ NonNull android .app .Fragment host , @ NonNull String rationale ,
124
132
int requestCode , @ Size (min = 1 ) @ NonNull String ... perms ) {
125
-
126
- requestPermissions (host , rationale , android .R .string .ok , android .R .string .cancel ,
127
- requestCode , perms );
133
+ requestPermissions (
134
+ new PermissionRequest .Builder (host , requestCode , perms )
135
+ .setRationale (rationale )
136
+ .build ());
128
137
}
129
138
130
139
/**
@@ -138,56 +147,80 @@ public static void requestPermissions(
138
147
* @param requestCode request code to track this request, must be < 256.
139
148
* @param perms a set of permissions to be requested.
140
149
* @see Manifest.permission
150
+ * @deprecated use {@link #requestPermissions(PermissionRequest)} instead
141
151
*/
152
+ @ Deprecated
142
153
public static void requestPermissions (
143
154
@ NonNull Activity host , @ NonNull String rationale ,
144
155
@ StringRes int positiveButton , @ StringRes int negativeButton ,
145
156
int requestCode , @ Size (min = 1 ) @ NonNull String ... perms ) {
146
- requestPermissions (PermissionHelper .newInstance (host ), rationale ,
147
- positiveButton , negativeButton ,
148
- requestCode , perms );
157
+ requestPermissions (
158
+ new PermissionRequest .Builder (host , requestCode , perms )
159
+ .setRationale (rationale )
160
+ .setPositiveButtonText (positiveButton )
161
+ .setNegativeButtonText (negativeButton )
162
+ .build ());
149
163
}
150
164
151
165
/**
152
166
* Request permissions from a Support Fragment.
153
167
*
154
168
* @see #requestPermissions(Activity, String, int, int, int, String...)
169
+ * @deprecated use {@link #requestPermissions(PermissionRequest)} instead
155
170
*/
171
+ @ Deprecated
156
172
public static void requestPermissions (
157
173
@ NonNull Fragment host , @ NonNull String rationale ,
158
174
@ StringRes int positiveButton , @ StringRes int negativeButton ,
159
175
int requestCode , @ Size (min = 1 ) @ NonNull String ... perms ) {
160
- requestPermissions (PermissionHelper .newInstance (host ), rationale ,
161
- positiveButton , negativeButton ,
162
- requestCode , perms );
176
+ requestPermissions (
177
+ new PermissionRequest .Builder (host , requestCode , perms )
178
+ .setRationale (rationale )
179
+ .setPositiveButtonText (positiveButton )
180
+ .setNegativeButtonText (negativeButton )
181
+ .build ());
163
182
}
164
183
165
184
/**
166
185
* @see #requestPermissions(Activity, String, int, int, int, String...)
186
+ * @deprecated use {@link #requestPermissions(PermissionRequest)} instead
167
187
*/
188
+ @ Deprecated
168
189
public static void requestPermissions (
169
190
@ NonNull android .app .Fragment host , @ NonNull String rationale ,
170
191
@ StringRes int positiveButton , @ StringRes int negativeButton ,
171
192
int requestCode , @ Size (min = 1 ) @ NonNull String ... perms ) {
172
- requestPermissions (PermissionHelper .newInstance (host ), rationale ,
173
- positiveButton , negativeButton ,
174
- requestCode , perms );
193
+ requestPermissions (
194
+ new PermissionRequest .Builder (host , requestCode , perms )
195
+ .setRationale (rationale )
196
+ .setPositiveButtonText (positiveButton )
197
+ .setNegativeButtonText (negativeButton )
198
+ .build ());
175
199
}
176
200
177
- private static void requestPermissions (
178
- @ NonNull PermissionHelper helper , @ NonNull String rationale ,
179
- @ StringRes int positiveButton , @ StringRes int negativeButton ,
180
- int requestCode , @ Size (min = 1 ) @ NonNull String ... perms ) {
201
+ /**
202
+ * Request a set of permissions.
203
+ *
204
+ * @param request the permission request
205
+ * @see PermissionRequest
206
+ */
207
+ public static void requestPermissions (PermissionRequest request ) {
181
208
182
209
// Check for permissions before dispatching the request
183
- if (hasPermissions (helper .getContext (), perms )) {
184
- notifyAlreadyHasPermissions (helper .getHost (), requestCode , perms );
210
+ if (hasPermissions (request .getHelper ().getContext (), request .getPerms ())) {
211
+ notifyAlreadyHasPermissions (
212
+ request .getHelper ().getHost (), request .getRequestCode (), request .getPerms ());
185
213
return ;
186
214
}
187
215
188
216
// Request permissions
189
- helper .requestPermissions (rationale , positiveButton ,
190
- negativeButton , requestCode , perms );
217
+ request .getHelper ().requestPermissions (
218
+ request .getRationale (),
219
+ request .getPositiveButtonText (),
220
+ request .getNegativeButtonText (),
221
+ request .getTheme (),
222
+ request .getRequestCode (),
223
+ request .getPerms ());
191
224
}
192
225
193
226
/**
0 commit comments