protected override ButtonRow AddRow(StackPage page, TransactionDownloadData<Transaction> transaction) { var message = _chat.GetMessage(transaction); var accountId = transaction.Transaction.AccountId; var button = page.AddButtonRow(null, Message); button.LabelPadding = 0; button.RowStyle = Theme.MessageButton; button.RowLayout.Children.RemoveAt(0); button.RowLayout.Children.Remove(button.FontIcon); button.Label.Margin = new Thickness(5, 2, 5, 2); var (text, detail) = GetMessageText(message); button.SetMultilineText(text, detail); button.Tag = message; if (accountId == _chat.AccountId) { button.Margin = new Thickness(0, 0, 46, 0); } else { button.Margin = new Thickness(46, 0, 0, 0); } return button; }
protected override ButtonViewRow <NoteView> AddRow(StackPage page, TransactionDownloadData <Transaction> item) { var noteData = NoteApp.Current.GetNoteData(item); var serviceNode = noteData.ServiceNode; var button = page.AddButtonViewRow(new NoteView(noteData), Note); button.RowLayout.SetAccentColor(serviceNode.AccentColor); return(button); }
public static bool SetupTodoList(StackPage stackPage, Func <ButtonRow, Task> action) { var hasTodoList = false; var header = stackPage.GetRow <HeaderRow>("TodoLists"); if (header != null) { var rows = stackPage.GetHeaderSectionRows(header); var rowIndex = 0; stackPage.AddIndexBefore = false; stackPage.AddIndex = header; foreach (var serviceNode in ServiceNodeManager.Current.ServiceNodes) { var todo = TodoApp.Current.GetTodo(serviceNode); if (todo != null) { foreach (var todoList in todo.TodoLists) { hasTodoList = true; if (!(rowIndex < rows.Count && rows[rowIndex] is ButtonRow button && button.Tag is TodoList)) { button = stackPage.AddButtonRow(null, action); } var name = TodoApp.GetTodoListName(todoList); if (button.Label.Text != name) { button.Label.Text = name; } button.RowLayout.SetAccentColor(serviceNode.AccentColor); button.Tag = todoList; stackPage.AddIndex = button; ++rowIndex; } } } for (var i = rowIndex; i < rows.Count; i++) { if (rows[i] is ButtonRow button && button.Tag is TodoList) { stackPage.RemoveView(button); } } } return(hasTodoList); }
protected override ChatProfileButtonRow AddRow(StackPage page, Chat item) { var friend = item.Node.GetFriend(item.FriendAccountId); if (friend == null) { return(null); } var row = page.AddRow(new ChatProfileButtonRow(item.Node.ServiceNode, friend.AccountId, friend.Profile, ProfileManager.Current.GetCachedProfileData(friend.AccountId), OpenChat, true)); row.UpdateMessagesCount(item.LastCount - item.LastViewedCount); return(row); }
void AddInboxes(StackPage page, long accountId, Func <ButtonRow, Task> action, InboxRecordDownloadEvent downloadResult) { page.RemoveHeaderSection("Inboxes"); page.AddIndex = page.GetRow("Title"); page.AddIndex = page.AddHeaderRow("Inboxes"); var result = downloadResult; //if(result == null) //result = await node.DownloadInboxRecords(accountId); if (result.Result == MessageNodeEventResultTypes.Ok) { foreach (var item in result.InboxRecords) { var button = page.AddButtonRow(null, action); page.AddIndex = button; var inboxName = item.InboxRecord?.Title; if (inboxName == null) { inboxName = Tr.Get("Common.Inbox"); } button.SetMultilineText(inboxName, Tr.Get("Common.InboxName", accountId, item.KeyIndex)); button.SetDetailViewIcon(Icons.Inbox); button.Tag = item; } } else { if (result.Result == MessageNodeEventResultTypes.InvalidAccount) { page.AddIndex = page.AddInfoRow("InvalidAccount"); } else { page.AddIndex = page.AddInfoRow("DownloadFailed"); } } page.AddIndex = page.AddFooterRow(); }
public NoteListView(StackPage page, HeaderRow header) : base(page, header) { }
public ChatsListView(StackPage page, StackRow header) : base(page, header) { //UIApp.PubSub.Subscribe<ChatMessageDownloadEvent>(this, UpdateCount); }
public ContactsListView(MessageNode node, StackPage page, HeaderRow header) : base(page, header) { Node = node; }
protected override ProfileButtonRow AddRow(StackPage page, long item) { return(_page.AddRow(new ProfileButtonRow(item, Friend))); }
public ChatListView(Chat inbox, StackPage page, View header) : base(inbox.Download, page, header) { _chat = inbox; page.Subscribe<NewSecretKeyEvent>(NewSecretKey); }
public MessagePageHandler(StackPage page, HeaderRow header) { _page = page; _header = header; }