void Listener_OnGroupMemberAdded(FizzGroupMemberEventData eventData)
 {
     if (UserId.Equals(eventData.MemberId))
     {
         Client.Chat.Groups.FetchGroup(eventData.GroupId, (groupMeta, ex) =>
         {
             if (ex == null)
             {
                 AddGroup(new FizzGroupModel(groupMeta, GroupTag));
                 FizzGroupModel group = GetGroup(groupMeta.Id);
                 if (eventData.State == FizzGroupMemberState.Pending)
                 {
                     GroupInvites.Add(group.Id, CreateUserGroup(eventData));
                 }
                 if (OnGroupAdded != null)
                 {
                     OnGroupAdded.Invoke(GetGroup(eventData.GroupId));
                 }
             }
         });
     }
     else
     {
         FizzGroupModel group = GetGroup(eventData.GroupId);
         if (group != null && OnGroupMembersUpdated != null)
         {
             OnGroupMembersUpdated.Invoke(group);
         }
     }
 }
示例#2
0
        void OnGroupRemoved(FizzGroupModel group)
        {
            if (!_showGroups)
            {
                return;
            }

            ChannelsView.RemoveGroup(group);
        }
示例#3
0
        void OnGroupAdded(FizzGroupModel group)
        {
            if (!_showGroups)
            {
                return;
            }

            ChannelsView.AddGroup(group);
        }
        void Listener_OnGroupUpdated(FizzGroupUpdateEventData eventData)
        {
            FizzGroupModel group = GetGroup(eventData.GroupId);

            if (group != null && OnGroupUpdated != null)
            {
                group.Update(eventData);
                OnGroupUpdated.Invoke(group);
            }
        }
        public void RemoveGroup(FizzGroupModel group)
        {
            if (!_initialized)
            {
                Initialize();
            }

            if (RemoveChannelInternal(group.Channel.Id) && CurrentSelectedChannel == null && _channelsLookup.Count > 0)
            {
                HandleChannelSelected(_channelsLookup.Values.First().GetChannel());
            }
        }
示例#6
0
        void OnGroupUpdated(FizzGroupModel group)
        {
            if (!_showGroups)
            {
                return;
            }

            ChannelsView.UpdateGroup(group);
            if (ChannelsView.CurrentSelectedChannel == group.Channel)
            {
                HeaderView.SetTitleText(group.Channel.Name);
            }
        }
        public void UpdateGroup(FizzGroupModel group)
        {
            if (!_initialized)
            {
                Initialize();
            }

            if (_channelsLookup.ContainsKey(group.Channel.Id))
            {
                FizzChannelView button = _channelsLookup[group.Channel.Id];
                button.UpdateNameLabel(group.Channel.Name);
                button.gameObject.name = group.Channel.Name;
            }
        }
示例#8
0
        void OnGroupMembersUpdated(FizzGroupModel group)
        {
            if (!_showGroups)
            {
                return;
            }

            if (group.Channel.Id == ChannelsView.CurrentSelectedChannel.Id)
            {
                if (!FizzService.Instance.GroupRepository.GroupInvites.ContainsKey(group.Id))
                {
                    ShowInput = true;
                }
            }
        }
        void Listener_OnGroupMemberUpdated(FizzGroupMemberEventData eventData)
        {
            FizzGroupModel group = GetGroup(eventData.GroupId);

            if (group != null)
            {
                if (eventData.MemberId.Equals(UserId) && eventData.State == FizzGroupMemberState.Joined)
                {
                    GroupInvites.Remove(eventData.GroupId);
                }
                if (OnGroupMembersUpdated != null)
                {
                    OnGroupMembersUpdated.Invoke(group);
                }
            }
        }
示例#10
0
        public void AddGroup(FizzGroupModel group, bool select = false)
        {
            if (!_initialized)
            {
                Initialize();
            }

            if (!_channelsLookup.ContainsKey(group.Channel.Id))
            {
                AddChannelInternal(group.Channel);
            }

            if (_channelsLookup.ContainsKey(group.Channel.Id) && select)
            {
                HandleChannelSelected(group.Channel);
            }
        }
示例#11
0
        public bool SetGroup(FizzGroupModel group)
        {
            if (!_initialized)
            {
                Initialize();
            }

            if (_channelsLookup.ContainsKey(group.Channel.Id))
            {
                HandleChannelSelected(group.Channel);
                return(true);
            }
            else
            {
                FizzLogger.W("FizzChatView: Unable to set group");
                return(false);
            }
        }
        private void AddGroup(FizzGroupModel group)
        {
            if (Client.State == FizzClientState.Closed)
            {
                FizzLogger.W("FizzClient should be opened before adding group.");
                return;
            }

            if (group == null)
            {
                FizzLogger.E("FizzClient unable to add group, group is null.");
                return;
            }

            if (!groupLookup.ContainsKey(group.Id))
            {
                Groups.Add(group);
                groupLookup.Add(group.Id, group);
            }

            group = groupLookup[group.Id];
            group.Channel.SubscribeAndQueryLatest();
        }
        void Listener_OnGroupMemberRemoved(FizzGroupMemberEventData eventData)
        {
            if (UserId.Equals(eventData.MemberId))
            {
                FizzGroupModel group = GetGroup(eventData.GroupId);
                GroupInvites.Remove(eventData.GroupId);
                Groups.Remove(groupLookup[eventData.GroupId]);
                groupLookup.Remove(eventData.GroupId);

                if (group != null && OnGroupRemoved != null)
                {
                    OnGroupRemoved.Invoke(group);
                }
            }
            else
            {
                FizzGroupModel group = GetGroup(eventData.GroupId);
                if (group != null && OnGroupMembersUpdated != null)
                {
                    OnGroupMembersUpdated.Invoke(group);
                }
            }
        }