11package com .proxerme .library .connection ;
22
3+ import android .support .annotation .CheckResult ;
34import android .support .annotation .IntRange ;
45import android .support .annotation .NonNull ;
6+ import android .support .annotation .RequiresPermission ;
7+ import android .support .annotation .WorkerThread ;
58
69import com .afollestad .bridge .Bridge ;
710import com .afollestad .bridge .BridgeException ;
@@ -48,6 +51,7 @@ public class ProxerConnection {
4851 * @return A {@link NewsRequest} to work with.
4952 */
5053 @ NonNull
54+ @ CheckResult
5155 public static NewsRequest loadNews (@ IntRange (from = 1 ) int page ) {
5256 return new NewsRequest (page );
5357 }
@@ -59,6 +63,7 @@ public static NewsRequest loadNews(@IntRange(from = 1) int page) {
5963 * @return A {@link LoginRequest} to work with.
6064 */
6165 @ NonNull
66+ @ CheckResult
6267 public static LoginRequest login (@ NonNull LoginUser user ) {
6368 return new LoginRequest (user );
6469 }
@@ -69,6 +74,7 @@ public static LoginRequest login(@NonNull LoginUser user) {
6974 * @return A {@link LogoutRequest} to work with.
7075 */
7176 @ NonNull
77+ @ CheckResult
7278 public static LogoutRequest logout () {
7379 return new LogoutRequest ();
7480 }
@@ -80,6 +86,7 @@ public static LogoutRequest logout() {
8086 * @return A {@link ConferencesRequest} to work with.
8187 */
8288 @ NonNull
89+ @ CheckResult
8390 public static ConferencesRequest loadConferences (@ IntRange (from = 1 ) int page ) {
8491 return new ConferencesRequest (page );
8592 }
@@ -184,7 +191,7 @@ public static abstract class ProxerRequest<T> {
184191 * @return The {@link RequestBuilder} to use for further invocations.
185192 */
186193 @ NonNull
187- protected abstract RequestBuilder buildRequest (Bridge bridge );
194+ protected abstract RequestBuilder buildRequest (@ NonNull Bridge bridge );
188195
189196 /**
190197 * Returns the {@link ProxerTag} of this request.
@@ -198,7 +205,8 @@ public static abstract class ProxerRequest<T> {
198205 * @see #executeSynchronized()
199206 * @param callback The callback for notifications about the Result.
200207 */
201- public void execute (@ NonNull final ResultCallback <T > callback ) {
208+ @ RequiresPermission (android .Manifest .permission .INTERNET )
209+ public final void execute (@ NonNull final ResultCallback <T > callback ) {
202210 buildRequest (Bridge .client ()).tag (getTag ()).request (new Callback () {
203211 @ Override
204212 public void response (Request request , Response response , BridgeException exception ) {
@@ -225,7 +233,9 @@ public void response(Request request, Response response, BridgeException excepti
225233 * @return The result, specified by this class.
226234 * @throws ProxerException An Exception, which might occur, while executing the request.
227235 */
228- public T executeSynchronized () throws ProxerException {
236+ @ WorkerThread
237+ @ RequiresPermission (android .Manifest .permission .INTERNET )
238+ public final T executeSynchronized () throws ProxerException {
229239 try {
230240 JSONObject result = buildRequest (Bridge .client ()).tag (getTag () + 1 ).asJsonObject ();
231241
@@ -259,7 +269,7 @@ public NewsRequest(@IntRange(from = 1) int page) {
259269
260270 @ NonNull
261271 @ Override
262- protected RequestBuilder buildRequest (Bridge bridge ) {
272+ protected RequestBuilder buildRequest (@ NonNull Bridge bridge ) {
263273 return bridge .get (UrlHolder .getNewsUrl (page ));
264274 }
265275
@@ -288,7 +298,7 @@ public LoginRequest(@NonNull LoginUser user) {
288298
289299 @ NonNull
290300 @ Override
291- protected RequestBuilder buildRequest (Bridge bridge ) {
301+ protected RequestBuilder buildRequest (@ NonNull Bridge bridge ) {
292302 Form loginCredentials = new Form ().add (FORM_USERNAME , user .getUsername ())
293303 .add (FORM_PASSWORD , user .getPassword ());
294304
@@ -317,7 +327,7 @@ public static class LogoutRequest extends ProxerRequest<Void> {
317327
318328 @ NonNull
319329 @ Override
320- protected RequestBuilder buildRequest (Bridge bridge ) {
330+ protected RequestBuilder buildRequest (@ NonNull Bridge bridge ) {
321331 return bridge .get (UrlHolder .getLogoutUrl ());
322332 }
323333
@@ -346,7 +356,7 @@ public ConferencesRequest(@IntRange(from = 1) int page) {
346356
347357 @ NonNull
348358 @ Override
349- protected RequestBuilder buildRequest (Bridge bridge ) {
359+ protected RequestBuilder buildRequest (@ NonNull Bridge bridge ) {
350360 return bridge .get (UrlHolder .getConferencesUrl (page ));
351361 }
352362
0 commit comments