Exemple #1
0
    IEnumerator LoadThisYear()
    {
        isLoading = true; isLoadingSuccessed = false;
        GooglePlayManager.Instance.LoadTopScores(readerboadID_Rank1[0], GPBoardTimeSpan.ALL_TIME, GPCollectionType.GLOBAL, 1);

        while (isLoading)
        {
            yield return(null);
        }
        if (isLoadingSuccessed)
        {
            loadedLeaderBoad = GooglePlayManager.Instance.GetLeaderBoard(readerboadID_Rank1[0]);
            if (loadedLeaderBoad == null)
            {
                OnIsThisYearFinished(false, "");
                yield break;
            }
        }
        else
        {
            OnIsThisYearFinished(false, "");
            yield break;
        }

        yield return(null);

        OnIsThisYearFinished(true, loadedLeaderBoad.Name);
    }
Exemple #2
0
    private void OnScoreSubmitted(string data)
    {
        Debug.Log("OnScoreSubmitted " + data);

        if (data.Equals(string.Empty))
        {
            Debug.Log("GooglePlayManager OnScoreSubmitted, no data avaiable");
            return;
        }

        string[] storeData;
        storeData = data.Split(AndroidNative.DATA_SPLITTER [0]);

        GPLeaderBoard        lb     = GetLeaderBoard(storeData [1]);
        GP_LeaderboardResult result = new GP_LeaderboardResult(lb, storeData [0]);

        if (result.IsSucceeded)
        {
            Debug.Log("Score was submitted to leaderboard -> " + lb);

            UpdatePlayerScoreLocal(lb);
        }
        else
        {
            ActionScoreSubmited(result);
        }
    }
Exemple #3
0
    public long GetCurrentPlayerScore(UM_Leaderboard leaderboard)
    {
        switch (Application.platform)
        {
        case RuntimePlatform.IPhonePlayer:
            GCLeaderboard board = GameCenterManager.GetLeaderboard(leaderboard.IOSId);
            if (board != null)
            {
                GCScore score = board.GetCurrentPlayerScore(GCBoardTimeSpan.ALL_TIME, GCCollectionType.GLOBAL);
                if (score != null)
                {
                    return(score.GetLongScore());
                }
            }
            break;

        case RuntimePlatform.Android:
            GPLeaderBoard gBoard = GooglePlayManager.instance.GetLeaderBoard(leaderboard.AndroidId);
            if (gBoard != null)
            {
                GPScore score = gBoard.GetCurrentPlayerScore(GPBoardTimeSpan.ALL_TIME, GPCollectionType.GLOBAL);
                if (score != null)
                {
                    return(score.score);
                }
            }
            break;
        }

        return(0);
    }
Exemple #4
0
    public int GetCurrentPlayerRank(UM_Leaderboard leaderboard)
    {
        switch (Application.platform)
        {
        case RuntimePlatform.IPhonePlayer:
            GCLeaderboard board = GameCenterManager.GetLeaderboard(leaderboard.IOSId);
            if (board != null)
            {
                return(board.GetCurrentPlayerScore(GCBoardTimeSpan.ALL_TIME, GCCollectionType.GLOBAL).rank);
            }
            else
            {
                return(0);
            }

        case RuntimePlatform.Android:
            GPLeaderBoard gBoard = GooglePlayManager.instance.GetLeaderBoard(leaderboard.AndroidId);
            if (gBoard != null)
            {
                return(gBoard.GetCurrentPlayerScore(GPBoardTimeSpan.ALL_TIME, GPCollectionType.GLOBAL).rank);
            }
            else
            {
                return(0);
            }
        }

        return(0);
    }
Exemple #5
0
    private void ActionScoreRequestReceived(GooglePlayResult obj)
    {
        SA_StatusBar.text = "Scores Load Finished";

        loadedLeaderBoard = GooglePlayManager.instance.GetLeaderBoard(LEADERBOARD_ID);


        if (loadedLeaderBoard == null)
        {
            Debug.Log("No Leaderboard found");
            return;
        }

        List <GPScore> scoresLB = loadedLeaderBoard.GetScoresList(GPBoardTimeSpan.ALL_TIME, GPCollectionType.GLOBAL);

        foreach (GPScore score in scoresLB)
        {
            Debug.Log("OnScoreUpdated " + score.rank + " " + score.playerId + " " + score.score);
        }

        GPScore currentPlayerScore = loadedLeaderBoard.GetCurrentPlayerScore(displayTime, displayCollection);

        Debug.Log("currentPlayerScore: " + currentPlayerScore.score + " rank:" + currentPlayerScore.rank);


        UpdateScoresDisaplay();
    }
