public void CreateSocialGroupFromListWithOneUser()
        {
            List <ulong> userIds = Enumerable.Range(1, 10).Select(i => (ulong)i).ToList();
            var          users   = userIds.Select(id => new XboxSocialUser {
                XboxUserId = id, Gamertag = "Gamer" + id
            }).ToDictionary(u => u.XboxUserId);

            XboxSocialUserGroup group = new XboxSocialUserGroup(this.user, new List <ulong> {
                123456789
            });

            Assert.AreEqual(0, group.Count);

            group.UpdateView(users, null);
            Assert.AreEqual(0, group.Count);

            group.UpdateView(
                new Dictionary <ulong, XboxSocialUser>
            {
                [123456789] = new XboxSocialUser {
                    XboxUserId = 123456789
                }
            },
                null);
            Assert.AreEqual(1, group.Count);
        }
Esempio n. 2
0
 /// <summary>
 ///
 /// </summary>
 public void RetrieveFriends()
 {
     if (!m_signedIn)
     {
         return;
     }
     m_group = SocialManager.Instance.CreateSocialUserGroupFromFilters(m_user, PresenceFilter.All, RelationshipFilter.Friends, m_context.AppConfig.TitleId);
     this.OnPropertyChanged("Group");
 }
Esempio n. 3
0
    public void CreateSocialGroupFromFilters(XboxLiveUser user, PresenceFilter presenceFilter, RelationshipFilter relationshipFilter)
    {
        XboxSocialUserGroup socialUserGroup = m_socialManager.CreateSocialUserGroupFromFilters(user, presenceFilter, relationshipFilter);

        lock (m_socialManager)
        {
            m_socialUserGroups.Add(socialUserGroup);
        }
    }
Esempio n. 4
0
    private void CreateDefaultSocialGraphs()
    {
        XboxSocialUserGroup allSocialUserGroup = XboxLive.Instance.SocialManager.CreateSocialUserGroupFromFilters(this.XboxLiveUser.User, PresenceFilter.All, RelationshipFilter.Friends);

        this.socialUserGroups.Add(0, allSocialUserGroup);

        XboxSocialUserGroup allOnlineSocialUserGroup = XboxLive.Instance.SocialManager.CreateSocialUserGroupFromFilters(this.XboxLiveUser.User, PresenceFilter.AllOnline, RelationshipFilter.Friends);

        this.socialUserGroups.Add(1, allOnlineSocialUserGroup);
    }
Esempio n. 5
0
    private void LoadProfileInfo(bool userAdded = true)
    {
        this.gamertag.text = this.XboxLiveUser.User.Gamertag;

        if (userAdded)
        {
            userGroup = SocialManager.SingletonInstance.CreateSocialUserGroupFromList(this.XboxLiveUser.User, new List <string> {
                this.XboxLiveUser.User.XboxUserId
            });
        }
    }
Esempio n. 6
0
 public void AddUser(XboxLiveUser user)
 {
     lock (m_socialManager)
     {
         if (m_user == null)
         {
             m_user    = user;
             m_context = new XboxLiveContext(user);
             m_socialManager.AddLocalUser(user, SocialManagerExtraDetailLevel.NoExtraDetail);
             m_socialManagerUserGroup = m_socialManager.CreateSocialUserGroupFromFilters(m_user, PresenceFilter.All, RelationshipFilter.Friends);
             LogLine("Adding user from graph");
         }
     }
 }
Esempio n. 7
0
    /// <summary>
    /// Load the leaderboard result data from the service into the view.
    /// </summary>
    /// <param name="result"></param>
    private void LoadResult(LeaderboardResult result)
    {
        if (this.stat == null || (result.HasNext && (this.stat.ID != result.GetNextQuery().StatName || this.socialGroup != result.GetNextQuery().SocialGroup)))
        {
            return;
        }

        this.leaderboardData = result;

        uint displayCurrentPage = this.currentPage + 1;

        if (this.leaderboardData.TotalRowCount == 0)
        {
            this.totalPages    = 0;
            displayCurrentPage = 0;
        }
        else if (this.totalPages == 0)
        {
            this.totalPages = (uint)Mathf.Ceil(this.leaderboardData.TotalRowCount / this.entryCount);
        }

        this.pageText.text = string.Format("Page: {0} / {1}", displayCurrentPage, this.totalPages);

        while (this.contentPanel.childCount > 0)
        {
            var entry = this.contentPanel.GetChild(0).gameObject;
            this.entryObjectPool.ReturnObject(entry);
        }

        var xuids = new List <string>();

        foreach (LeaderboardRow row in this.leaderboardData.Rows)
        {
            xuids.Add(row.XboxUserId);

            GameObject       entryObject = this.entryObjectPool.GetObject();
            LeaderboardEntry entry       = entryObject.GetComponent <LeaderboardEntry>();

            entry.Data = row;

            entryObject.transform.SetParent(this.contentPanel);
        }
        userGroup = SocialManager.SingletonInstance.CreateSocialUserGroupFromList(XboxLiveUserManager.Instance.UserForSingleUserMode.User, xuids);

        // Reset the scroll view to the top.
        this.scrollRect.verticalNormalizedPosition = 1;
        this.UpdateButtons();
    }
Esempio n. 8
0
 public void CreateOrUpdateSocialGroupFromList(XboxLiveUser user, List <string> xuidList)
 {
     foreach (XboxSocialUserGroup userGroup in m_socialUserGroups)
     {
         if (userGroup.LocalUser.XboxUserId == user.XboxUserId && userGroup.SocialUserGroupType == SocialUserGroupType.UserListType)
         {
             m_socialManager.UpdateSocialUserGroup(userGroup, xuidList);
             return;
         }
     }
     if (xuidList.Count > 0)
     {
         XboxSocialUserGroup socialUserGroup = m_socialManager.CreateSocialUserGroupFromList(user, xuidList);
         lock (m_socialManager)
         {
             m_socialUserGroups.Add(socialUserGroup);
         }
     }
 }
