private void makeGraphCall() {
    // If you're using the paging URLs they will be URLEncoded, let's decode them.
    try {
      graphPath = URLDecoder.decode(graphPath, "UTF-8");
    } catch (UnsupportedEncodingException e) {
      e.printStackTrace();
    }

    String[] urlParts = graphPath.split("\\?");
    String graphAction = urlParts[0];
    GraphRequest graphRequest =
        GraphRequest.newGraphPathRequest(
            AccessToken.getCurrentAccessToken(),
            graphAction,
            new GraphRequest.Callback() {
              @Override
              public void onCompleted(GraphResponse response) {
                if (graphContext != null) {
                  if (response.getError() != null) {
                    graphContext.error(getFacebookRequestErrorResponse(response.getError()));
                  } else {
                    graphContext.success(response.getJSONObject());
                  }
                  graphPath = null;
                  graphContext = null;
                }
              }
            });

    Bundle params = graphRequest.getParameters();

    if (urlParts.length > 1) {
      String[] queries = urlParts[1].split("&");

      for (String query : queries) {
        int splitPoint = query.indexOf("=");
        if (splitPoint > 0) {
          String key = query.substring(0, splitPoint);
          String value = query.substring(splitPoint + 1, query.length());
          params.putString(key, value);
        }
      }
    }

    graphRequest.setParameters(params);
    graphRequest.executeAsync();
  }