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"); } } }); }
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(); }); }
//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); //}); }
public void GetPreviousOpenChannelData() { PreviousMessageListQuery mPrevMessageListQuery = _openChannel.CreatePreviousMessageListQuery(); mPrevMessageListQuery.Load(30, true, (List <BaseMessage> messages, SendBirdException e) => { if (e != null) { // Error. return; } blogHistrory = messages; }); }
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(); }
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); }
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); }); } }); }