Пример #1
0
    public void CreatePrivateChat()
    {
        AppManager.Instance.loading.SetActive(true);
        List <User> mUserList = new List <User>();

        mUserList.Add(selectedUser);

        GroupChannel.CreateChannel(mUserList, false, (channel, e) =>
        {
            if (e != null)
            {
                Debug.Log(e.Code + ": " + e.Message);
                AppManager.Instance.loading.SetActive(false);
                return;
            }
            currentChannel = (GroupChannel)channel;
            currentChannel.SendUserMessage("Hello I am using BeSober.", (message, e1) =>
            {
                if (e1 != null)
                {
                    Debug.Log(e.Code + ": " + e1.Message);
                    return;
                }

                GetListOfFriends();
                LoadPreviousChatHistory();
                AppManager.Instance.loading.SetActive(false);
            });
        });
    }
Пример #2
0
        public void RefreshOrAddEntryInList(GroupChannel newOrUpdatedChannel)
        {
            var index = GroupChannels.IndexOf(GroupChannels.Find(a => a.Url == newOrUpdatedChannel.Url));

            index = (index == -1 ? 0 : index);
            GroupChannels[index] = newOrUpdatedChannel;
        }
Пример #3
0
 public void TypingMessageEnded(GroupChannel channel)
 {
     if (channel != null)
     {
         channel.EndTyping();
     }
 }
Пример #4
0
        public Task <UserMessage> SendMessage(GroupChannel channel, string userId, string userName, string memberToken, string message, string date)
        {
            var tcs = new TaskCompletionSource <UserMessage>();

            if (channel == null)
            {
                tcs.TrySetCanceled();
                return(tcs.Task);
            }

            channel.SendUserMessage(message, date, (msg, e) =>
            {
                if (e != null)
                {
                    tcs.TrySetCanceled();
                }
                else
                {
                    tcs.TrySetResult(msg);
                    SendPushNotification(userId, userName, memberToken, message, NotificationType.Text);
                }
            });

            return(tcs.Task);
        }
Пример #5
0
 public void RemoveChannel(GroupChannel channel)
 {
     if (channel != null)
     {
         channel.Leave((e) => {});
     }
 }
Пример #6
0
 public void TypingMessage(GroupChannel channel)
 {
     if (channel != null)
     {
         channel.StartTyping();
     }
 }
Пример #7
0
        public Task <List <User> > CheckUsersInGroupPresence(GroupChannel channel)
        {
            var tcs = new TaskCompletionSource <List <User> >();

            if (channel == null)
            {
                tcs.TrySetCanceled();
                return(tcs.Task);
            }

            channel.Refresh((e) =>
            {
                if (e != null)
                {
                    tcs.TrySetCanceled();
                }
                else
                {
                    tcs.TrySetResult(channel.Members);
                }
            });

            Debug.WriteLine("UpdateUsers Presence");

            return(tcs.Task);
        }
Пример #8
0
        public Task <List <GroupChannel> > GetAllChannels()
        {
            var tcs = new TaskCompletionSource <List <GroupChannel> >();

            GroupChannelListQuery mQuery = GroupChannel.CreateMyGroupChannelListQuery();

            if (mQuery == null)
            {
                tcs.TrySetCanceled();
                return(tcs.Task);
            }

            mQuery.IncludeEmpty = false;
            mQuery.Order        = GroupChannelListQuery.ChannelListOrder.LATEST_LAST_MESSAGE;
            mQuery.Next((List <GroupChannel> list, SendBirdException e) =>
            {
                if (e != null)
                {
                    tcs.TrySetCanceled();
                }
                else
                {
                    tcs.TrySetResult(list);
                }
            });

            Debug.WriteLine("Getting Sendbird ALL Channels");

            return(tcs.Task);
        }
Пример #9
0
        public Task <GroupChannel> GetCurrentChannel(string userId)
        {
            var tcs = new TaskCompletionSource <GroupChannel>();

            GroupChannelListQuery filteredQuery = GroupChannel.CreateMyGroupChannelListQuery();

            if (filteredQuery == null)
            {
                tcs.TrySetCanceled();
                return(tcs.Task);
            }

            filteredQuery.SetUserIdsExactFilter(new List <string> {
                userId
            });
            filteredQuery.Next((List <GroupChannel> queryResult, SendBirdException e) =>
            {
                if (e != null)
                {
                    tcs.TrySetCanceled();
                }
                else
                {
                    tcs.TrySetResult(queryResult.FirstOrDefault());
                }
            });

            return(tcs.Task);
        }
