/// <summary> /// Adds a ChatSelection tile the the Chat seletion stack /// </summary> /// <param name="source"></param> /// <param name="args"></param> private void Chat_Added(object source, ChatEventArgs args) { ChatPage chatPage = new ChatPage(args.Chat); ChatSelectionTile chatSelectionTile = new ChatSelectionTile(chatPage); Device.BeginInvokeOnMainThread(() => { chatSelectionStack.Children.Add(chatSelectionTile); chatSelctScroll.ScrollToAsync(chatSelectionStack, ScrollToPosition.Start, false); }); OrderMostRecentChat(chatSelectionTile); }
/// <summary> /// Adds the saved Chats to the UI /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ChatSelection_SavedChatAdded(object sender, ChatEventArgs e) { List <Chat> savedChats = e.ChatList; int curruntNummerOfChatSeletionTiles = CurrentChatSelectionTiles().Count; if (savedChats.Count == curruntNummerOfChatSeletionTiles) { return; } else if (savedChats.Count >= curruntNummerOfChatSeletionTiles) { Device.BeginInvokeOnMainThread(() => { foreach (Chat chat in savedChats) { ChatPage chatPage = new ChatPage(chat); ChatSelectionTile chatSelectionTile = new ChatSelectionTile(chatPage); chatSelectionStack.Children.Add(chatSelectionTile); } }); return; } else if (savedChats.Count <= curruntNummerOfChatSeletionTiles) { Device.BeginInvokeOnMainThread(() => { foreach (Chat chat in savedChats) { ChatPage chatPage = new ChatPage(chat); ChatSelectionTile chatSelectionTile = new ChatSelectionTile(chatPage); chatSelectionStack.Children.Add(chatSelectionTile); } }); } App.SaveData = GetChatsCurrentChats(); }
/// <summary> /// Places the last manipulatat ChatSelection tile as the first of the chatSelectionStack /// </summary> /// <param name="tile"></param> public void OrderMostRecentChat(ChatSelectionTile tile) { //Reordes the List so that the chat with the Newest Message is the first in the Chat Selection stack Device.BeginInvokeOnMainThread(() => { //Removes Possible duplicats List <ChatSelectionTile> selectionTiles = RemoveDuplicats(CurrentChatSelectionTiles()); selectionTiles.Remove(tile); selectionTiles.Reverse(); selectionTiles.Add(tile); selectionTiles.Reverse(); chatSelectionStack.Children.Clear(); //add´s the new Order of Chat Seletion Tiles and Removes Duplicats foreach (var item in selectionTiles) { chatSelectionStack.Children.Add(item); } }); }