Пример #1
0
  public void logoutUser() {
    AsyncHttpClient client = new AsyncHttpClient();
    String token = ApiHelper.getSessionToken(context);
    client.addHeader("Authorization", token);

    client.delete(
        this.getApplicationContext(),
        ApiHelper.getLocalUrlForApi(getResources()) + "sessions",
        new AsyncHttpResponseHandler() {

          @Override
          public void onStart() {}

          @Override
          public void onSuccess(int statusCode, Header[] headers, byte[] response) {
            Intent intent = new Intent(MainActivity.this.context, LoginActivity.class);
            startActivity(intent);
            finish();

            Toast toast = Toast.makeText(MainActivity.this.context, "Goodbye.", Toast.LENGTH_LONG);
            toast.show();
          }

          @Override
          public void onFailure(
              int statusCode, Header[] headers, byte[] errorResponse, Throwable e) {
            String responseText = null;

            try {
              if (!ErrorHandle.isNetworkConnected(errorResponse)) {
                ErrorHandle.displayNetworkErrorModal(MainActivity.this);

              } else {
                responseText = new JSONObject(new String(errorResponse)).getString("reason");
                if (ErrorHandle.isTokenExpired(responseText)) {
                  ErrorHandle.displayTokenModal(MainActivity.this);
                }
              }
            } catch (JSONException j) {

            }
          }

          @Override
          public void onRetry(int retryNo) {}
        });
  }