Exemple #6
0
    //--------------------------------------
    // EVENTS
    //--------------------------------------


    private void OnScoreListLoaded()
    {
        SA_StatusBar.text = "Scores Load Finished";


        loadedLeaderBoard = GooglePlayManager.instance.GetLeaderBoard(LEADERBOARD_ID);
    }
Exemple #7
0
    public void UpdatePlayerScoreLocal(GPLeaderBoard leaderboard)
    {
        if (!GooglePlayConnection.CheckState())
        {
            return;
        }
        int requestId = SA_IdFactory.NextId;

        leaderboard.CreateScoreListener(requestId);

        AN_GMSGeneralProxy.loadLeaderboardInfoLocal(leaderboard.Id, requestId);
    }
Exemple #8
0
    IEnumerator LoadCurrentRank(string ID, bool isFriend)
    {
        isLoading = true; isLoadingSuccessed = false;
        if (isFriend)
        {
            GooglePlayManager.Instance.LoadTopScores(ID, GPBoardTimeSpan.ALL_TIME, GPCollectionType.FRIENDS, howManyRankToLoad);
        }
        else
        {
            GooglePlayManager.Instance.LoadTopScores(ID, GPBoardTimeSpan.ALL_TIME, GPCollectionType.GLOBAL, howManyRankToLoad);
        }

        while (isLoading)
        {
            yield return(null);
        }
        if (isLoadingSuccessed)
        {
            loadedLeaderBoad = GooglePlayManager.Instance.GetLeaderBoard(ID);
            if (loadedLeaderBoad == null)
            {
                OnLoadReaderBoadFinished(false, "ロード完了したが、GETできない場合", null);
                yield break;
            }
        }
        else
        {
            OnLoadReaderBoadFinished(false, "ロードに失敗した場合", null);
            yield break;
        }

        yield return(null);

        List <GPScore> scoresLB;

        if (isFriend)
        {
            scoresLB = loadedLeaderBoad.GetScoresList(GPBoardTimeSpan.ALL_TIME, GPCollectionType.FRIENDS);
        }
        else
        {
            scoresLB = loadedLeaderBoad.GetScoresList(GPBoardTimeSpan.ALL_TIME, GPCollectionType.GLOBAL);
        }
        if (scoresLB == null)
        {
            OnLoadReaderBoadFinished(false, "ロード完了 GETできたが スコアリストがnullの場合", null);
            yield break;
        }
        yield return(null);

        OnLoadReaderBoadFinished(true, "ロード正常終了", GetLeaderBoadData(scoresLB));
    }
    private void OnLeaderboardDataLoaded(string data)
    {
        Debug.Log("OnLeaderboardDataLoaded " + data);
        string[] storeData;
        storeData = data.Split(AndroidNative.DATA_SPLITTER [0]);


        GooglePlayResult result = new GooglePlayResult(storeData [0]);

        if (result.IsSucceeded)
        {
            for (int i = 1; i < storeData.Length; i += 32)
            {
                if (storeData[i] == AndroidNative.DATA_EOF)
                {
                    break;
                }

                string leaderboardId   = storeData[i];
                string leaderboardName = storeData [i + 1];

                GPLeaderBoard lb = GetLeaderBoard(leaderboardId);
                lb.UpdateName(leaderboardName);

                int start = i + 2;
                for (int j = 0; j < 6; j++)
                {
                    long score = System.Convert.ToInt64(storeData[start]);
                    int  rank  = System.Convert.ToInt32(storeData[start + 1]);

                    GPBoardTimeSpan  timeSpan   = (GPBoardTimeSpan)System.Convert.ToInt32(storeData[start + 2]);
                    GPCollectionType collection = (GPCollectionType)System.Convert.ToInt32(storeData[start + 3]);
                    string           tag        = storeData[start + 4];

                    //Debug.Log("timeSpan: " + timeSpan +   " collection: " + collection + " score:" + score + " rank:" + rank);

                    GPScore s = new GPScore(score, rank, timeSpan, collection, lb.Id, player.playerId, tag);
                    start = start + 5;
                    lb.UpdateScore(s);
                    lb.UpdateCurrentPlayerScore(s);
                }
            }

            Debug.Log("Loaded: " + LeaderBoards.Count + " Leaderboards");
        }

        _IsLeaderboardsDataLoaded = true;
        ActionLeaderboardsLoaded(result);
    }
