async Task <IList <MediaFile> > PickMediaAsync(string title, PHAssetMediaType type) { mediaPickTcs = new TaskCompletionSource <IList <MediaFile> >(); currentPicker = new GMImagePickerController() { Title = title, MediaTypes = new[] { type } }; currentPicker.FinishedPickingAssets += FinishedPickingAssets; var window = UIApplication.SharedApplication.KeyWindow; var vc = window.RootViewController; while (vc.PresentedViewController != null) { vc = vc.PresentedViewController; } await vc.PresentViewControllerAsync(currentPicker, true); var results = await mediaPickTcs.Task; currentPicker.FinishedPickingAssets -= FinishedPickingAssets; OnMediaPickedCompleted?.Invoke(this, results); return(results); }
async Task <IList <MediaModel> > PickMediaAsync(string sTitle, PHAssetMediaType oType) { _taskCompletionSource = new TaskCompletionSource <IList <MediaModel> >(); GMPicker = new GMImagePickerController() { Title = sTitle, MediaTypes = new[] { oType } }; GMPicker.FinishedPickingAssets += FinishedPickingAsync; var window = UIApplication.SharedApplication.KeyWindow; var vc = window.RootViewController; while (vc.PresentedViewController != null) { vc = vc.PresentedViewController; } await vc.PresentViewControllerAsync(GMPicker, true); var results = await _taskCompletionSource.Task; GMPicker.FinishedPickingAssets -= FinishedPickingAsync; OnMediaPickedCompleted?.Invoke(this, results); return(results); }
private NSArray ToNSArray(PHAssetMediaType[] managed) { var mediaTypes = new NSMutableArray ((nuint) _picker.MediaTypes.Length); for (int i = 0; i < _picker.MediaTypes.Length; i++) { mediaTypes.Add (NSObject.FromObject(_picker.MediaTypes [i])); } return mediaTypes; }
static MediaTypes ToMediaType(PHAssetMediaType type) => type switch {