Unity.Platform.IPhone.IPhoneMedia.HandleCameraFinishedPickingMedia C# (CSharp) Method

HandleCameraFinishedPickingMedia() private method

private HandleCameraFinishedPickingMedia ( object sender, UIImagePickerMediaPickedEventArgs e ) : void
sender object
e UIImagePickerMediaPickedEventArgs
return void
		void HandleCameraFinishedPickingMedia (object sender, UIImagePickerMediaPickedEventArgs e)
		{
			UIApplication.SharedApplication.InvokeOnMainThread (delegate {
				IPhoneServiceLocator.CurrentDelegate.MainUIViewController ().DismissModalViewController(true);
			});
			
			SystemLogger.Log(SystemLogger.Module.PLATFORM, "Camera FinishedPickingMedia " + e.Info);
				
			MediaMetadata mediaData = new MediaMetadata();
			
			try {
				NSString mediaType = (NSString) e.Info.ValueForKey(UIImagePickerController.MediaType);
				UIImage image = (UIImage) e.Info.ValueForKey(UIImagePickerController.OriginalImage);

				if(image != null && mediaType !=null && mediaType == "public.image") { // "public.image" is the default UTI (uniform type) for images. 
					mediaData.Type = MediaType.Photo;
					mediaData.MimeType = MediaMetadata.GetMimeTypeFromExtension(".jpg");
					mediaData.Title = (image.GetHashCode() & 0x7FFFFFFF) + ".JPG";

					NSData imageData = image.AsJPEG();

					if(imageData !=null) {
						mediaData.Size = (long)imageData.Length;

						SystemLogger.Log(SystemLogger.Module.PLATFORM, "Getting image file size: "+mediaData.Size);

						SystemLogger.Log(SystemLogger.Module.PLATFORM, "Getting image data raw data...");
						
						byte[] buffer = new byte[imageData.Length];
						Marshal.Copy(imageData.Bytes, buffer,0,buffer.Length);

						if(cameraOptions!=null) {
							buffer = ResizeImage(buffer, image.Size.Width / cameraOptions.ImageScaleFactor , image.Size.Height / cameraOptions.ImageScaleFactor);
							SystemLogger.Log(SystemLogger.Module.PLATFORM, "Getting image file size (SCALED by " + cameraOptions.ImageScaleFactor + "): "+buffer.Length);
							mediaData.Size = (long)buffer.Length;
							SystemLogger.Log(SystemLogger.Module.PLATFORM, "Getting image file size (SCALED): "+mediaData.Size);
						}

						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);
		}