public void ShowAddUI (UIBarButtonItem addButton, bool dup, bool folder) { if (DismissSheetsAndPopovers ()) { return; } var directory = CurrentDocumentListController.Directory; if (!ActiveFileSystem.IsWritable) return; var form = new Form { new FormAction ( "New " + App.DocumentBaseName, async () => await AddAndOpenNewDocument ()), }; var pbtext = GetPasteboardText (); if (ShowAddFromClipboard && !string.IsNullOrWhiteSpace (pbtext) && lastClipboard != pbtext) { lastClipboard = pbtext; form.Add (new FormAction ( "From Clipboard", async () => await AddAndOpenDocRef (await DocumentReference.New ( directory, App.DocumentBaseName, App.DefaultExtension, ActiveFileSystem, App.CreateDocument, GetNewDocumentText () + pbtext)))); } var odi = OpenedDocIndex; var source = (dup && 0 <= odi && odi < Docs.Count) ? Docs [odi] : null; if (source != null) { form.Add (new FormAction ( "Duplicate", async () => await AddAndOpenDocRef (await source.Duplicate (ActiveFileSystem)))); } if (folder && GetDirectoryDepth (directory) < ActiveFileSystem.MaxDirectoryDepth) { form.Add (new FormAction ( "Folder", AddFolder)); } if (form.Count > 1) { form.Title = "Add"; form.Add (new FormAction ("Cancel")); ActionSheet = form.ToActionSheet (); ActionSheet.ShowFrom (addButton, true); } else { ((FormAction)form [0]).Execute (); } }