Пример #10
0
        public void ListGroupChannels()
        {
            _cache.GroupChannels.Clear(); //TODO - build reuse functionality for refreshing - when required


            //TODO check connection state and try to login again if connection closed

            List <ChannelInfo>    _channels = new List <ChannelInfo>();
            GroupChannelListQuery mQuery    = GroupChannel.CreateMyGroupChannelListQuery();

            mQuery.IncludeEmpty = true;
            mQuery.Next((List <GroupChannel> list, SendBirdException e1) =>
            {
                if (e1 != null)
                {
                    HandleException(e1);
                    return; //TODO check if we need to flag an error event here - incase any waiting services
                }


                _channels.AddRange(PojoConverter.Transform(list));

                _cache.GroupChannels.AddRange(list);

                LogMessage("OnListGroupChannels");
                _completionHandler.OnListGroupChannels(_channels);
            });
        }
Пример #11
0
        public void DataInit()
        {
            if (Users.Count > 0)
            {
                Users.Clear();
            }
            GroupChannelListQuery mQuery = GroupChannel.CreateMyGroupChannelListQuery();

            mQuery.IncludeEmpty = true;
            mQuery.Next((List <GroupChannel> list, SendBirdException e) => {
                if (e != null)
                {
                    // Error.
                    return;
                }
                foreach (GroupChannel channel in list)
                {
                    foreach (User user in channel.Members)
                    {
                        if (user.UserId != Settings.ChatID)
                        {
                            Users.Add(new UserInfo
                            {
                                ChatID    = user.UserId,
                                FirstName = user.Nickname,
                                Icon      = user.ProfileUrl,
                                Homeland  = ((UserMessage)channel.LastMessage).Message,
                                Address   = MilsecToDatetime(channel.LastMessage.CreatedAt).ToShortTimeString()//ToString()
                            });
                        }
                    }
                }
            });
            //Users.Add(new Models.User { ChatID = "cycbis_006", FirstName = "Thomas Wong" });
        }
        // GET: SendBird
        public ActionResult Index()
        {
            string APP_ID = "75DC34C9-03AE-4573-A69A-63FD75B7300E";
            //SendBirdClient.Init(APP_ID);
            //var result = "";
            string USE_ID = "T_tin2";

            //string ACCESS_TOKEN = "c4a2132e3b709eb947cb00b7a1c4c3326d66853c";
            SendBirdClient.Init(APP_ID);
            SendBirdClient.ChannelHandler channelHandler = new SendBirdClient.ChannelHandler();

            channelHandler.OnMessageReceived = (BaseChannel baseChannel, BaseMessage baseMessage) => {
                //baseMessage.MessageId.ToString();
                // message received
            };
            SendBirdClient.AddChannelHandler("testchannel1", channelHandler);

            SendBirdClient.Connect(USE_ID, (User user, SendBirdException connectException) => {
                // get channel
                GroupChannel.GetChannel("sendbird_group_channel_137287723_07e33e8b58e8f3d71f7a7cccb829ccc3ffbfa96c",
                                        (GroupChannel groupChannel, SendBirdException getChannelException) => {
                    // send message
                    //groupChannel.SendUserMessage("you welcome.",
                    //  (UserMessage userMessage, SendBirdException sendMessageException) => {
                    //      // message sent
                    //  });
                });
            });
            return(View());
        }
Пример #13
0
 public void MarkMessageAsRead(GroupChannel channel)
 {
     if (channel != null)
     {
         channel.MarkAsRead();
     }
 }
Пример #14
0
 private void Grouped()
 {
     _groups = new ObservableCollection<GroupChannel>();
     foreach (ChannelGroup item in App.ViewModel.UserAccount.channel_group)
     {
         ComboBoxItem cbi = new ComboBoxItem();
         cbi.Name = item.name;
         cbi.Content = item.name;
         ChCategory.Items.Add(cbi);
         ind++;
         var g = new GroupChannel { GroupName = item.name };
         foreach (Channel it in item.Channels)
         {
             Channel c = new Channel();
             c = it;
             c.icon = "http://sovok.tv" + c.icon;
             g.Channels.Add(c);
         }
         _groups.Add(g);
     }
     ComboBoxItem fcbi = new ComboBoxItem();
     fcbi.Content = fcbi.Name = "Favorite";
     ChCategory.Items.Add(fcbi);
     ind++;
     CList.Source = _groups;
 }
