예제 #1
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

                        #if DEBUG
            debugServer            = new Server();
            debugServer.OnRequest += HandleDebugRequest;
            debugServer.Start("conversations");

            debugGesture = new TapGestureAttacher(View, 3, ChangeThemeProps);
//			debugGesture = new TapGestureAttacher (View, 3, Theme.SetNextTheme);
                        #endif

            //remove for now because we do on new friends list
            NavigationItem.BackBarButtonItem = new UIBarButtonItem(Strings.Chats.BackButtonTitle, UIBarButtonItemStyle.Plain, null, null);
            //NavigationItem.rfr.Clicked += OnFindNewPersonClicked;
            NavigationItem.RightBarButtonItem = null;

            viewModel = App.ConversationsViewModel;

            tableUpdater = new CollectionUpdater <Message> (viewModel.Conversations, messageCache);

            dataSource                = new ConversationsDataSource(messageCache);
            TableView.Source          = dataSource;
            TableView.SeparatorInset  = UIEdgeInsets.Zero;
            TableView.RowHeight       = 82;
            TableView.TableFooterView = new UIView(CGRect.Empty);

            InitPullToRefresh();
        }
		public override void ViewDidLoad ()
		{
			base.ViewDidLoad ();

			#if DEBUG
			debugServer = new Server();
			debugServer.OnRequest += HandleDebugRequest;
			debugServer.Start("conversations");

			debugGesture = new TapGestureAttacher (View, 3, ChangeThemeProps);
//			debugGesture = new TapGestureAttacher (View, 3, Theme.SetNextTheme);
			#endif

			Title = Strings.Chats.Title;
			//remove for now because we do on new friends list
			NavigationItem.BackBarButtonItem = new UIBarButtonItem (Strings.Chats.BackButtonTitle, UIBarButtonItemStyle.Plain, null, null);
			//NavigationItem.RightBarButtonItem.Clicked += OnFindNewPersonClicked;
			NavigationItem.RightBarButtonItem = null;

			viewModel = App.ConversationsViewModel;

			tableUpdater = new CollectionUpdater<Message> (viewModel.Conversations, messageCache);

			dataSource = new ConversationsDataSource (messageCache);
			TableView.Source = dataSource;
			TableView.SeparatorInset = UIEdgeInsets.Zero;
			TableView.RowHeight = 82;
			TableView.TableFooterView = new UIView (CGRect.Empty);

			InitPullToRefresh ();
		}
예제 #3
0
 public ConversationListPage()
 {
     InitializeComponent();
     _viewModel     = new ConversationsViewModel();
     BindingContext = _viewModel;
     MessagingCenter.Subscribe <object>(this, "ClosedModalAuthConversation", (sender) => {
         OnAppearing();
     });
 }
        public ConversationsViewModelActor(ConversationsViewModel viewModel)
        {
            _viewModel = viewModel;

            Receive<ConversationMessages.ConversationStarted>(msg => OpenOrFocusWindow(msg));
            Receive<ConversationMessages.IncomingChatMessage>(msg => ForwardToCorrectConversation(msg));

            Receive<ClientTracking.ClientChanged>(m => BroadcastToAll(m));
            Receive<ClientTracking.ClientConnected>(m => BroadcastToAll(m));
            Receive<ClientTracking.ClientDisconnected>(m => BroadcastToAll(m));
        }
예제 #5
0
        public ShellViewModel(HomeViewModel home, SettingsViewModel settings, ConversationsViewModel convos, IActorRefFactory system)
        {
            _screens.Add(Screens.Home, home);
            _screens.Add(Screens.Settings, settings);
            _screens.Add(Screens.Conversations, convos);

            system.ActorSelection(ClientActorPaths.ErrorDialogActor.Path)
                .Tell(new ErrorDialogActor.RegisterShell(this));

            _shellViewModelActor = system.ActorOf(Props.Create(() => new ShellViewModelActor(this)),
                ClientActorPaths.ShellViewModelActor.Name);
        }
        public ConversationsPanel()
        {
            InitializeComponent();

            // We prevent MouseOver effect on ListView. "SelecionMode" must also be set to "None"
            //ConversationsListView.On<Windows>().SetSelectionMode(Xamarin.Forms.PlatformConfiguration.WindowsSpecific.ListViewSelectionMode.Inaccessible);

            // Create / Init ViewModel
            vm = new ConversationsViewModel();

            ConversationsListView.BindingContext = vm;
        }
