internal static List <WaveEngine.Social.LeaderboardScore> MapLeaderBoards(List <ILeaderboardScore> scores)
        {
            List <WaveEngine.Social.LeaderboardScore> waveScores = null;

            if (scores != null)
            {
                waveScores = new List <WaveEngine.Social.LeaderboardScore>();

                foreach (var leaderboardScore in scores)
                {
                    var waveLeaderBoardScore = new WaveEngine.Social.LeaderboardScore()
                    {
                        DisplayRank     = leaderboardScore.DisplayRank,
                        DisplayScore    = leaderboardScore.DisplayScore,
                        Rank            = leaderboardScore.Rank,
                        RawScore        = leaderboardScore.RawScore,
                        ScoreHolder     = AndroidMapper.MapPlayer(leaderboardScore.ScoreHolder),
                        ScoreTag        = leaderboardScore.ScoreTag,
                        TimestampMillis = leaderboardScore.TimestampMillis,
                    };

                    waveScores.Add(waveLeaderBoardScore);
                }
            }

            return(waveScores);
        }
        internal static List <WaveEngine.Social.Achievement> MapAchievements(List <IAchievement> achievements)
        {
            List <WaveEngine.Social.Achievement> waveAchievements = null;

            if (achievements != null)
            {
                waveAchievements = new List <WaveEngine.Social.Achievement>();

                foreach (var achievement in achievements)
                {
                    var waveAchievement = new WaveEngine.Social.Achievement()
                    {
                        AchievementCode = achievement.AchievementId,
                        Description     = achievement.Description,
                        Name            = achievement.Name,
                        State           = achievement.State,
                        Type            = achievement.Type,
                        Player          = AndroidMapper.MapPlayer(achievement.Player),
                    };

                    waveAchievements.Add(waveAchievement);
                }
            }

            return(waveAchievements);
        }
        /// <summary>
        /// Gets the local player.
        /// </summary>
        /// <returns>The local player.</returns>
        public Player GetLocalPlayer()
        {
            Player result = null;

            if (this.client != null)
            {
                var localPlayer = GamesClass.Players.GetCurrentPlayer(this.client);
                result = AndroidMapper.MapPlayer(localPlayer);
            }

            return(result);
        }
        public void OnResult(Java.Lang.Object result)
        {
            var ar = JavaObjectExtensions.JavaCast <IAchievementsLoadAchievementsResult>(result);
            var waveAchievements = new List <WaveEngine.Social.Achievement>();

            if (ar != null)
            {
                var achievements = new List <IAchievement>();

                achievements.Clear();
                var count = ar.Achievements.Count;
                for (int i = 0; i < count; i++)
                {
                    var item = ar.Achievements.Get(i);
                    var a    = JavaObjectExtensions.JavaCast <IAchievement>(item);
                    achievements.Add(a);
                }

                waveAchievements = AndroidMapper.MapAchievements(achievements);
            }

            this.tcs.TrySetResult(waveAchievements);
        }
        public void OnResult(Java.Lang.Object result)
        {
            var ar         = JavaObjectExtensions.JavaCast <ILeaderboardsLoadScoresResult>(result);
            var waveScores = new List <WaveEngine.Social.LeaderboardScore>();

            if (ar != null)
            {
                var id = ar.Leaderboard.LeaderboardId;

                var scores = new List <ILeaderboardScore>();
                var count  = ar.Scores.Count;
                for (int i = 0; i < count; i++)
                {
                    var item = ar.Scores.Get(i);

                    var score = JavaObjectExtensions.JavaCast <ILeaderboardScore>(item);
                    scores.Add(score);
                }

                waveScores = AndroidMapper.MapLeaderBoards(scores);
            }

            this.tcs.TrySetResult(waveScores);
        }