Exemple #1
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);
            });
        }
        public void AddChannelHandler()
        {
            SendBirdClient.ChannelHandler ch = new SendBirdClient.ChannelHandler();

            ch.OnMessageReceived = (BaseChannel baseChannel, BaseMessage baseMessage) => {
                // Received a chat message.
                LogMessage("OnMessageReceived");

                if (baseChannel.IsGroupChannel()) //we only deal with group channel (1 on 1 conversations)
                {
                    _cache.RefreshOrAddEntryInList((GroupChannel)baseChannel);

                    _completionHandler.OnMessageReceived(
                        PojoConverter.Transform((GroupChannel)baseChannel)
                        );
                }
            };


            ch.OnTypingStatusUpdated = (GroupChannel baseChannel) => {
                // Received a chat message.
                LogMessage("OnTypingStatusUpdated");

                _cache.RefreshOrAddEntryInList(baseChannel);

                _completionHandler.OnTypingStatusUpdated(
                    PojoConverter.Transform(baseChannel)

                    );
            };


            SendBirdClient.AddChannelHandler("UNIQUE_HANDLER_ID1", ch);
        }
Exemple #3
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);

            //});
        }