Unity.Platform.IPhone.IPhoneMedia.HandleImagePickerControllerFinishedPickingMedia C# (CSharp) Метод

HandleImagePickerControllerFinishedPickingMedia() приватный Метод

private HandleImagePickerControllerFinishedPickingMedia ( object sender, UIImagePickerMediaPickedEventArgs e ) : void
sender object
e UIImagePickerMediaPickedEventArgs
Результат void
		void HandleImagePickerControllerFinishedPickingMedia (object sender, UIImagePickerMediaPickedEventArgs e)
		{
			UIApplication.SharedApplication.InvokeOnMainThread (delegate {
				if(popover != null && popover.PopoverVisible) {
					popover.Dismiss(true);
        			popover.Dispose();
				} else {
					IPhoneServiceLocator.CurrentDelegate.MainUIViewController ().DismissModalViewController(true);
				}
			});
			
			SystemLogger.Log(SystemLogger.Module.PLATFORM, "FinishedPickingMedia " + e.Info);
				
			MediaMetadata mediaData = new MediaMetadata();
			mediaData.Type = MediaType.NotSupported;
			
			try {
				NSString mediaType = (NSString) e.Info.ValueForKey(UIImagePickerController.MediaType);
				UIImage image = (UIImage) e.Info.ValueForKey(UIImagePickerController.OriginalImage);
				object url = e.Info.ValueForKey(UIImagePickerController.ReferenceUrl);
				NSUrl nsReferenceUrl = new NSUrl(url.ToString());
				
				if(image != null && mediaType !=null && mediaType == "public.image") { // "public.image" is the default UTI (uniform type) for images. 
					mediaData.Type = MediaType.Photo;
					
					string fileExtension = Path.GetExtension(nsReferenceUrl.Path.ToLower());
					mediaData.MimeType = MediaMetadata.GetMimeTypeFromExtension(fileExtension);
					mediaData.Title = this.GetImageMediaTitle(nsReferenceUrl.AbsoluteString);
					
					
					NSData imageData = null;
					if(mediaData.MimeType == "image/png" || mediaData.MimeType == "image/gif" || mediaData.MimeType == "image/tiff") {
						imageData = image.AsPNG();
					} else if (mediaData.MimeType == "image/jpeg" || mediaData.MimeType == "image/jpg") {
						imageData = image.AsJPEG();
					}
					
					if(imageData !=null) {
						mediaData.Size = (long)imageData.Length;
						SystemLogger.Log(SystemLogger.Module.PLATFORM, "Getting image file size: "+mediaData.Size);
						
						byte[] buffer = new byte[imageData.Length];
						Marshal.Copy(imageData.Bytes, buffer,0,buffer.Length);
						
						IFileSystem fileSystemService = (IFileSystem)IPhoneServiceLocator.GetInstance ().GetService ("file");
						SystemLogger.Log(SystemLogger.Module.CORE, "Storing media file on application filesystem...");
			
						mediaData.ReferenceUrl = fileSystemService.StoreFile(IPhoneMedia.ASSETS_PATH, mediaData.Title, buffer);
					}
					
					SystemLogger.Log(SystemLogger.Module.PLATFORM, mediaData.MimeType + ", "+ mediaData.ReferenceUrl + ", " + mediaData.Title);
					
				}
			} catch(Exception ex) {
				SystemLogger.Log(SystemLogger.Module.PLATFORM, "Error when extracting information from media file: " + ex.Message, ex);
			}
			
			IPhoneUtils.GetInstance().FireUnityJavascriptEvent("Appverse.Media.onFinishedPickingImage", mediaData);
		}