private void Tox_OnGroupMessage(object sender, ToxEventArgs.GroupMessageEventArgs e) { MainWindow.Instance.UInvoke(() => { var group = FindGroup(e.GroupNumber); if (group == null) { Debugging.Write("We don't know about this friend!"); return; } //pretty slow, potentially var peer = group.FindPeer(ProfileManager.Instance.Tox.GetGroupPeerPublicKey(group.ChatNumber, e.PeerNumber)); if (peer == null || peer.Ignored) { return; } var msg = new MessageViewModel(e.PeerNumber); msg.FriendName = ProfileManager.Instance.Tox.GetGroupMemberName(e.GroupNumber, e.PeerNumber); msg.Message = e.Message; msg.Time = DateTime.Now.ToShortTimeString(); (group.ConversationView as GroupConversationViewModel).AddMessage(msg); //if this is the first unread message, set HasUnreadMessages to true to make sure the status indicator gets updated if (!group.HasUnreadMessages && !group.IsSelected) { group.HasUnreadMessages = true; } }); }
private void Tox_OnGroupMessage(object sender, ToxEventArgs.GroupMessageEventArgs e) { if (!Config.Instance.EnableFlashOnGroupMessage) { return; } var window = MainWindow.Instance; MainWindow.Instance.UInvoke(() => { if (!window.IsActive || window.WindowState == System.Windows.WindowState.Minimized) { window.Flash(); } }); }
private void OnToxGroupMessage(object sender, ToxEventArgs.GroupMessageEventArgs e) { Logger.Log(LogLevel.Warning, "ToxGroupMessage not supported, ignored"); }