コード例 #1
0
 public JabbrUsernameChangedMessage(object sender, JabbrConnection jabbr, string oldUsername, User user, string roomName)
     : base(sender, jabbr)
 {
     this.User        = user;
     this.RoomName    = roomName;
     this.OldUsername = oldUsername;
 }
コード例 #2
0
 public JabbrAddMessageContentMessage(object sender, JabbrConnection jabbr, string messageId, string extractedContent, string roomName)
     : base(sender, jabbr)
 {
     this.MessageId        = messageId;
     this.ExtractedContent = extractedContent;
     this.RoomName         = roomName;
 }
コード例 #3
0
 public JabbrUserJoinedMessage(object sender, JabbrConnection jabbr, User user, string roomName, bool isOwner)
     : base(sender, jabbr)
 {
     this.User     = user;
     this.RoomName = roomName;
     this.IsOwner  = isOwner;
 }
コード例 #4
0
 public JabbrMeMessageReceivedMessage(object sender, JabbrConnection jabbr, string user, string content, string roomName)
     : base(sender, jabbr)
 {
     this.User     = user;
     this.Content  = content;
     this.RoomName = roomName;
 }
コード例 #5
0
 public JabbrPrivateMessageMessage(object sender, JabbrConnection jabbr, string fromUser, string toUser, string message)
     : base(sender, jabbr)
 {
     this.From    = fromUser;
     this.To      = toUser;
     this.Message = message;
 }
コード例 #6
0
 public JabbrTopicChangedMessage(object sender, JabbrConnection jabbr, string roomName, string topic, string who)
     : base(sender, jabbr)
 {
     this.RoomName = roomName;
     this.Topic    = topic;
     this.Who      = who;
 }
コード例 #7
0
 public JabbrUserTypingMessage(object sender, JabbrConnection jabbr, User user, string roomName)
     : base(sender, jabbr)
 {
     this.User     = user;
     this.RoomName = roomName;
 }
コード例 #8
0
 public JabbrUsersInactiveMessage(object sender, JabbrConnection jabbr, List <User> users)
     : base(sender, jabbr)
 {
     this.Users = users;
 }
コード例 #9
0
 public JabbrMessage(object sender, JabbrConnection jabbr) : base(sender)
 {
     this.Jabbr = jabbr;
 }
コード例 #10
0
 public JabbrKickedMessage(object sender, JabbrConnection jabbr, string roomName)
     : base(sender, jabbr)
 {
     this.RoomName = roomName;
 }
コード例 #11
0
 public JabbrFlagChangedMessage(object sender, JabbrConnection jabbr, User user, string flag)
     : base(sender, jabbr)
 {
     this.User = user;
     this.Flag = flag;
 }
コード例 #12
0
 public JabbrRoomCountChangedMessage(object sender, JabbrConnection jabbr, Room room, int count)
     : base(sender, jabbr)
 {
     this.Room  = room;
     this.Count = count;
 }
コード例 #13
0
 public JabbrNoteChangedMessage(object sender, JabbrConnection jabbr, User user, string note)
     : base(sender, jabbr)
 {
     this.User = user;
     this.Note = note;
 }
コード例 #14
0
 public JabbrMessageReceivedMessage(object sender, JabbrConnection jabbr, JabbR.Client.Models.Message message, string roomName)
     : base(sender, jabbr)
 {
     this.Message  = message;
     this.RoomName = roomName;
 }
コード例 #15
0
 public JabbrLoggedOutMessage(object sender, JabbrConnection jabbr, List <string> roomNames)
     : base(sender, jabbr)
 {
     this.RoomNames = roomNames;
 }
コード例 #16
0
 public JabbrConnectedMessage(object sender, JabbrConnection jabbr, string userId, IEnumerable <Room> rooms)
     : base(sender, jabbr)
 {
     this.UserId = userId;
     this.Rooms  = rooms;
 }
コード例 #17
0
 public JabbrDisconnectedMessage(object sender, JabbrConnection jabbr)
     : base(sender, jabbr)
 {
 }
コード例 #18
0
 public JabbrStateChangedMessage(object sender, JabbrConnection jabbr)
     : base(sender, jabbr)
 {
 }
コード例 #19
0
 public JabbrJoinedRoomMessage(object sender, JabbrConnection jabbr, Room room)
     : base(sender, jabbr)
 {
     this.Room = room;
 }
コード例 #20
0
 public JabbrUserActivityChangedMessage(object sender, JabbrConnection jabbr, User user)
     : base(sender, jabbr)
 {
     this.User = user;
 }
コード例 #21
0
 public RoomListItemViewModel(JabbrConnection jabbr, Room room)
 {
     Jabbr = jabbr;
     Room  = room;
 }
コード例 #22
0
        public RoomViewModel(JabbrConnection jabbr, Room room) : base()
        {
            Connection = jabbr;
            Room       = room;

            TypedMessage = string.Empty;
            Messages     = new ObservableCollection <MessageViewModel> ();

            subTokMessageReceived = Messenger.SubscribeOnMainThread <JabbrMessageReceivedMessage> (msg => {
                if (!msg.RoomName.Equals(Room.Name, StringComparison.OrdinalIgnoreCase))
                {
                    return;
                }

                lock (Messages)
                    Messages.Add(new MessageViewModel(msg.Message));
            });

            subTokUserJoin = Messenger.Subscribe <JabbrUserJoinedMessage> (msg => {
                if (!msg.RoomName.Equals(Room.Name, StringComparison.OrdinalIgnoreCase))
                {
                    return;
                }

                var uvm = new UserViewModel(msg.User);

                lock (Users)
                {
                    if (!Users.Contains(uvm))
                    {
                        _users.Add(uvm);
                    }
                }

                RaisePropertyChanged(() => Users);
            });

            subTokUserLeft = Messenger.Subscribe <JabbrUserLeftMessage> (msg => {
                if (!msg.RoomName.Equals(Room.Name, StringComparison.OrdinalIgnoreCase))
                {
                    return;
                }

                var uvm = new UserViewModel(msg.User);

                lock (Users)
                {
                    if (Users.Contains(uvm))
                    {
                        _users.Remove(uvm);
                    }
                }

                RaisePropertyChanged(() => Users);
            });

            subTokCurrentRoomChgd = Messenger.Subscribe <CurrentRoomChangedMessage>(msg => {
                IsCurrent = msg.NewRoom.Room.Name.Equals(this.Room.Name, StringComparison.OrdinalIgnoreCase);
                RaisePropertyChanged(() => IsCurrent);
            });

            LoadRoom();
        }