private void OnGetScore(byte[] data, PlatformLeaderboardsModel.GetScoresCompletionHandler completionHandler, string leaderboadID, HMAsyncRequest asyncRequest)
        {
            string scoreData = System.Text.Encoding.UTF8.GetString(data);

            bool cancelRequest = false;

            if (asyncRequest != null)
            {
                asyncRequest.CancelHandler = delegate(HMAsyncRequest request)
                {
                    cancelRequest = true;
                };
            }
            int playerScoreIndex = -1;
            List <PlatformLeaderboardsModel.LeaderboardScore> leaders = PassLeaderBoardInfo(scoreData, ref playerScoreIndex);

            if (leaders.Count > 0)
            {
                if (cancelRequest == false)
                {
                    OkCompletionHandler(completionHandler, leaders.ToArray(), playerScoreIndex, asyncRequest);
                }
                else
                {
                    FailCompletionHandler(completionHandler, asyncRequest);
                }
            }
            else
            {
                FailCompletionHandler(completionHandler, asyncRequest);
            }
        }
    public static void GetScore(string url, PlatformLeaderboardsModel.GetScoresCompletionHandler completionHandler, string leaderboadID, HMAsyncRequest asyncRequestd, Action <byte[], PlatformLeaderboardsModel.GetScoresCompletionHandler, string, HMAsyncRequest> callback)
    {
        if (_instance == null)
        {
            _instance = new GameObject("temp").AddComponent <GetCustomScoreBehaviour>();
        }

        _instance.StartCoroutine(_instance.GetScoreRoutine(url, completionHandler, leaderboadID, asyncRequestd, callback));
    }
    public IEnumerator GetScoreRoutine(string url, PlatformLeaderboardsModel.GetScoresCompletionHandler completionHandler, string leaderboadID, HMAsyncRequest asyncRequestd, Action <byte[], PlatformLeaderboardsModel.GetScoresCompletionHandler, string, HMAsyncRequest> callback)
    {
        using (var www = new WWW(url))
        {
            yield return(www);

            callback.Invoke(www.bytes, completionHandler, leaderboadID, asyncRequestd);
        }
    }
 private void FailCompletionHandler(PlatformLeaderboardsModel.GetScoresCompletionHandler handler, HMAsyncRequest request)
 {
     if (request != null)
     {
         if (handler != null)
         {
             handler(PlatformLeaderboardsModel.GetScoresResult.Failed, new PlatformLeaderboardsModel.LeaderboardScore[0], 0);
         }
     }
 }
 private void OkCompletionHandler(PlatformLeaderboardsModel.GetScoresCompletionHandler handler, PlatformLeaderboardsModel.LeaderboardScore[] leaders, int playerScoreIndex, HMAsyncRequest request)
 {
     if (request != null)
     {
         if (handler != null)
         {
             handler(PlatformLeaderboardsModel.GetScoresResult.OK, leaders.ToArray(), playerScoreIndex);
         }
     }
 }
        public override void GetScores(string leaderboadId, int count, int fromRank, PlatformLeaderboardsModel.ScoresScope scope, string referencePlayerId, HMAsyncRequest asyncRequest, PlatformLeaderboardsModel.GetScoresCompletionHandler completionHandler)
        {
            if (leaderboadId.Contains("∎"))
            {
                leaderboadId = FormatLeaderBoard(leaderboadId);

                switch (scope)
                {
                case PlatformLeaderboardsModel.ScoresScope.AroundPlayer:
                    GetCustomScoreBehaviour.GetScore("http://scoresaber.com/a0461a2eac6bb4d1ba0b0e976e9740ac.php?id=" + leaderboadId + "&steamId=" + Global.playerId, completionHandler, leaderboadId, asyncRequest, OnGetScore);
                    break;

                case PlatformLeaderboardsModel.ScoresScope.Global:
                    GetCustomScoreBehaviour.GetScore("http://scoresaber.com/a0461a2eac6bb4d1ba0b0e976e9740ac.php?id=" + leaderboadId, completionHandler, leaderboadId, asyncRequest, OnGetScore);
                    break;
                }
            }
            else
            {
                base.GetScores(leaderboadId, count, fromRank, scope, referencePlayerId, asyncRequest, completionHandler);
                //CallNonStaticFunctionDynamically("OculusPlatformLeaderboardsHandler", "Assembly-CSharp", "GetScores",
                //         new Type[] { typeof(string), typeof(int), typeof(int), typeof(PlatformLeaderboardsModel.ScoresScope),
                //                typeof(string), typeof(HMAsyncRequest), typeof(PlatformLeaderboardsModel.GetScoresCompletionHandler) },
                //               new object[] { leaderboadId, count, fromRank, scope, referencePlayerId, asyncRequest, completionHandler });
            }
        }
        public override void GetScores(string leaderboadId, int count, int fromRank, PlatformLeaderboardsModel.ScoresScope scope, string referencePlayerId, HMAsyncRequest asyncRequest, PlatformLeaderboardsModel.GetScoresCompletionHandler completionHandler)
        {
            if (leaderboadId.Contains("∎"))
            {
                leaderboadId = FormatLeaderBoard(leaderboadId);
                switch (scope)
                {
                case PlatformLeaderboardsModel.ScoresScope.AroundPlayer:
                    GetCustomScoreBehaviour.GetScore("http://scoresaber.com/a0461a2eac6bb4d1ba0b0e976e9740ac.php?id=" + leaderboadId + "&steamId=" + SteamUser.GetSteamID().m_SteamID.ToString(), completionHandler, leaderboadId, asyncRequest, OnGetScore);
                    break;

                case PlatformLeaderboardsModel.ScoresScope.Global:
                    GetCustomScoreBehaviour.GetScore("http://scoresaber.com/a0461a2eac6bb4d1ba0b0e976e9740ac.php?id=" + leaderboadId, completionHandler, leaderboadId, asyncRequest, OnGetScore);
                    break;

                case PlatformLeaderboardsModel.ScoresScope.Friends:
                    GetCustomScoreBehaviour.GetScore("http://scoresaber.com/a0461a2eac6bb4d1ba0b0e976e9740ac.php?id=" + leaderboadId + "&friends=" + GetFriends(), completionHandler, leaderboadId, asyncRequest, OnGetScore);
                    break;
                }
            }
            else
            {
                base.GetScores(leaderboadId, count, fromRank, scope, referencePlayerId, asyncRequest, completionHandler);
            }
        }