///<summary></summary> /// <seealso cref="GooglePlayGames.BasicApi.IPlayGamesClient.LoadScores"/> public void LoadScores(string leaderboardId, LeaderboardStart start, int rowCount, LeaderboardCollection collection, LeaderboardTimeSpan timeSpan, Action <LeaderboardScoreData> callback) { using (var client = getLeaderboardsClient()) { string loadScoresMethod = start == LeaderboardStart.TopScores ? "loadTopScores" : "loadPlayerCenteredScores"; using (var task = client.Call <AndroidJavaObject>( loadScoresMethod, leaderboardId, AndroidJavaConverter.ToLeaderboardVariantTimeSpan(timeSpan), AndroidJavaConverter.ToLeaderboardVariantCollection(collection), rowCount)) { AndroidTaskUtils.AddOnSuccessListener <AndroidJavaObject>( task, annotatedData => { using (var leaderboardScores = annotatedData.Call <AndroidJavaObject>("get")) { InvokeCallbackOnGameThread(callback, CreateLeaderboardScoreData( leaderboardId, collection, timeSpan, annotatedData.Call <bool>("isStale") ? ResponseStatus.SuccessWithStale : ResponseStatus.Success, leaderboardScores)); leaderboardScores.Call("release"); } }); AndroidTaskUtils.AddOnFailureListener( task, exception => { Debug.Log("LoadScores failed"); InvokeCallbackOnGameThread(callback, new LeaderboardScoreData(leaderboardId, ResponseStatus.InternalError)); }); } } }
public static void ShowLeaderboardUI(string leaderboardId, LeaderboardTimeSpan timeSpan, Action <UIStatus> cb) { using (var helperFragment = new AndroidJavaClass(HelperFragmentClass)) using (var task = helperFragment.CallStatic <AndroidJavaObject>("showLeaderboardUi", GetActivity(), leaderboardId, AndroidJavaConverter.ToLeaderboardVariantTimeSpan(timeSpan))) { AndroidTaskUtils.AddOnSuccessListener <int>( task, uiCode => { Logger.d("ShowLeaderboardUI result " + uiCode); cb.Invoke((UIStatus)uiCode); }); AndroidTaskUtils.AddOnFailureListener( task, exception => { Logger.e("ShowLeaderboardUI failed with exception"); cb.Invoke(UIStatus.InternalError); }); } }