Exemple #10
0
    private void UpdateBoardInfo()
    {
        GPLeaderBoard leaderboard = GooglePlayManager.Instance.GetLeaderBoard(LEADERBOARD_ID);

        if (leaderboard != null)
        {
            b_id.text       = "Id: " + leaderboard.id;
            b_name.text     = "Name: " + leaderboard.name;
            b_all_time.text = "All Time Score: " + leaderboard.GetCurrentPlayerScore(GPBoardTimeSpan.ALL_TIME, GPCollectionType.FRIENDS).score;
        }
        else
        {
            b_all_time.text = "All Time Score: " + " -1";
        }
    }
Exemple #11
0
    //--------------------------------------
    // PUBLIC METHODS
    //--------------------------------------

    public GPLeaderBoard GetLeaderBoard(string leaderboardId)
    {
        foreach (GPLeaderBoard lb in LeaderBoards)
        {
            if (lb.Id.Equals(leaderboardId))
            {
                return(lb);
            }
        }

        GPLeaderBoard leaderboard = new GPLeaderBoard(leaderboardId, string.Empty);

        LeaderBoards.Add(leaderboard);
        return(leaderboard);
    }
Exemple #12
0
    private void OnScoreDataRecevied(string data)
    {
        Debug.Log("OnScoreDataRecevide");
        string[] storeData;
        storeData = data.Split(AndroidNative.DATA_SPLITTER [0]);

        GP_LeaderboardResult result = new GP_LeaderboardResult(null, storeData[0]);

        if (result.IsSucceeded)
        {
            GPBoardTimeSpan  timeSpan        = (GPBoardTimeSpan)System.Convert.ToInt32(storeData[1]);
            GPCollectionType collection      = (GPCollectionType)System.Convert.ToInt32(storeData[2]);
            string           leaderboardId   = storeData[3];
            string           leaderboardName = storeData[4];

            GPLeaderBoard lb = GetLeaderBoard(leaderboardId);
            lb.UpdateName(leaderboardName);
            result = new GP_LeaderboardResult(lb, storeData [0]);

            for (int i = 5; i < storeData.Length; i += 8)
            {
                if (storeData[i] == AndroidNative.DATA_EOF)
                {
                    break;
                }

                long score = System.Convert.ToInt64(storeData[i]);
                int  rank  = System.Convert.ToInt32(storeData[i + 1]);

                string playerId = storeData[i + 2];
                if (!players.ContainsKey(playerId))
                {
                    GooglePlayerTemplate p = new GooglePlayerTemplate(playerId, storeData[i + 3], storeData[i + 4], storeData[i + 5], storeData[i + 6], storeData[i + 7]);
                    AddPlayer(p);
                }

                GPScore s = new GPScore(score, rank, timeSpan, collection, lb.Id, playerId);
                lb.UpdateScore(s);

                if (playerId.Equals(player.playerId))
                {
                    lb.UpdateCurrentPlayerScore(s);
                }
            }
        }

        ActionScoresListLoaded(result);
    }
Exemple #13
0
    private void OnPlayerScoreUpdated(string data)
    {
        if (data.Equals(string.Empty))
        {
            Debug.Log("GooglePlayManager OnPlayerScoreUpdated, no data avaiable");
            return;
        }


        Debug.Log("OnPlayerScoreUpdated");


        string[] storeData;
        storeData = data.Split(AndroidNative.DATA_SPLITTER [0]);
        GP_GamesResult result = new GP_GamesResult(storeData [0]);

        if (result.isSuccess)
        {
            GPBoardTimeSpan  timeSpan   = (GPBoardTimeSpan)System.Convert.ToInt32(storeData[1]);
            GPCollectionType collection = (GPCollectionType)System.Convert.ToInt32(storeData[2]);

            string leaderboardId = storeData[3];

            long score = System.Convert.ToInt64(storeData[4]);
            int  rank  = System.Convert.ToInt32(storeData[5]);

            GPLeaderBoard lb;
            if (_leaderBoards.ContainsKey(leaderboardId))
            {
                lb = _leaderBoards[leaderboardId];
            }
            else
            {
                lb = new GPLeaderBoard(leaderboardId, "");
                _leaderBoards.Add(leaderboardId, lb);
            }

            GPScore variant = new GPScore(score, rank, timeSpan, collection, lb.id, player.playerId);
            lb.UpdateScore(variant);
            lb.UpdateCurrentPlayerRank(rank, timeSpan, collection);
        }

        ActionPlayerScoreUpdated(result);
        dispatch(SCORE_UPDATED, result);
    }
