Example usage for com.badlogic.gdx.utils JsonValue setNext

List of usage examples for com.badlogic.gdx.utils JsonValue setNext

Introduction

In this page you can find the example usage for com.badlogic.gdx.utils JsonValue setNext.

Prototype

public void setNext(JsonValue next) 

Source Link

Usage

From source file:com.o2d.pkayjava.editor.data.migrations.migrators.VersionMigTo009.java

License:Apache License

private void setNewKeyToJson(JsonValue container, String newKey, String oldKey, JsonValue newVal) {
    JsonValue oldVal = container.get(oldKey);
    if (oldVal.prev != null)
        oldVal.prev.setNext(newVal);/*w w  w .j  a  v  a  2  s .c o  m*/
    if (oldVal.next != null)
        oldVal.next.setPrev(newVal);
    newVal.setPrev(oldVal.prev);
    newVal.setNext(oldVal.next);
    newVal.name = newKey;
}

From source file:com.trgk.touchwave.menuscene.RankingLoadScene.java

License:Open Source License

@Override
public void act(float dt) {
    super.act(dt);

    final TGWindow rankingWindow = parent.rankingWindow;
    final FBService fb = FBService.getInstance();
    final GameLogger logger = GameLogger.getInstance();

    // Get user permission
    if (currentState == -1) {
        currentState = 0;// w ww  . ja  v a2  s  .  c  o  m
        if (!logger.notifiedRankingRealName) {
            getSceneManager().setCurrentScene(new FBAlertScene(this));
            logger.notifiedRankingRealName = true;
            logger.saveGameLog();
            return;
        }
    }

    // Get user ID
    if (currentState == 0) {
        if (logger.maxScore == -1)
            currentState = 6;
        else {
            if (fb.isLogonRead())
                currentState = 2;
            else {
                fb.loginRead();
                currentState = 1;
            }
        }
    }

    // Wait for fb read login
    if (currentState == 1) {
        if (!fb.isBusy()) {
            if (fb.getLastActionResult() != FBService.Result.SUCCESS) {
                postErrorMsg("?? ??  .", 0);
                currentState = 6; // Skip user status
            } else
                currentState = 2;
        }
    }

    // Post user data
    if (currentState == 2) {
        String reqURL = serverDomain + "ranking/";
        HttpRequestBuilder requestBuilder = new HttpRequestBuilder();

        JsonValue requestBodyJson = new JsonValue(JsonValue.ValueType.object);

        JsonValue fbIDValue = new JsonValue(fb.userID);
        JsonValue fbNicknameValue = new JsonValue(fb.username);
        JsonValue maxScoreValue = new JsonValue(GameLogger.getInstance().maxScore);
        JsonValue accessToken = new JsonValue(fb.getAccessToken());

        fbIDValue.setName("fbID");
        fbNicknameValue.setName("fbNickname");
        maxScoreValue.setName("maxScore");
        accessToken.setName("accessToken");

        requestBodyJson.child = fbIDValue;
        fbIDValue.setNext(fbNicknameValue);
        fbNicknameValue.setNext(maxScoreValue);
        maxScoreValue.setNext(accessToken);

        String requestBody = requestBodyJson.toJson(JsonWriter.OutputType.json);

        final Net.HttpRequest httpRequest = requestBuilder.newRequest().method(Net.HttpMethods.PUT).url(reqURL)
                .header(HttpRequestHeader.ContentType, "application/json").content(requestBody).build();
        currentState = 3; // Wait for http request to complete

        Gdx.net.sendHttpRequest(httpRequest, new Net.HttpResponseListener() {
            @Override
            public void handleHttpResponse(Net.HttpResponse httpResponse) {
                currentState = 4;
            }

            @Override
            public void failed(Throwable t) {
                postErrorMsg(" ?? .", 0);
                currentState = 6;
            }

            @Override
            public void cancelled() {
                postErrorMsg(" ?? .", 0);
                currentState = 6;
            }
        });
    }

    // Get user ranking
    if (currentState == 4) {
        String reqURL = String.format(Locale.ENGLISH, serverDomain + "ranking/%d", fb.userID);
        HttpRequestBuilder requestBuilder = new HttpRequestBuilder();
        final Net.HttpRequest httpRequest = requestBuilder.newRequest().method(Net.HttpMethods.GET).url(reqURL)
                .build();
        currentState = 5;
        Gdx.net.sendHttpRequest(httpRequest, new Net.HttpResponseListener() {
            @Override
            public void handleHttpResponse(Net.HttpResponse httpResponse) {
                JsonReader reader = new JsonReader();
                JsonValue result = reader.parse(httpResponse.getResultAsString());

                if (result.isObject() && result.get("userRank") != null) {
                    int userRank = result.getInt("userRank");
                    int maxScore = result.getInt("maxScore");
                    rankingWindow.addActor(
                            new RankingScene.RankingEntry(userRank, fb.username, maxScore, Color.BLUE, 0));
                    currentState = 6;
                } else {
                    postErrorMsg(" ?? .", 0);
                    currentState = 6;
                }
            }

            @Override
            public void failed(Throwable t) {
                postErrorMsg(" ?? .", 0);
                currentState = 6;
            }

            @Override
            public void cancelled() {
                postErrorMsg(" ?? .", 0);
                currentState = 6;
            }
        });
    }

    // Get total ranking
    if (currentState == 6) {
        String reqURL = serverDomain + "ranking/";
        HttpRequestBuilder requestBuilder = new HttpRequestBuilder();
        final Net.HttpRequest httpRequest = requestBuilder.newRequest().method(Net.HttpMethods.GET).url(reqURL)
                .build();
        currentState = 7;

        Gdx.net.sendHttpRequest(httpRequest, new Net.HttpResponseListener() {
            @Override
            public void handleHttpResponse(Net.HttpResponse httpResponse) {
                JsonReader reader = new JsonReader();
                JsonValue result = reader.parse(httpResponse.getResultAsString());

                if (result.isObject() && result.get("rankings") != null) {
                    JsonValue rankingArray = result.get("rankings");
                    JsonValue rankingEntry = rankingArray.child;
                    int entryID = 1;
                    while (rankingEntry != null) {
                        rankingWindow.addActor(
                                new RankingScene.RankingEntry(entryID, rankingEntry.getString("fbNickname"),
                                        rankingEntry.getInt("maxScore"), Color.BLACK, entryID));
                        rankingEntry = rankingEntry.next;
                        entryID++;

                        if (entryID == 20)
                            break;
                    }
                    currentState = 8;
                } else {
                    postErrorMsg("? ? .", 1);
                    currentState = 8;
                }
            }

            @Override
            public void failed(Throwable t) {
                postErrorMsg("? ? .", 1);
                currentState = 8;
            }

            @Override
            public void cancelled() {
                postErrorMsg("? ? .", 1);
                currentState = 8;
            }
        });
    }

    if (currentState == 8) {
        fb.logout();
        gotoParent();
        currentState = 9;
    }

}