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); }
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")); } }