Пример #15
0
        //TODO for now just doing initial 30 - must still do paging and caching of query
        public void ListGroupChannelMessages(ChannelInfo channelInfo)
        {
            //TODO check connection state and try to login again if connection closed

            GroupChannel ch = _cache.GetGroupChannelForUrl(channelInfo.ChannelUrl);

            List <BaseMessageInfo> _messages = new List <BaseMessageInfo>();

            PreviousMessageListQuery mPrevMessageListQuery = ch.CreatePreviousMessageListQuery();

            //100
            mPrevMessageListQuery.Load(30, false, (List <BaseMessage> messages, SendBirdException e) =>
            {
                if (e != null)
                {
                    HandleException(e);
                    return;
                }

                //_cache.GroupChannels.AddRange(list);
                //_cache.RefreshOrAddEntryInList


                _messages.AddRange(PojoConverter.Transform(messages));
                LogMessage("OnListGroupChannelMessages");
                _completionHandler.OnListGroupChannelMessages(_messages);
            });


            //self.groupChannel.getPreviousMessages(byTimestamp: timestamp, limit: 30, reverse: !initial, messageType: SBDMessageTypeFilter.all, customType: "")

            //ch.CreatePreviousMessageListQuery()
            // timestamp = Int64.max
            //ch.Create
            // MessageListQuery query = ch.CreateMessageListQuery();

            //  query.Load()


            //List<ChannelInfo> _channels = new List<ChannelInfo>();
            //GroupChannelListQuery mQuery = GroupChannel.CreateMyGroupChannelListQuery();
            //mQuery.IncludeEmpty = true;
            //mQuery.Next((List<GroupChannel> list, SendBirdException e1) =>
            //{

            //    if (e1 != null)
            //    {
            //        HandleException(e1);
            //        return; //TODO check if we need to flag an error event here - incase any waiting services
            //    }


            //    _channels.AddRange(PojoConverter.Transform(list));

            //    LogMessage("OnConnectionSuccess");
            //    _completionHandler.OnListGroupChannels(_channels);

            //});
        }
Пример #16
0
 public ChatPage(FormsChat.Model.User user, GroupChannel channel)
 {
     InitializeComponent();
     BindingContext = vm = new ChatViewModel();
     vm.Channel     = channel;
     vm.Title       = user.Nickname;
     vm.UserName    = Settings.UserId;
     vm.Load();
     instance = this;
 }
Пример #17
0
        public ChatTestPage(Models.User user, GroupChannel channel)
        {
            InitializeComponent();
            ChatTestViewModel vvm;

            this.BindingContext = vvm = new ChatTestViewModel();
            vvm.Channel         = channel;
            vvm.Title           = user.FirstName + " " + user.LastName;
            vvm.Load();
        }
Пример #18
0
 public ChatPage(UserInfo user, GroupChannel channel)
 {
     InitializeComponent();
     BindingContext = vm = new ChatViewModel();
     vm.Channel     = channel;
     vm.Title       = user.FirstName;
     vm.UserName    = Settings.ChatID;
     vm.Load();
     instance = this;
 }
Пример #19
0
        //public MessageObjectProvider msgProvider = new MessageObjectProvider(6);
        //public TotalHeaderProvider totalHeaderProvider = new TotalHeaderProvider(5);
        //public TcpHeaderProvider tcpHeaderProvider = new TcpHeaderProvider(5);
        //public NackAckHeaderProvider nackHeaderProvider = new NackAckHeaderProvider(5);
        //public RequestCorrelatorHeaderProvider reqCoHeaderProvider = new RequestCorrelatorHeaderProvider(5);
        // public EventProvider eventProvider = new EventProvider(5);
        // public MemoryManager memManager = new MemoryManager();

        public ProtocolStack(GroupChannel channel, string setup_string)
        {
            this.setup_string = setup_string;
            this.channel      = channel;

            //Register the object providers to the memory manager.
            //memManager.RegisterObjectProvider(msgProvider);
            //memManager.RegisterObjectProvider(totalHeaderProvider);
            //memManager.RegisterObjectProvider(tcpHeaderProvider);
            //memManager.RegisterObjectProvider(nackHeaderProvider);
            // memManager.RegisterObjectProvider(reqCoHeaderProvider);
            // memManager.RegisterObjectProvider(eventProvider);
        }
