protected override void OnActivityResult (int requestCode, [GeneratedEnum] Result resultCode, Intent data) { base.OnActivityResult (requestCode, resultCode, data); if (resultCode == Result.Canceled) { // Notify user file picking was cancelled. OnFilePickCancelled (); Finish (); } else { System.Diagnostics.Debug.Write (data.Data); try { var _uri = data.Data; var filePath = IOUtil.getPath (context, _uri); if (string.IsNullOrEmpty (filePath)) filePath = _uri.Path; var file = IOUtil.readFile (filePath); var fileName = GetFileName (context, _uri); OnFilePicked (new FilePickerEventArgs (file, fileName, filePath)); } catch (Exception readEx) { // Notify user file picking failed. OnFilePickCancelled (); System.Diagnostics.Debug.Write (readEx); } finally { Finish (); } } }
protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data) { base.OnActivityResult(requestCode, resultCode, data); if (resultCode == Result.Canceled) { // Notify user file picking was cancelled. OnFilePickCancelled(); Finish(); } else { System.Diagnostics.Debug.Write(data.Data); try { var _uri = data.Data; var filePath = IOUtil.getPath(context, _uri); if (string.IsNullOrEmpty(filePath)) { filePath = IOUtil.isMediaStore(_uri.Scheme) ? _uri.ToString() : _uri.Path; } byte[] file; if (IOUtil.isMediaStore(_uri.Scheme)) { file = IOUtil.readFile(context, _uri); } else { file = IOUtil.readFile(filePath); } var fileName = GetFileName(context, _uri); OnFilePicked(new FilePickerEventArgs(file, fileName, filePath)); } catch (Exception readEx) { System.Diagnostics.Debug.Write(readEx); // Notify user file picking failed. FilePickCancelled?.Invoke( this, new FilePickerCancelledEventArgs { Exception = readEx }); } finally { Finish(); } } }