Exemple #14
0
    //--------------------------------------
    // Private Methods
    //--------------------------------------

    private void DispatchUpdate()
    {
        if (Scores.Count == 6)
        {
            GPLeaderBoard        board = GooglePlayManager.Instance.GetLeaderBoard(_leaderboardId);
            GP_LeaderboardResult result;

            if (_ErrorData != null)
            {
                result = new GP_LeaderboardResult(board, _ErrorData);
            }
            else
            {
                board.UpdateCurrentPlayerScore(Scores);
                result = new GP_LeaderboardResult(board, _ErrorData);
            }

            GooglePlayManager.Instance.DispatchLeaderboardUpdateEvent(result);
        }
    }
    private void OnPlayerScoreUpdated(string data)
    {
        if (data.Equals(string.Empty))
        {
            Debug.Log("GooglePlayManager OnPlayerScoreUpdated, no data avaiable");
            return;
        }


        Debug.Log("OnPlayerScoreUpdated " + data);


        string[] storeData;
        storeData = data.Split(AndroidNative.DATA_SPLITTER [0]);
        GP_ScoreResult result = new GP_ScoreResult(storeData [0]);

        string leaderboardId = storeData[1];
        int    requestId     = System.Convert.ToInt32(storeData[2]);

        GPLeaderBoard lb = GetLeaderBoard(leaderboardId);

        if (result.IsSucceeded)
        {
            GPBoardTimeSpan  timeSpan   = (GPBoardTimeSpan)System.Convert.ToInt32(storeData[3]);
            GPCollectionType collection = (GPCollectionType)System.Convert.ToInt32(storeData[4]);

            long   score = System.Convert.ToInt64(storeData[5]);
            int    rank  = System.Convert.ToInt32(storeData[6]);
            string tag   = storeData [7];

            GPScore s = new GPScore(score, rank, timeSpan, collection, lb.Id, player.playerId, tag);
            result.score = s;

            lb.ReportLocalPlayerScoreUpdate(s, requestId);
        }
        else
        {
            lb.ReportLocalPlayerScoreUpdateFail(storeData[0], requestId);
        }
    }
Exemple #16
0
    private void OnLeaderboardDataLoaded(string data)
    {
        string[] storeData;
        storeData = data.Split(AndroidNative.DATA_SPLITTER [0]);


        GooglePlayResult result = new GooglePlayResult(storeData [0]);

        if (result.isSuccess)
        {
            _leaderBoards.Clear();

            for (int i = 1; i < storeData.Length; i += 26)
            {
                if (storeData[i] == AndroidNative.DATA_EOF)
                {
                    break;
                }
                GPLeaderBoard lb = new GPLeaderBoard(storeData[i], storeData [i + 1]);

                int start = i + 2;
                for (int j = 0; j < 6; j++)
                {
                    LeaderBoardScoreVariant variant = new LeaderBoardScoreVariant(storeData[start], storeData[start + 1], storeData[start + 2], storeData[start + 3]);
                    start = start + 4;

                    //Debug.Log (lb.name + ", " + variant.timeSpan.ToString() + ": " + variant.score.ToString());
                    lb.addScoreVarian(variant);
                }

                _leaderBoards.Add(lb.id, lb);
            }

            Debug.Log("Loaded: " + _leaderBoards.Count + " Leaderboards");
        }

        dispatch(LEADERBOARDS_LOEADED, result);
    }
    private void ActionScoreRequestReceived(GooglePlayResult obj)
    {
        SA_StatusBar.text = "Scores Load Finished";

        loadedLeaderBoard = GooglePlayManager.instance.GetLeaderBoard(LEADERBOARD_ID);

        if(loadedLeaderBoard == null) {
            Debug.Log("No Leaderboard found");
            return;
        }

        List<GPScore> scoresLB =  loadedLeaderBoard.GetScoresList(GPBoardTimeSpan.ALL_TIME, GPCollectionType.GLOBAL);

        foreach(GPScore score in scoresLB) {
            Debug.Log("OnScoreUpdated " + score.rank + " " + score.playerId + " " + score.score);
        }

        GPScore currentPlayerScore = loadedLeaderBoard.GetCurrentPlayerScore(displayTime, displayCollection);

        Debug.Log("currentPlayerScore: " + currentPlayerScore.score + " rank:" + currentPlayerScore.rank);

        UpdateScoresDisaplay();
    }
 private GPLeaderBoard GetAndroidLeaderboard(string id)
 {
     foreach (GPLeaderBoard lb in AndroidNativeSettings.Instance.Leaderboards) {
         if (lb.Id.Equals(id)) {
             return lb;
         }
     }
     GPLeaderBoard l = new GPLeaderBoard(id, string.Empty);
     AndroidNativeSettings.Instance.Leaderboards.Add(l);
     return l;
 }
 private void SetInfo(GPLeaderBoard leaderboard)
 {
     _Leaderboard = leaderboard;
 }
 public GP_LeaderboardResult(GPLeaderBoard leaderboard, string code) : base(code)
 {
     SetInfo(leaderboard);
 }