Пример #20
0
    void LoadGroupChannels()
    {
        mGroupChannelListQuery.Next((list, e) => {
            if (e != null)
            {
                Debug.Log(e.Code + ": " + e.Message);
                return;
            }

            foreach (GroupChannel groupChannel in list)
            {
                GameObject btnGroupChannel = Instantiate(channelListItemPrefab) as GameObject;
                btnGroupChannel.GetComponent <Image>().sprite = uiTheme.channelButtonOff;
                btnGroupChannel.GetComponent <Image>().type   = Image.Type.Sliced;

                if (groupChannel.Url == selectedChannelUrl)
                {
                    btnGroupChannel.GetComponent <Image>().overrideSprite = uiTheme.channelButtonOn;
                    btnGroupChannel.GetComponentInChildren <Text>().color = uiTheme.channelButtonOnColor;
                }
                else
                {
                    btnGroupChannel.GetComponent <Image>().overrideSprite = null;
                    btnGroupChannel.GetComponentInChildren <Text>().color = uiTheme.channelButtonOffColor;
                }

                btnGroupChannel.transform.SetParent(groupChannelListGridPanel.transform);
                btnGroupChannel.transform.localScale = Vector3.one;

                Text text = btnGroupChannel.GetComponentInChildren <Text>();
                text.text = string.Format("{0}:{1} ({2})", groupChannel.Name, GetDisplayMemberNames(groupChannel.Members), groupChannel.UnreadMessageCount);


                btnGroupChannels.Add(btnGroupChannel);

                GroupChannel final = groupChannel;
                btnGroupChannel.GetComponent <Button>().onClick.AddListener(() => {
                    groupChannelListPanel.SetActive(false);
                    groupChannelPanel.SetActive(true);

                    currentChannel = final;

                    editableScrollArea.SetActive(true);
                    groupScrollArea.SetActive(false);

                    LoadGroupChannelPreviousChatHistory();
                });
            }
        });
    }
Пример #21
0
    void OpenGroupChannelList()
    {
        foreach (UnityEngine.Object btnGroupChannel in btnGroupChannels)
        {
            GameObject.Destroy(btnGroupChannel);
        }
        btnGroupChannels.Clear();

        groupChannelListPanel.SetActive(true);

        mGroupChannelListQuery       = GroupChannel.CreateMyGroupChannelListQuery();
        mGroupChannelListQuery.Limit = 50;
        LoadGroupChannels();
    }
Пример #22
0
 public void DeleteGroupChannel(GroupChannel groupChannel)
 {
     try
     {
         using (var sessionFactory = nhFactory.GetRepositoryFor <GroupChannel>())
         {
             sessionFactory.Session.BeginTransaction();
             sessionFactory.Delete(groupChannel);
             sessionFactory.Session.CommitChanges();
         }
     }
     catch (BPCloudException e)
     {
         throw new BPCloudException("error line 88", e, myLog);
     }
 }
Пример #23
0
        private void Grouped()
        {
            _groups = new ObservableCollection<GroupChannel>();
            foreach (ChannelGroup item in App.ViewModel.UserAccount.channel_group)
            {
                ComboBoxItem cbi = new ComboBoxItem();
                cbi.Name = item.name;
                cbi.Content = item.name;
                ChCategory.Items.Add(cbi);

                var g = new GroupChannel { GroupName = item.name };
                foreach (Channel it in item.Channels)
                {
                    Channel c = new Channel();
                    c = it;
                    c.icon = "http://sovok.tv" + c.icon;
                    g.Channels.Add(c);
                }
                _groups.Add(g);
            }
            //var fg = new GroupChannel { GroupName = "Favorite" };
            ComboBoxItem fcbi = new ComboBoxItem();
            fcbi.Content = fcbi.Name = "Favorite";
            ChCategory.Items.Add(fcbi);
            /*foreach (FavoriteChannel item in App.ViewModel.UserAccount.favorite_channel)
            {
                Channel fc = new Channel();
                foreach (СhannelItem it in App.ViewModel.ChannelList)
                {
                    if (item.id_channel==it.ChannelId)
                    {
                        fc.epg_end = it.epg_end;
                        fc.epg_progname = it.Epg;
                        fc.epg_start = it.epg_start;
                        fc.icon = it.Image_Source.ToString();
                        fc.name = it.ChannelName;
                        break;
                    }
                }
                fg.Channels.Add(fc);
            }
            _groups.Add(fg);*/
            CList.Source = _groups;
        }
