Ejemplo n.º 1
0
    void LoadOpenChannelChatHistory()
    {
        PreviousMessageListQuery query = currentChannel.CreatePreviousMessageListQuery();

        ResetOpenChannelContent();
        query.Load(15, false, (List <BaseMessage> queryResult, SendBirdException e) => {
            if (e != null)
            {
                Debug.Log(e.Code + ": " + e.Message);
                return;
            }

            foreach (BaseMessage message in queryResult)
            {
                if (message is UserMessage)
                {
                    txtOpenChannelContent.text = txtOpenChannelContent.text + (UserMessageRichText((UserMessage)message) + "\n");
                }
                else if (message is FileMessage)
                {
                    txtOpenChannelContent.text = txtOpenChannelContent.text + (FileMessageRichText((FileMessage)message) + "\n");
                }
                else if (message is AdminMessage)
                {
                    txtOpenChannelContent.text = txtOpenChannelContent.text + (AdminMessageRichText((AdminMessage)message) + "\n");
                }
            }
        });
    }
Ejemplo n.º 2
0
    public void LoadPreviousChatHistory()
    {
        chatHistrory = new List <BaseMessage>();
        foreach (GroupChannel groupChannel in friendsGroupChannel)
        {
            foreach (User user in groupChannel.Members)
            {
                if (!user.Nickname.Equals(userName) && user.Nickname.Equals(selectedUser.Nickname))
                {
                    currentChannel = groupChannel;
                    break;
                }
            }
        }
        PreviousMessageListQuery mPrevMessageListQuery = currentChannel.CreatePreviousMessageListQuery();

        mPrevMessageListQuery.Load(15, true, (List <BaseMessage> messages, SendBirdException e) =>
        {
            if (e != null)
            {
                // Error.
                return;
            }

            chatHistrory = messages;
            screenManager.ShowChat();
        });
    }
Ejemplo n.º 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);

            //});
        }
Ejemplo n.º 4
0
    public void GetPreviousOpenChannelData()
    {
        PreviousMessageListQuery mPrevMessageListQuery = _openChannel.CreatePreviousMessageListQuery();

        mPrevMessageListQuery.Load(30, true, (List <BaseMessage> messages, SendBirdException e) =>
        {
            if (e != null)
            {
                // Error.
                return;
            }
            blogHistrory = messages;
        });
    }
Ejemplo n.º 5
0
        public async void Load()
        {
            IsBusy = true;
            await Task.Delay(3000);

            PreviousMessageListQuery mPrevMessageListQuery = Channel.CreatePreviousMessageListQuery();

            mPrevMessageListQuery.Load(30, true, (List <BaseMessage> messages, SendBirdException e) => {
                if (e != null)
                {
                    // Error.
                    return;
                }
                messages = messages.OrderBy(x => x.CreatedAt).ToList();
                foreach (var item in messages)
                {
                    Messages.Insert(0, (UserMessage)item);
                }
            });
            IsBusy = false;
            Init();
        }
Ejemplo n.º 6
0
        public Task <List <BaseMessage> > LoadMessages(PreviousMessageListQuery channelQuery, int messagesCount)
        {
            var tcs = new TaskCompletionSource <List <BaseMessage> >();

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

            channelQuery.Load(messagesCount, true, (List <BaseMessage> queryResult, SendBirdException e) => {
                if (e != null)
                {
                    tcs.TrySetCanceled();
                }
                else
                {
                    tcs.TrySetResult(queryResult);
                }
            });

            return(tcs.Task);
        }
Ejemplo n.º 7
0
    void LoadGroupChannelPreviousChatHistory()
    {
        PreviousMessageListQuery query = currentChannel.CreatePreviousMessageListQuery();

        ResetGroupChannelContent();
        query.Load(15, false, (List <BaseMessage> queryResult, SendBirdException e) => {
            if (e != null)
            {
                Debug.Log(e.Code + ": " + e.Message);
                return;
            }

            ChannelMessage msg = null;

            foreach (BaseMessage message in queryResult)
            {
                GameObject objMessage = Instantiate(messageListItemPrefab, editableGridPannel.transform) as GameObject;
                msg = objMessage.GetComponent <ChannelMessage>();

                if (message is UserMessage)
                {
                    msg.message          = ((UserMessage)message).Message;
                    msg.userId           = message.UserId;
                    msg.messageId        = message.MessageId;
                    msg.messageText.text = (UserMessageRichText((UserMessage)message));
                    if (SendBirdClient.CurrentUser.UserId == msg.userId)
                    {
                        objMessage.GetComponent <Button>().enabled = true;
                    }

                    btnMessage.Add(objMessage);
                }
                else if (message is FileMessage)
                {
                    msg.message          = ((FileMessage)message).Name;
                    msg.messageId        = message.MessageId;
                    msg.messageText.text = (FileMessageRichText((FileMessage)message));
                    if (SendBirdClient.CurrentUser.UserId == msg.userId)
                    {
                        objMessage.GetComponent <Button>().enabled = true;
                    }

                    btnMessage.Add(objMessage);
                }
                else if (message is AdminMessage)
                {
                    msg.message          = ((AdminMessage)message).Message;
                    msg.messageId        = message.MessageId;
                    msg.messageText.text = (AdminMessageRichText((AdminMessage)message));
                    if (SendBirdClient.CurrentUser.UserId == msg.userId)
                    {
                        objMessage.GetComponent <Button>().enabled = true;
                    }

                    btnMessage.Add(objMessage);
                }

                objMessage.GetComponent <Button>().onClick.AddListener(() =>
                {
                    msg = objMessage.GetComponent <ChannelMessage>();
                    UpdateMessage(msg);
                });
            }
        });
    }