Exemple #21
0
	//--------------------------------------
	// PUBLIC METHODS
	//--------------------------------------
	
	public void Setup(GPLeaderBoard gpLeaderboard) {
		gp_Leaderboard = gpLeaderboard;
	}
	//--------------------------------------
	// EVENTS
	//--------------------------------------


	private void OnScoreListLoaded() {
		
		SA_StatusBar.text = "Scores Load Finished";
		
	
		loadedLeaderBoard = GooglePlayManager.instance.GetLeaderBoard(LEADERBOARD_ID);

	}
Exemple #23
0
    private void OnLeaderboardDataLoaded(string data)
    {
        Debug.Log("OnLeaderboardDataLoaded");
        string[] storeData;
        storeData = data.Split(AndroidNative.DATA_SPLITTER [0]);


        GooglePlayResult result = new GooglePlayResult(storeData [0]);

        if (result.isSuccess)
        {
            for (int i = 1; i < storeData.Length; i += 26)
            {
                if (storeData[i] == AndroidNative.DATA_EOF)
                {
                    break;
                }

                string leaderboardId   = storeData[i];
                string leaderboardName = storeData [i + 1];


                GPLeaderBoard lb;
                if (_leaderBoards.ContainsKey(leaderboardId))
                {
                    lb = _leaderBoards[leaderboardId];
                }
                else
                {
                    lb = new GPLeaderBoard(leaderboardId, leaderboardName);
                    _leaderBoards.Add(leaderboardId, lb);
                }

                lb.UpdateName(leaderboardName);


                int start = i + 2;
                for (int j = 0; j < 6; j++)
                {
                    long score = System.Convert.ToInt64(storeData[start]);
                    int  rank  = System.Convert.ToInt32(storeData[start + 1]);

                    GPBoardTimeSpan  timeSpan   = (GPBoardTimeSpan)System.Convert.ToInt32(storeData[start + 2]);
                    GPCollectionType collection = (GPCollectionType)System.Convert.ToInt32(storeData[start + 3]);

                    //Debug.Log("timeSpan: " + timeSpan +   " collection: " + collection + " score:" + score + " rank:" + rank);

                    GPScore variant = new GPScore(score, rank, timeSpan, collection, lb.id, player.playerId);
                    start = start + 4;
                    lb.UpdateScore(variant);
                    lb.UpdateCurrentPlayerRank(rank, timeSpan, collection);
                }
            }

            Debug.Log("Loaded: " + _leaderBoards.Count + " Leaderboards");
        }

        _IsLeaderboardsDataLoaded = true;

        ActionLeaderboardsLoaded(result);
        dispatch(LEADERBOARDS_LOADED, result);
    }
	public GP_LeaderboardResult(GPLeaderBoard leaderboard, string code):base(code) {
		SetInfo(leaderboard);
	}
    //--------------------------------------
    // PUBLIC METHODS
    //--------------------------------------

    public void Setup(GPLeaderBoard gpLeaderboard)
    {
        gp_Leaderboard = gpLeaderboard;
    }
Exemple #26
0
    //--------------------------------------
    // EVENTS
    //--------------------------------------

    private void ActionScoreRequestReceived(GooglePlayResult obj)
    {
        GooglePlayManager.ActionScoresListLoaded -= ActionScoreRequestReceived;
        loadedLeaderBoard = GooglePlayManager.Instance.GetLeaderBoard(LEADERBOARD_ID);
        if (loadedLeaderBoard == null)
        {
            OnNoData();
            home.OnScoreLoaded();
            Debug.Log("No Leaderboard found");
            return;
        }

        List <GPScore> scoresLB = loadedLeaderBoard.GetScoresList(GPBoardTimeSpan.ALL_TIME, GPCollectionType.GLOBAL);

        foreach (GPScore score in scoresLB)
        {
            Debug.Log("OnScoreUpdated " + score.Rank + " " + score.PlayerId + " " + score.LongScore);
        }

        int i = 1;

        foreach (LeaderboardFiledsHolder line in lines)
        {
            if (line.isPlayerRow)
            {
                break;
            }
            GPScore score = loadedLeaderBoard.GetScore(i, displayTime, displayCollection);
            if (score != null)
            {
                //順位 i.ToString();
                //スコア score.LongScore.ToString();
                GooglePlayerTemplate player = GooglePlayManager.Instance.GetPlayerById(score.PlayerId);
                if (player != null)
                {
                    //名前 player.name;
                    //この行は表示する
                    if (player.hasIconImage)
                    {
                        //アイコン有り
                        line.Set(i, score.LongScore, player.name, player.icon);
                    }
                    else
                    {
                        //アイコン無し
                        line.Set(i, score.LongScore, player.name, defaultTexture);
                    }
                }
                else
                {
                    //プレイヤはnull
                    //名前 無し
                    //アイコン無し
                    line.Set(i, score.LongScore, "Angler", defaultTexture);
                }
            }
            else
            {
                //この行は表示しない
                line.StopWait();
            }

            i++;
        }

        GPScore currentPlayerScore = loadedLeaderBoard.GetCurrentPlayerScore(displayTime, displayCollection);

        Debug.Log("currentPlayerScore: " + currentPlayerScore.LongScore + " rank:" + currentPlayerScore.Rank);
        if (currentPlayerScore == null)
        {
            lines[5].OnNoData();
        }
        else
        {
            lines[5].Set(currentPlayerScore.Rank, currentPlayerScore.LongScore, "YOU", defaultTexture);
        }
        home.OnScoreLoaded();
        //UpdateScoresDisaplay();
    }