Пример #24
0
        public async void ConnectToChannel(FormsChat.Model.User user, List <string> users)
        {
            GroupChannel group = null;

            IsBusy = true;

            GroupChannel.CreateChannelWithUserIds(users, true, (GroupChannel groupChannel, SendBirdException e) => {
                if (e != null)
                {
                    // Error.
                    return;
                }
                group = groupChannel;
            });
            await Task.Delay(3000);

            IsBusy = false;
            await Navigation.PushAsync(new ChatPage(user, group));
        }
Пример #25
0
        public int InertGroupChannel(GroupChannel groupChannel)
        {
            int GroupChannelId = 0;

            try
            {
                using (var sessionFactory = nhFactory.GetRepositoryFor <GroupChannel>())
                {
                    sessionFactory.Session.BeginTransaction();
                    GroupChannelId = (int)sessionFactory.Save(groupChannel);
                    sessionFactory.Session.CommitChanges();
                }
            }
            catch (BPCloudException e)
            {
                throw new BPCloudException("error line 68", e, myLog);
            }
            return(GroupChannelId);
        }
Пример #26
0
        public Task <GroupChannel> CreateChannel(List <string> users)
        {
            var tcs = new TaskCompletionSource <GroupChannel>();

            GroupChannel.CreateChannelWithUserIds(users, true, (channel, e) =>
            {
                if (e != null)
                {
                    tcs.TrySetCanceled();
                }
                else
                {
                    //channel.SetPushPreference(true, (error) => { });
                    tcs.TrySetResult(channel);
                }
            });

            return(tcs.Task);
        }
Пример #27
0
        async void ConnectToChannel(UserInfo user, List <string> users)
        {
            GroupChannel group = null;

            IsBusy = true;

            GroupChannel.CreateChannelWithUserIds(users, true, (GroupChannel groupChannel, SendBirdException e) => {
                if (e != null)
                {
                    // Error.
                    return;
                }
                group = groupChannel;
            });
            await Task.Delay(2000);

            IsLoading = false;
            IsBusy    = false;
            await Navigation.PushModalAsync(new NavigationPage(new ChatTestPage(user, group)));
        }
Пример #28
0
        public Task <GroupChannel> GetUsersInChannel(string channelUrl)
        {
            var tcs = new TaskCompletionSource <GroupChannel>();

            GroupChannel.GetChannel(channelUrl, (channel, e) =>
            {
                if (e != null)
                {
                    tcs.TrySetCanceled();
                }
                else
                {
                    tcs.TrySetResult(channel);
                }
            });

            Debug.WriteLine("Getting users in Channels");

            return(tcs.Task);
        }
Пример #29
0
    public void GetListOfFriends()
    {
        friendsGroupChannel          = new List <GroupChannel>();
        friendsUserList              = new List <User>();
        mGroupChannelListQuery       = GroupChannel.CreateMyGroupChannelListQuery();
        mGroupChannelListQuery.Limit = 50;
        mGroupChannelListQuery.Next((list, e) =>
        {
            if (e != null)
            {
                Debug.Log(e.Code + ": " + e.Message);
                return;
            }
            foreach (GroupChannel groupChannel in list)
            {
                foreach (User user in groupChannel.Members)
                {
                    if (!user.Nickname.Equals(userName))
                    {
                        friendsGroupChannel.Add(groupChannel);
                        friendsUserList.Add(user);
                        var index = nearByPeople.FindIndex(i => i.Nickname == user.Nickname);
                        if (index >= 0)
                        {   // ensure item found
                            nearByPeople.RemoveAt(index);
                        }
                        break;
                    }
                }
            }


            Debug.Log("Number of friends " + friendsUserList.Count);
            if (friendsScreen.isConnect)
            {
                friendsScreen.RefreshFriends();
            }
        });
    }
