From 4ef1c71c965aff0dfe240eb9b1336bf0fc1bdb27 Mon Sep 17 00:00:00 2001 From: Benjamin Verdier Date: Wed, 20 Jun 2018 15:26:58 +0200 Subject: [PATCH] Change image saving method to be Photos framework compliant --- Classes/ChatConversationView.m | 48 ++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/Classes/ChatConversationView.m b/Classes/ChatConversationView.m index bf5dd6555..7e2a3f074 100644 --- a/Classes/ChatConversationView.m +++ b/Classes/ChatConversationView.m @@ -17,6 +17,8 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#import + #import "ChatConversationView.h" #import "PhoneMainView.h" #import "Utils.h" @@ -311,29 +313,29 @@ static UICompositeViewDescription *compositeDescription = nil; - (void)saveAndSend:(UIImage *)image url:(NSURL *)url withQuality:(float)quality{ // photo from Camera, must be saved first if (url == nil) { - [LinphoneManager.instance.photoLibrary - writeImageToSavedPhotosAlbum:image.CGImage - orientation:(ALAssetOrientation)[image imageOrientation] - completionBlock:^(NSURL *assetURL, NSError *error) { - if (error) { - LOGE(@"Cannot save image data downloaded [%@]", [error localizedDescription]); - - UIAlertController *errView = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Transfer error", nil) - message:NSLocalizedString(@"Cannot write image to photo library", - nil) - preferredStyle:UIAlertControllerStyleAlert]; - - UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"OK" - style:UIAlertActionStyleDefault - handler:^(UIAlertAction * action) {}]; - - [errView addAction:defaultAction]; - [self presentViewController:errView animated:YES completion:nil]; - } else { - LOGI(@"Image saved to [%@]", [assetURL absoluteString]); - [self startImageUpload:image url:assetURL withQuality:quality]; - } - }]; + __block NSURL *assetURL = nil; + [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{ + [PHAssetChangeRequest creationRequestForAssetFromImage:image]; + } completionHandler:^(BOOL success, NSError *error) { + if (success) { + LOGI(@"Image saved to [%@]", [assetURL absoluteString]); + [self startImageUpload:image url:assetURL withQuality:quality]; + } else { + LOGE(@"Cannot save image data downloaded [%@]", [error localizedDescription]); + + UIAlertController *errView = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Transfer error", nil) + message:NSLocalizedString(@"Cannot write image to photo library", + nil) + preferredStyle:UIAlertControllerStyleAlert]; + + UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"OK" + style:UIAlertActionStyleDefault + handler:^(UIAlertAction * action) {}]; + + [errView addAction:defaultAction]; + [self presentViewController:errView animated:YES completion:nil]; + } + }]; } else { [self startImageUpload:image url:url withQuality:quality]; }