void SelectImageFromGallery(string localUrl, string remoteUrl, string fileName) { if (ProfileImageButton == null) { return; } var vc = new GalleryImagePicker(); vc.Canceled += (s, e) => { vc.DismissViewController(true, null); }; vc.FinishedPickingMedia += (object s, UIImagePickerMediaPickedEventArgs e) => { switch (e.Info[UIImagePickerController.MediaType].ToString()) { case "public.image": Console.WriteLine("Image selected"); var me = RealmUserServices.GetMe(false); ProfileImageButton.SetImage(UIImage.FromBundle(FallbackImageFileName), new UIControlState()); ProfileImageButton.ShowLoadingIndicators(); UIImage originalImage = e.Info[UIImagePickerController.OriginalImage] as UIImage; var smallerImage = ImageUtils.ScaledToSize(originalImage, new CGSize(200, 200)); var bytes = ImageUtils.ByteArrayFromImage(smallerImage, 100); S3Utils.UploadPhoto(bytes, localUrl, remoteUrl, fileName, () => { SDWebImageManager.SharedManager.ImageCache.RemoveImage(me.RemoteProfileImageURL, true, null); ProfileImageButton.SetImageWithCustomCache(me.GetRemoteProfileImageUrlCached(), FallbackImageFileName, FallbackImageFileName, me.RemoteProfileImageURL); }, null); break; case "public.video": Console.WriteLine("Video selected"); break; } vc.DismissViewController(true, null); }; PresentViewController(vc, true, null); }
void SelectImageFromGallery(ICardView target, string localUrl, string remoteUrl, string fileName,string cacheKey) { if (target == null) return; var vc = new GalleryImagePicker(); vc.Canceled += (sender, e) => { vc.DismissViewController(true, null); }; vc.FinishedPickingMedia += (object sender, UIImagePickerMediaPickedEventArgs e) => { switch (e.Info[UIImagePickerController.MediaType].ToString()) { case "public.image": Console.WriteLine("Image selected"); target.ToggleLoadingIndicators(true); UIImage editedImage = e.Info[UIImagePickerController.EditedImage] as UIImage; editedImage = ImageUtils.ScaledToSize(editedImage, new CGSize(200, 200)); var bytes = ImageUtils.ByteArrayFromImage(editedImage, 100); S3Utils.UploadPhoto(bytes,localUrl, remoteUrl, fileName, () => { SDWebImageManager.SharedManager.ImageCache.ClearDisk(); SDWebImageManager.SharedManager.ImageCache.ClearMemory(); Update(true); }, null); break; case "public.video": Console.WriteLine("Video selected"); break; } vc.DismissViewController(true, null); }; PresentViewController(vc, true, null); }