Пример #30
0
 private void ShowCategory(int index)
 {
     _groups.Clear();
     if (index == ind)
     {
         var fg = new GroupChannel { GroupName = "Favorite" };
         foreach (FavoriteChannel item in App.ViewModel.UserAccount.favorite_channel)
         {
             Channel fc = new Channel();
             foreach (СhannelItem it in App.ViewModel.ChannelList)
             {
                 if (item.id_channel == it.ChannelId)
                 {
                     fc.epg_end = it.epg_end;
                     fc.epg_progname = it.Epg;
                     fc.epg_start = it.epg_start;
                     fc.icon = it.Image_Source.ToString();
                     fc.name = it.ChannelName;
                     break;
                 }
             }
             fg.Channels.Add(fc);
         }
         _groups.Add(fg);
     }
     else
     {
         ChannelGroup item = App.ViewModel.UserAccount.channel_group[index];
         var g = new GroupChannel { GroupName = item.name };
         foreach (Channel it in item.Channels)
         {
             Channel c = new Channel();
             c = it;
             g.Channels.Add(c);
         }
         _groups.Add(g);
     }
     CList.Source = _groups;
 }
Пример #31
0
        public IList <GroupChannel> SelectGroupChannelByChannelId(GroupChannel groupChannel)
        {
            IList <GroupChannel> GroupChannelFlag = null;

            try
            {
                using (var sessionFactory = nhFactory.GetRepositoryFor <GroupChannel>())
                {
                    sessionFactory.Session.BeginTransaction();
                    GroupChannelFlag = sessionFactory.Session.GetISession()
                                       .CreateQuery(" FROM GroupChannel AS g WHERE g.channel.ChannelId=? ")
                                       .SetInt32(0, groupChannel.channel.ChannelId).List <GroupChannel>();
                    sessionFactory.Session.CommitChanges();
                }
            }
            catch (BPCloudException e)
            {
                throw new BPCloudException("error line 108", e, myLog);
            }

            return(GroupChannelFlag);
        }
Пример #32
0
        static void Main(string[] args)
        {
            /*
             * Hashtable ht = new Hashtable();
             * ht.Add("string1","value1");
             * ht.Add("string2","value2");
             * ht.Add("string3","value3");
             *
             * Console.WriteLine("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=");
             * Console.WriteLine("Initial Hashtable");
             * Console.WriteLine("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=");
             * foreach(DictionaryEntry e in ht)
             * {
             *      Console.WriteLine("Key: " + e.Key.ToString() + "		Value:" + e.Key.ToString() );
             * }
             * Console.WriteLine("");
             * Console.WriteLine("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=");
             * Console.WriteLine("Modified Hashtable");
             * Console.WriteLine("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=");
             * ICollection vals = ht.Values;
             * IEnumerator enu = vals.GetEnumerator();
             */
            string props = "UDP(mcast_addr=228.1.2.3;mcast_port=45566;ip_ttl=32):" +
                           "PING(timeout=3000;num_initial_members=6):" +
                           //"FD(timeout=3000):" +
                           //"Basic Chat|OtherNamespace.FD2(timeout=3000):" +
                           //"VERIFY_SUSPECT(timeout=1500):" +
                           "STABLE(desired_avg_gossip=10000):" +
                           "DISCARD(up=0.4;excludeItself=true):" +
                           "NAKACK(gc_lag=10;retransmit_timeout=3000):" +
                           "UNICAST(timeout=2000):" +
                           "GMS(join_timeout=5000;join_retry_timeout=2000;shun=false;print_local_addr=true)";

            Channel chan            = new GroupChannel(props);
            DistributedHashtable ht = new DistributedHashtable(chan, "testGroup", null);

            ht.Add(RandomTester.getRandom5Digit(), RandomTester.getRandom5Digit());
        }
Пример #33
0
    public void UnFriend()
    {
        GroupChannel group_Channel = null;

        foreach (GroupChannel groupChannel in friendsGroupChannel)
        {
            foreach (User user in groupChannel.Members)
            {
                if (!user.Nickname.Equals(userName) && user.Nickname.Equals(selectedUser.Nickname))
                {
                    group_Channel = groupChannel;
                    break;
                }
            }
        }

        var index = friendsUserList.FindIndex(i => i.Nickname == selectedUser.Nickname);

        if (index >= 0)
        {
            friendsUserList.RemoveAt(index);
        }
        friendsGroupChannel.Remove(group_Channel);

        group_Channel.Leave((SendBirdException e) =>
        {
            if (e != null)
            {
                // Error.
                return;
            }

            Debug.Log("UserLeft");
            PeopleNearYou();
            GetListOfFriends();
        });
    }
Пример #34
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="chan">Channel associated with the stack</param>
 /// <param name="setup">Initial configuration string</param>
 public ProtocolSinkStack(GroupChannel chan, string setup)
 {
     this.channel = chan;
     this.setup_string=setup;
     name = "ProtocolStack";
 }