Exemple #27
0
    private void OnScoreDataRecevied(string data)
    {
        Debug.Log("OnScoreDataRecevide");
        string[] storeData;
        storeData = data.Split(AndroidNative.DATA_SPLITTER [0]);

        GooglePlayResult result = new GooglePlayResult(storeData [0]);

        if (result.isSuccess)
        {
            GPBoardTimeSpan  timeSpan        = (GPBoardTimeSpan)System.Convert.ToInt32(storeData[1]);
            GPCollectionType collection      = (GPCollectionType)System.Convert.ToInt32(storeData[2]);
            string           leaderboardId   = storeData[3];
            string           leaderboardName = storeData[4];


            GPLeaderBoard lb;
            if (_leaderBoards.ContainsKey(leaderboardId))
            {
                lb = _leaderBoards[leaderboardId];
            }
            else
            {
                lb = new GPLeaderBoard(leaderboardId, leaderboardName);
                Debug.Log("Added: " + leaderboardId);
                _leaderBoards.Add(leaderboardId, lb);
            }

            lb.UpdateName(leaderboardName);

            for (int i = 5; i < storeData.Length; i += 8)
            {
                if (storeData[i] == AndroidNative.DATA_EOF)
                {
                    break;
                }



                long score = System.Convert.ToInt64(storeData[i]);
                int  rank  = System.Convert.ToInt32(storeData[i + 1]);


                string playerId = storeData[i + 2];
                if (!players.ContainsKey(playerId))
                {
                    GooglePlayerTemplate p = new GooglePlayerTemplate(playerId, storeData[i + 3], storeData[i + 4], storeData[i + 5], storeData[i + 6], storeData[i + 7]);
                    AddPlayer(p);
                }

                GPScore s = new GPScore(score, rank, timeSpan, collection, lb.id, playerId);
                lb.UpdateScore(s);

                if (playerId.Equals(player.playerId))
                {
                    lb.UpdateCurrentPlayerRank(rank, timeSpan, collection);
                }
            }
        }


        ActionScoreRequestReceived(result);
        dispatch(SCORE_REQUEST_RECEIVED, result);
    }
	private void PlayServiceSettings() {

		EditorGUILayout.Space();
		EditorGUILayout.HelpBox("Play Service API Settings", MessageType.None);


		PlayServiceDrawXmlIDs();
		EditorGUILayout.Space();

		EditorGUI.indentLevel++;
		{
			EditorGUILayout.BeginVertical (GUI.skin.box);
			
			
			EditorGUILayout.BeginHorizontal();
			AndroidNativeSettings.Instance.ShowLeaderboards = EditorGUILayout.Foldout(AndroidNativeSettings.Instance.ShowLeaderboards, "Leaderboards");
			
			EditorGUILayout.EndHorizontal();
			EditorGUILayout.Space();
			
			if(AndroidNativeSettings.Instance.ShowLeaderboards) {
				
				foreach(GPLeaderBoard leaderboard in AndroidNativeSettings.Instance.Leaderboards) {
					
					EditorGUILayout.BeginVertical (GUI.skin.box);
					
					EditorGUILayout.BeginHorizontal();
					
					GUIStyle s =  new GUIStyle();
					s.padding =  new RectOffset();
					s.margin =  new RectOffset();
					s.border =  new RectOffset();
					
					if(leaderboard.Texture != null) {
						GUILayout.Box(leaderboard.Texture, s, new GUILayoutOption[]{GUILayout.Width(18), GUILayout.Height(18)});
					}
					
					leaderboard.IsOpen 	= EditorGUILayout.Foldout(leaderboard.IsOpen, leaderboard.Name);
					
					bool ItemWasRemoved = DrawSortingButtons((object) leaderboard, AndroidNativeSettings.Instance.Leaderboards);
					if(ItemWasRemoved) {
						return;
					}
					
					EditorGUILayout.EndHorizontal();
					
					if(leaderboard.IsOpen) {
						EditorGUILayout.BeginHorizontal();
						EditorGUILayout.LabelField(LeaderboardIdDLabel);
						leaderboard.Id	 	= EditorGUILayout.TextField(leaderboard.Id);
						if(leaderboard.Id.Length > 0) {
							leaderboard.Id 		= leaderboard.Id.Trim();
						}
						EditorGUILayout.EndHorizontal();
						
						EditorGUILayout.BeginHorizontal();
						EditorGUILayout.LabelField(LeaderboardNameLabel);
						leaderboard.Name	 	= EditorGUILayout.TextField(leaderboard.Name);
						EditorGUILayout.EndHorizontal();
						
						EditorGUILayout.Space();
						EditorGUILayout.Space();
						
						EditorGUILayout.BeginHorizontal();
						EditorGUILayout.LabelField(LeaderboardDescriptionLabel);
						EditorGUILayout.EndHorizontal();
						
						EditorGUILayout.BeginHorizontal();
						leaderboard.Description	 = EditorGUILayout.TextArea(leaderboard.Description,  new GUILayoutOption[]{GUILayout.Height(60), GUILayout.Width(200)} );
						leaderboard.Texture = (Texture2D) EditorGUILayout.ObjectField("", leaderboard.Texture, typeof (Texture2D), false);
						EditorGUILayout.EndHorizontal();
					}
					
					EditorGUILayout.EndVertical();
				}
				
				EditorGUILayout.BeginHorizontal();
				EditorGUILayout.Space();
				if(GUILayout.Button("Add new", EditorStyles.miniButton, GUILayout.Width(250))) {
					GPLeaderBoard leaderboard =  new GPLeaderBoard(string.Empty, "New Leaderboard");
					AndroidNativeSettings.Instance.Leaderboards.Add(leaderboard);
				}
				
				EditorGUILayout.Space();
				EditorGUILayout.EndHorizontal();
				EditorGUILayout.Space();
			}
			
			EditorGUILayout.EndVertical();
		}
		EditorGUI.indentLevel--;
		
		EditorGUI.indentLevel++;
		{
			EditorGUILayout.BeginVertical (GUI.skin.box);
			
			
			EditorGUILayout.BeginHorizontal();
			AndroidNativeSettings.Instance.ShowAchievements = EditorGUILayout.Foldout(AndroidNativeSettings.Instance.ShowAchievements, "Achievements");
			
			EditorGUILayout.EndHorizontal();
			EditorGUILayout.Space();
			
			if(AndroidNativeSettings.Instance.ShowAchievements) {
				
				foreach(GPAchievement achievement in AndroidNativeSettings.Instance.Achievements) {
					
					EditorGUILayout.BeginVertical (GUI.skin.box);
					
					EditorGUILayout.BeginHorizontal();
					
					GUIStyle s =  new GUIStyle();
					s.padding =  new RectOffset();
					s.margin =  new RectOffset();
					s.border =  new RectOffset();
					
					if(achievement.Texture != null) {
						GUILayout.Box(achievement.Texture, s, new GUILayoutOption[]{GUILayout.Width(18), GUILayout.Height(18)});
					}
					
					achievement.IsOpen 	= EditorGUILayout.Foldout(achievement.IsOpen, achievement.Name);
					
					bool ItemWasRemoved = DrawSortingButtons((object) achievement, AndroidNativeSettings.Instance.Achievements);
					if(ItemWasRemoved) {
						return;
					}
					
					EditorGUILayout.EndHorizontal();
					
					if(achievement.IsOpen) {
						EditorGUILayout.BeginHorizontal();
						EditorGUILayout.LabelField(AchievementIdDLabel);
						achievement.Id	 	= EditorGUILayout.TextField(achievement.Id);
						if(achievement.Id.Length > 0) {
							achievement.Id 		= achievement.Id.Trim();
						}
						EditorGUILayout.EndHorizontal();
						
						EditorGUILayout.BeginHorizontal();
						EditorGUILayout.LabelField(AchievementNameLabel);
						achievement.Name	 	= EditorGUILayout.TextField(achievement.Name);
						EditorGUILayout.EndHorizontal();
						
						EditorGUILayout.Space();
						EditorGUILayout.Space();
						
						EditorGUILayout.BeginHorizontal();
						EditorGUILayout.LabelField(AchievementDescriptionLabel);
						EditorGUILayout.EndHorizontal();
						
						EditorGUILayout.BeginHorizontal();
						achievement.Description	 = EditorGUILayout.TextArea(achievement.Description,  new GUILayoutOption[]{GUILayout.Height(60), GUILayout.Width(200)} );
						achievement.Texture = (Texture2D) EditorGUILayout.ObjectField("", achievement.Texture, typeof (Texture2D), false);
						EditorGUILayout.EndHorizontal();
					}
					
					EditorGUILayout.EndVertical();
				}
				
				EditorGUILayout.BeginHorizontal();
				EditorGUILayout.Space();
				if(GUILayout.Button("Add new", EditorStyles.miniButton, GUILayout.Width(250))) {
					GPAchievement achievement =  new GPAchievement(string.Empty, "New Achievement");
					AndroidNativeSettings.Instance.Achievements.Add(achievement);
				}
				
				EditorGUILayout.Space();
				EditorGUILayout.EndHorizontal();
				EditorGUILayout.Space();
			}
			
			EditorGUILayout.EndVertical();
		}
		EditorGUI.indentLevel--;






			

			EditorGUILayout.LabelField("API:", EditorStyles.boldLabel);
			EditorGUI.indentLevel++;


			EditorGUILayout.BeginHorizontal();
			EditorGUILayout.LabelField(PlusApiLabel);
			settings.EnablePlusAPI	 	= EditorGUILayout.Toggle(settings.EnablePlusAPI);
			EditorGUILayout.EndHorizontal();

			EditorGUILayout.BeginHorizontal();
			EditorGUILayout.LabelField(GamesApiLabel);
			settings.EnableGamesAPI	 	= EditorGUILayout.Toggle(settings.EnableGamesAPI);
			EditorGUILayout.EndHorizontal();

			EditorGUILayout.BeginHorizontal();
			EditorGUILayout.LabelField(AppInviteAPILabel);
			settings.EnableAppInviteAPI	 	= EditorGUILayout.Toggle(settings.EnableAppInviteAPI);
			EditorGUILayout.EndHorizontal();


			EditorGUILayout.BeginHorizontal();
			EditorGUILayout.LabelField(DriveApiLabel);
			settings.EnableDriveAPI	 	= EditorGUILayout.Toggle(settings.EnableDriveAPI);
			EditorGUILayout.EndHorizontal();


			EditorGUI.indentLevel--;


			EditorGUILayout.LabelField("Auto Image Loading:", EditorStyles.boldLabel);

			EditorGUI.indentLevel++;
			EditorGUILayout.BeginHorizontal();
			EditorGUILayout.LabelField("Profile Icons");
			settings.LoadProfileIcons	 	= EditorGUILayout.Toggle(settings.LoadProfileIcons);
			EditorGUILayout.EndHorizontal();


			EditorGUILayout.BeginHorizontal();
			EditorGUILayout.LabelField("Profile Hi-res Images");
			settings.LoadProfileImages	 	= EditorGUILayout.Toggle(settings.LoadProfileImages);
			EditorGUILayout.EndHorizontal();


			EditorGUILayout.BeginHorizontal();
			EditorGUILayout.LabelField("Event Icons");
			settings.LoadEventsIcons	 	= EditorGUILayout.Toggle(settings.LoadEventsIcons);
			EditorGUILayout.EndHorizontal();

			EditorGUILayout.BeginHorizontal();
			EditorGUILayout.LabelField("Quest Icons");
			settings.LoadQuestsIcons	 	= EditorGUILayout.Toggle(settings.LoadQuestsIcons);
			EditorGUILayout.EndHorizontal();

			EditorGUILayout.BeginHorizontal();
			EditorGUILayout.LabelField("Quest Banners");
			settings.LoadQuestsImages	 	= EditorGUILayout.Toggle(settings.LoadQuestsImages);
			EditorGUILayout.EndHorizontal();
			EditorGUI.indentLevel--;

			EditorGUILayout.LabelField("Extras:", EditorStyles.boldLabel);

			EditorGUI.indentLevel++;
			EditorGUILayout.BeginHorizontal();
			EditorGUILayout.LabelField("Show Connecting Popup");
			settings.ShowConnectingPopup	= EditorGUILayout.Toggle(settings.ShowConnectingPopup);
			EditorGUILayout.EndHorizontal();
			EditorGUI.indentLevel--;

			

		

	}
	private void SetInfo(GPLeaderBoard leaderboard) {
		_Leaderboard = leaderboard;
	}