private void LoadTable(ChatBubbleCell _cell) { List<CustomCellGroup> cellGroups = new List<CustomCellGroup>(); tableCellGroup = new CustomCellGroup(); cellGroups.Add(tableCellGroup); ChatBubbleCell cell; for (int x = 0; x < messages.Count; x++) { cell = new ChatBubbleCell(isLeft[x], false, isdelivered[x]); cell.Update(messages[x], timeStamps[x]); cell.SetMessageID(message_ids[x]); if (!isdelivered[x]) cell.SetAsUndelivered(); tableCellGroup.Cells.Add(cell); } if (_cell != null) { tableCellGroup.Cells.Add(_cell); } SetTableSize(); // //Pending // cell = new ChatBubbleCell(false); // cell.Update ("This is a pending cell", "8:00 PM"); // cell.SetAsPending (); // tableCellGroup.Cells.Add (cell); // // //Undelivered // cell = new ChatBubbleCell(true); // cell.Update ("This is a undelivered cell", "8:05 PM"); // cell.SetAsUndelivered (); // tableCellGroup.Cells.Add (cell); source = new CustomCellTableSource(cellGroups); source.RowSelectedAction = RowSelected; source.DeleteAction = DeleteSelected; source.DeleteTitle = "Delete"; table.Source = source; }
private async void SendMessageThread(bool isattachment, string message) { DateTime now = DateTime.Now; const string format = "ddd HH:mm tt"; bool delivered = false; try { MessageManager.SendMessage(MessageManager.PrepareOutgoingMessage(message, Number)); delivered = true; } catch (StaleDevicesException e) { MessageManager.EndSession(Number); } catch (Exception e) { Console.WriteLine("Exception while sending message...." + e.Message); } using (var conn = new SQLite.SQLiteConnection(AppDelegate._dbPath)) { var pmessage = new PushMessage { Thread_id = ThreadID, Number = Number, TimeStamp = AppDelegate.CurrentTimeMillis(), TimeStamp_Sent = Convert.ToInt64(AppDelegate.CurrentTimeMillis()), Read = 0, Message = message, Status = delivered, Service = "PushLocal" }; conn.Insert(pmessage); conn.Commit(); conn.Close(); } PointF pf = new PointF(0f, (messages.Count + 3) * 64 - table.Bounds.Size.Height); table.SetContentOffset(pf, true); ChatBubbleCell cell = new ChatBubbleCell(false, false, delivered); cell.Update(message, now.ToString(format)); TableRowHeight = cell.getHeight(); if (!delivered) cell.SetAsUndelivered(); if (isattachment) cell.setImagePreview(thumbnail); LoadTable(cell); AddDataToConversation(); }