@@ -90,41 +90,50 @@ public static boolean hasPermissions(@NonNull Context context,
9090 }
9191
9292 /**
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 .
9494 *
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
96101 */
97102 public static void requestPermissions (
98103 @ NonNull Activity host , @ NonNull String rationale ,
99104 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 ());
102109 }
103110
104111 /**
105112 * Request permissions from a Support Fragment with standard OK/Cancel buttons.
106113 *
107- * @see #requestPermissions(Activity, String, int, int, int, String...)
114+ * @see #requestPermissions(Activity, String, int, String...)
108115 */
109116 public static void requestPermissions (
110117 @ NonNull Fragment host , @ NonNull String rationale ,
111118 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 ());
115123 }
116124
117125 /**
118126 * Request permissions from a standard Fragment with standard OK/Cancel buttons.
119127 *
120- * @see #requestPermissions(Activity, String, int, int, int, String...)
128+ * @see #requestPermissions(Activity, String, int, String...)
121129 */
122130 public static void requestPermissions (
123131 @ NonNull android .app .Fragment host , @ NonNull String rationale ,
124132 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 ());
128137 }
129138
130139 /**
@@ -138,56 +147,80 @@ public static void requestPermissions(
138147 * @param requestCode request code to track this request, must be < 256.
139148 * @param perms a set of permissions to be requested.
140149 * @see Manifest.permission
150+ * @deprecated use {@link #requestPermissions(PermissionRequest)} instead
141151 */
152+ @ Deprecated
142153 public static void requestPermissions (
143154 @ NonNull Activity host , @ NonNull String rationale ,
144155 @ StringRes int positiveButton , @ StringRes int negativeButton ,
145156 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 ());
149163 }
150164
151165 /**
152166 * Request permissions from a Support Fragment.
153167 *
154168 * @see #requestPermissions(Activity, String, int, int, int, String...)
169+ * @deprecated use {@link #requestPermissions(PermissionRequest)} instead
155170 */
171+ @ Deprecated
156172 public static void requestPermissions (
157173 @ NonNull Fragment host , @ NonNull String rationale ,
158174 @ StringRes int positiveButton , @ StringRes int negativeButton ,
159175 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 ());
163182 }
164183
165184 /**
166185 * @see #requestPermissions(Activity, String, int, int, int, String...)
186+ * @deprecated use {@link #requestPermissions(PermissionRequest)} instead
167187 */
188+ @ Deprecated
168189 public static void requestPermissions (
169190 @ NonNull android .app .Fragment host , @ NonNull String rationale ,
170191 @ StringRes int positiveButton , @ StringRes int negativeButton ,
171192 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 ());
175199 }
176200
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 ) {
181208
182209 // 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 ());
185213 return ;
186214 }
187215
188216 // 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 ());
191224 }
192225
193226 /**
0 commit comments