Esempio n. 9
0
    public void RemoveUser(XboxLiveUser user)
    {
        lock (m_socialManager)
        {
            if (m_socialManagerUserGroup != null)
            {
                m_socialManager.DestroySocialUserGroup(m_socialManagerUserGroup);
                m_socialManagerUserGroup = null;
            }

            if (m_user != null)
            {
                m_socialManager.RemoveLocalUser(m_user);
                m_user = null;
                LogLine("Removing user from graph");
            }

            m_context = null;
        }
    }
Esempio n. 10
0
        private void LoadProfileInfo(bool userAdded = true)
        {
            this.gamertag.text = this.xboxLiveUser.Gamertag;

            if (userAdded)
            {
                try
                {
                    userGroup = XboxLive.Instance.SocialManager.CreateSocialUserGroupFromList(this.xboxLiveUser, new List <string> {
                        this.xboxLiveUser.XboxUserId
                    });
                }
                catch (Exception ex)
                {
                    ExceptionManager.Instance.ThrowException(
                        ExceptionSource.PlayerAuthentication,
                        ExceptionType.CreateSocialUserGroupFailed,
                        ex);
                }
            }
        }
Esempio n. 11
0
        private void LoadProfileInfo(bool userAdded = true)
        {
            this.gamertag.text = this.xboxLiveUser.Gamertag;

            if (userAdded)
            {
                try
                {
                    userGroup = XboxLive.Instance.SocialManager.CreateSocialUserGroupFromList(this.xboxLiveUser, new List <string> {
                        this.xboxLiveUser.XboxUserId
                    });
                }
                catch (Exception ex)
                {
                    if (XboxLiveServicesSettings.Instance.DebugLogsOn)
                    {
                        Debug.LogError("Exception occured: " + ex.Message);
                    }
                }
            }
        }
        public void CreateSocialGroupFromListWithManyUsers()
        {
            List <ulong> userIds = Enumerable.Range(1, 20).Select(i => (ulong)i).ToList();
            var          users   = userIds.Select(id => new XboxSocialUser {
                XboxUserId = id, Gamertag = "Gamer" + id
            }).ToDictionary(u => u.XboxUserId);

            XboxSocialUserGroup group = new XboxSocialUserGroup(this.user, new List <ulong>(userIds));

            Assert.AreEqual(0, group.Count);

            // Update half the users
            group.UpdateView(users.Values.Where(u => u.XboxUserId % 2 == 0).ToDictionary(u => u.XboxUserId), null);
            Assert.AreEqual(10, group.Count);

            // Then update the rest.
            group.UpdateView(users, null);
            Assert.AreEqual(20, group.Count);

            // Ensure we don't accidentally double add anything.
            group.UpdateView(users, null);
            Assert.AreEqual(20, group.Count);
        }
 public void CreateSocialGroupFromListWithNoUsers()
 {
     XboxSocialUserGroup group = new XboxSocialUserGroup(this.user, new List <ulong>());
 }
        /// <summary>
        /// Load the leaderboard result data from the service into the view.
        /// </summary>
        /// <param name="result"></param>
        private void LoadResult(LeaderboardResult result)
        {
            if (this.stat == null || (result.HasNext && (this.stat.ID != result.GetNextQuery().StatName || this.socialGroup != result.GetNextQuery().SocialGroup)))
            {
                return;
            }

            this.leaderboardData = result;

            uint displayCurrentPage = this.currentPage + 1;

            if (this.leaderboardData.TotalRowCount == 0)
            {
                this.totalPages    = 0;
                displayCurrentPage = 0;
            }
            else if (this.totalPages == 0)
            {
                this.totalPages = this.leaderboardData.TotalRowCount / this.entryCount;
            }

            this.pageText.text = string.Format("{0} | {1}", displayCurrentPage, Mathf.Max(displayCurrentPage, this.totalPages));

            this.Clear();

            IList <string> xuids = new List <string>();

            var rowCount = 0;

            foreach (LeaderboardRow row in this.leaderboardData.Rows)
            {
                xuids.Add(row.XboxUserId);

                GameObject    entryObject = this.entryObjectPool.GetObject();
                PlayerProfile entry       = entryObject.GetComponent <PlayerProfile>();
                entry.Theme           = this.Theme;
                entry.IsCurrentPlayer = this.xboxLiveUser != null && row.Gamertag.Equals(this.xboxLiveUser.Gamertag);
                entry.BackgroundColor = ((rowCount % 2 == 0) ? PlayerProfileBackgrounds.RowBackground02 : PlayerProfileBackgrounds.RowBackground01);
                entry.UpdateGamerTag(row.Gamertag);
                entry.UpdateRank(true, row.Rank);
                if (row.Values != null && row.Values.Count > 0)
                {
                    entry.UpdateScore(true, row.Values[0]);
                }
                this.StartCoroutine(entry.Reload());
                entryObject.transform.SetParent(this.contentPanel);
                this.currentEntries.Add(entry);
                rowCount++;

                entryObject.transform.localScale = Vector3.one;
            }

            if (xuids.Count > 0)
            {
                userGroup = XboxLive.Instance.SocialManager.CreateSocialUserGroupFromList(this.xboxLiveUser, xuids);
            }

            // Reset the scroll view to the top.
            this.scrollRect.verticalNormalizedPosition = 1;
            this.UpdateButtons();
        }