Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
            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);
            }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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();
        }
Ejemplo n.º 6
0
 public NoteListView(StackPage page, HeaderRow header) : base(page, header)
 {
 }
Ejemplo n.º 7
0
 public ChatsListView(StackPage page, StackRow header) : base(page, header)
 {
     //UIApp.PubSub.Subscribe<ChatMessageDownloadEvent>(this, UpdateCount);
 }
Ejemplo n.º 8
0
 public ContactsListView(MessageNode node, StackPage page, HeaderRow header) : base(page, header)
 {
     Node = node;
 }
Ejemplo n.º 9
0
 protected override ProfileButtonRow AddRow(StackPage page, long item)
 {
     return(_page.AddRow(new ProfileButtonRow(item, Friend)));
 }
Ejemplo n.º 10
0
 public ChatListView(Chat inbox, StackPage page, View header) : base(inbox.Download, page, header)
 {
     _chat = inbox;
     page.Subscribe<NewSecretKeyEvent>(NewSecretKey);
 }
Ejemplo n.º 11
0
 public MessagePageHandler(StackPage page, HeaderRow header)
 {
     _page   = page;
     _header = header;
 }