public async Task PerformActionOnDocument (DocumentReference docRef, UIViewController fromController, UIBarButtonItem fromButton)
{
try {
if (docRef == null)
return;
var ad = this;
if (ad.DismissSheetsAndPopovers ())
return;
NSObject[] items = new NSObject[0];
UIActivity[] aa = new UIActivity[0];
try {
var d = (await docRef.Open ()) as TextDocument;
if (d != null) {
items = await d.GetActivityItemsAsync (fromController);
aa = await d.GetActivitiesAsync (fromController);
}
await docRef.Close ();
} catch (Exception ex) {
Debug.WriteLine (ex);
}
if (items.Length > 0) {
var tcs = new TaskCompletionSource<bool> ();
var a = new UIActivityViewController (items, aa);
a.ModalPresentationStyle = UIModalPresentationStyle.Popover;
a.CompletionHandler = (x,success) => {
Console.WriteLine ("COMPLETE {0} {1}", x, success);
tcs.SetResult (success);
};
if (UIDevice.CurrentDevice.CheckSystemVersion (8, 0)) {
if (a.PopoverPresentationController != null) {
try {
a.PopoverPresentationController.BarButtonItem = fromButton;
} catch (Exception) {
a.PopoverPresentationController.SourceView = fromController.View;
}
}
}
fromController.PresentViewController (a, true, null);
await tcs.Task;
}
} catch (Exception ex) {
Console.WriteLine ("Perform Act of Doc Failed: " + ex);
}
}