List of usage examples for com.badlogic.gdx.utils JsonValue setNext
public void setNext(JsonValue next)
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; } }