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); }); }); }
public void RefreshOrAddEntryInList(GroupChannel newOrUpdatedChannel) { var index = GroupChannels.IndexOf(GroupChannels.Find(a => a.Url == newOrUpdatedChannel.Url)); index = (index == -1 ? 0 : index); GroupChannels[index] = newOrUpdatedChannel; }
public void TypingMessageEnded(GroupChannel channel) { if (channel != null) { channel.EndTyping(); } }
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); }
public void RemoveChannel(GroupChannel channel) { if (channel != null) { channel.Leave((e) => {}); } }
public void TypingMessage(GroupChannel channel) { if (channel != null) { channel.StartTyping(); } }
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); }
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); }
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); }
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 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()); }
public void MarkMessageAsRead(GroupChannel channel) { if (channel != null) { channel.MarkAsRead(); } }
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; }
//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 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; }
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(); }
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; }
//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); }
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(); }); } }); }
void OpenGroupChannelList() { foreach (UnityEngine.Object btnGroupChannel in btnGroupChannels) { GameObject.Destroy(btnGroupChannel); } btnGroupChannels.Clear(); groupChannelListPanel.SetActive(true); mGroupChannelListQuery = GroupChannel.CreateMyGroupChannelListQuery(); mGroupChannelListQuery.Limit = 50; LoadGroupChannels(); }
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); } }
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; }
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)); }
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); }
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); }
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))); }
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); }
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(); } }); }
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; }
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); }
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()); }
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(); }); }
/// <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"; }