예제 #7
0
 private void SaveState()
 {
     ConversationsViewModel.Save();
     CountersManager.Current.Save();
     AppGlobalStateManager.Current.SaveState();
     CacheManager.TrySerialize((IBinarySerializable)ImageCache.Current, App._imageDictionaryKey, false, CacheManager.DataType.CachedData);
     VeryLowProfileImageLoader.SaveState();
     SubscriptionFromPostManager.Instance.Save();
     ConversationViewModelCache.Current.FlushToPersistentStorage();
     AudioCacheManager.Instance.Save();
     MediaLRUCache.Instance.Save();
     StickersAutoSuggestDictionary.Instance.SaveState();
 }
예제 #8
0
 private async void LoadChatSignalRAsync()
 {
     try
     {
         if (LoginViewModel.ConversationService.Connection() == null)
         {
             await LoginViewModel.ConversationService.InitConnection();
         }
         LoginViewModel.ConversationService.Connection().On <ChatMessage>("ReceiveMessage", async(chat) =>
         {
             ShellViewModel.Grid.Content = chat.ToString();
             ShellViewModel.Grid.Show();
             await ConversationsViewModel.LoadDataAsync();
         });
     }
     catch (Exception e) { }
 }
 public ConversationsControl()
 {
     InitializeComponent();
     model       = new ConversationsViewModel();
     DataContext = model;
 }
예제 #10
0
        // GET: This method will return a list of conversations
        public async Task <IActionResult> ListConversations()
        {
            using (SqlConnection conn = Connection)
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    // get messages where the curr user is the seller , I want all messages where ppl sent me
                    cmd.CommandText = @"SELECT DISTINCT m.SneakerId, m.SenderId
                                        FROM Message m
                                        INNER JOIN Sneaker s ON s.SneakerId = m.SneakerId
                                        WHERE m.ReceiverId = @theUserId
                                        AND s.UserId = @theUserId;";

                    // parameters
                    var currentUser = await GetCurrentUserAsync();

                    cmd.Parameters.Add(new SqlParameter("@theUserId", currentUser.Id));

                    SqlDataReader reader = cmd.ExecuteReader();
                    List <ConversationsViewModel> Conversations = new List <ConversationsViewModel>();


                    while (reader.Read())
                    {
                        ConversationsViewModel convo = new ConversationsViewModel
                        {
                            SneakerId   = reader.GetInt32(reader.GetOrdinal("SneakerId")),
                            UserId      = reader.GetString(reader.GetOrdinal("SenderId")),
                            Sneaker     = _context.Sneaker.Find(reader.GetInt32(reader.GetOrdinal("SneakerId"))),
                            OtherUserId = reader.GetString(reader.GetOrdinal("SenderId")),
                            OtherUser   = _context.Users.Find(reader.GetString(reader.GetOrdinal("SenderId")))
                        };
                        Conversations.Add(convo);
                    }
                    reader.Close();

                    // get me the messages where the curr
                    cmd.CommandText = @"SELECT DISTINCT m.SneakerId, m.ReceiverId
                                        FROM Message m
                                        INNER JOIN Sneaker s ON s.SneakerId = m.SneakerId
                                        WHERE m.SenderId = @curr
                                        AND s.UserId != @curr;";

                    cmd.Parameters.Add(new SqlParameter("@curr", currentUser.Id));
                    SqlDataReader reader1 = cmd.ExecuteReader();

                    while (reader1.Read())
                    {
                        ConversationsViewModel convo = new ConversationsViewModel
                        {
                            SneakerId   = reader1.GetInt32(reader1.GetOrdinal("SneakerId")),
                            UserId      = currentUser.Id,
                            Sneaker     = _context.Sneaker.Find(reader1.GetInt32(reader1.GetOrdinal("SneakerId"))),
                            OtherUserId = reader1.GetString(reader1.GetOrdinal("ReceiverId")),
                            OtherUser   = _context.Users.Find(reader1.GetString(reader1.GetOrdinal("ReceiverId")))
                        };
                        Conversations.Add(convo);
                        //ViewBag.OtherUserId = reader1.GetString(reader1.GetOrdinal("ReceiverId"));
                        //var otherPerson = _context.Users.Find(reader1.GetString(reader1.GetOrdinal("ReceiverId")));
                        //ViewBag.OtherUserName = otherPerson.FirstName;
                    }
                    reader1.Close();

                    return(View(Conversations));
                }
            }
        }
예제 #11
0
        public Conversations()
        {
            InitializeComponent();

            BindingContext = viewModel = new ConversationsViewModel();
        }