Exemple #1
0
        StackRow AddMessageRow(TransactionDownloadData <Transaction> transaction)
        {
            var             att      = transaction.Transaction as AttachementDataTransaction;
            var             hasImage = att.Items.Any((i) => i.Name == StatusServiceInfo.ImageFileName);
            ButtonLayoutRow row      = null;

            if (!hasImage)
            {
                var view = new TextMessageView(transaction, _page);
                row     = new ButtonLayoutRow(Icons.RowMore, view.Button, view);
                row.Tag = view;
            }
            else
            {
                var view = new ImageMessageView(transaction, _page);
                row = new ButtonLayoutRow(Icons.RowMore, view.Button, view);

                row.OnColorStyleChange = (colorStyle) => view.LabelFrame.ColorStyle = colorStyle;
                row.Tag = view;
            }

            //row.RowStyle = Theme.MessageRowButton;
            _page.AddView(row);
            return(row);
        }
Exemple #2
0
        public async Task Button(ButtonLayoutRow button)
        {
            var cancel = Tr.Get("Common.Cancel");

            var download = Tr.Get("Common.MessageDownload");
            var link     = Tr.Get("Common.MessageLink");
            var share    = Tr.Get("Common.Share");
            var copy     = Tr.Get("Common.CopyShareLink");
            var items    = new List <string>();

            if (!string.IsNullOrWhiteSpace(_link))
            {
                items.Add(link);
            }

            if (!HasAllAttachements)
            {
                items.Add(download);
            }

            if (UIApp.CanShare)
            {
                items.Add(share);
            }
            items.Add(copy);
            if (items.Count == 0)
            {
                return;
            }

            var result = await Page.DisplayActionSheet(null, cancel, null, items.ToArray());

            if (result == download)
            {
                await Transaction.TransactionManager.DownloadTransactionAttachement(Transaction);

                if (!HasAllAttachements)
                {
                    await Page.ErrorAsync("MessageDownloadFailed");
                }
                Update();
            }
            else if (result == link)
            {
                UIApp.OpenUrl(new Uri(_link));
            }
            else if (result == share)
            {
                UIApp.Share(StatusApp.Current.GetRequestCode(Transaction.Tag as ServiceNode, StatusServiceInfo.StatusDataChainIndex, ViewMessageSchemeAction.ActionName, Transaction.Transaction.AccountId, Transaction.Transaction.TransactionId));
            }
            else if (result == copy)
            {
                UIApp.CopyToClipboard(StatusApp.Current.GetRequestCode(Transaction.Tag as ServiceNode, StatusServiceInfo.StatusDataChainIndex, ViewMessageSchemeAction.ActionName, Transaction.Transaction.AccountId, Transaction.Transaction.TransactionId));
                UIApp.Toast(Tr.Get("Common.CopiedToClipboard"));
            }
        }