Android Open Source - gameapi-android Leaderboards






From Project

Back to project page gameapi-android.

License

The source code is released under:

MIT License

If you think the Android project gameapi-android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.playtomic.android;
/*from ww  w .ja  v  a  2  s .c o  m*/
import java.util.ArrayList;
import org.json.JSONObject;
import org.json.JSONArray;

public class Leaderboards {

    private static String SECTION = "leaderboards";
    private static String SAVEANDLIST = "saveandlist";
    private static String SAVE = "save";
    private static String LIST = "list";
    
    /**
     * Saves your score
     * @param callback  LeaderboardSaveHandler for receiving the response and data
     */ 
    public static void save(PlayerScore score, final LeaderboardSaveHandler callback) {
        PRequest.load(SECTION, SAVE, score, new PResponseHandler() {
          
          @Override
          public void onResponse(PResponse response, JSONObject data) {
            if(response.getSuccess()) {
                callback.onSuccess(response);
            } else {
                callback.onFailure(response);
            }
          }
          
        });
    }

    /**
     * Fetches a high score table
     * @param options  ListOptions of parameters
     * @param callback  LeaderboardListHandler for receiving the response and data
     */ 
    public static void list(ListOptions options, final LeaderboardListHandler callback) {
      PRequest.load(SECTION, LIST, options, new PResponseHandler() {
          
          @Override
          public void onResponse(PResponse response, JSONObject data) {
                if(response.getSuccess()) {
                    ArrayList<PlayerScore> scores = processScores(data);
                    int numscores = data.optInt("numscores");
                    callback.onSuccess(scores, numscores, response);
                } else {
                    callback.onFailure(response);
                }
            }
          
      });
    }
    
    /**
     * Saves a score and fetches the high score table with the page corresponding
     * to the submitted score
     * @param score    PlayerScore with score and table data
     * @param callback  LeaderboardListHandler for receiving the response and data
     */ 
    public static void saveAndList(PlayerScore score, final LeaderboardListHandler callback) {
      PRequest.load(SECTION, SAVEANDLIST, score, new PResponseHandler() {
          
          @Override
          public void onResponse(PResponse response, JSONObject data) {
            if(response.getSuccess()) {
              ArrayList<PlayerScore> scores = processScores(data);
              int numscores = data.optInt("numscores");
              callback.onSuccess(scores, numscores, response);
            } else {
              callback.onFailure(response);
            }
             }
      });
    }
    
    private static ArrayList<PlayerScore> processScores(JSONObject data) {
      
      JSONArray scoresraw = data.optJSONArray("scores");
      ArrayList<PlayerScore> scores = new ArrayList<PlayerScore>();
      
      for(int i=0; i<scoresraw.length(); i++) {
        JSONObject scoredata = (JSONObject) scoresraw.opt(i);
        PlayerScore score = new PlayerScore(scoredata);
        scores.add(score);
      }
      
      return scores;
    }
}




Java Source Code List

com.loopj.android.http.AsyncHttpClient.java
com.loopj.android.http.AsyncHttpRequest.java
com.loopj.android.http.AsyncHttpResponseHandler.java
com.loopj.android.http.BinaryHttpResponseHandler.java
com.loopj.android.http.JsonHttpResponseHandler.java
com.loopj.android.http.PersistentCookieStore.java
com.loopj.android.http.RequestParams.java
com.loopj.android.http.RetryHandler.java
com.loopj.android.http.SerializableCookie.java
com.loopj.android.http.SimpleMultipartEntity.java
com.loopj.android.http.SyncHttpClient.java
com.playtomic.android.AchievementListHandler.java
com.playtomic.android.AchievementSaveHandler.java
com.playtomic.android.AchievementStreamHandler.java
com.playtomic.android.Achievements.java
com.playtomic.android.GameVarsHandler.java
com.playtomic.android.GameVars.java
com.playtomic.android.GeoIPHandler.java
com.playtomic.android.GeoIP.java
com.playtomic.android.LeaderboardListHandler.java
com.playtomic.android.LeaderboardSaveHandler.java
com.playtomic.android.Leaderboards.java
com.playtomic.android.ListOptions.java
com.playtomic.android.NewsletterSubscribeHandler.java
com.playtomic.android.NewsletterSubscription.java
com.playtomic.android.Newsletter.java
com.playtomic.android.PEncode.java
com.playtomic.android.PRequestHandler.java
com.playtomic.android.PRequest.java
com.playtomic.android.PResponseHandler.java
com.playtomic.android.PResponse.java
com.playtomic.android.PlayerAchievement.java
com.playtomic.android.PlayerAward.java
com.playtomic.android.PlayerCountry.java
com.playtomic.android.PlayerLevelListHandler.java
com.playtomic.android.PlayerLevelRateHandler.java
com.playtomic.android.PlayerLevelSaveLoadHandler.java
com.playtomic.android.PlayerLevel.java
com.playtomic.android.PlayerLevels.java
com.playtomic.android.PlayerScore.java
com.playtomic.android.Playtomic.java