From e13dc30500d2c389068eff4cb4210119587b2ecd Mon Sep 17 00:00:00 2001 From: yusufdag Date: Tue, 11 May 2021 20:58:52 +0200 Subject: [PATCH 1/9] Add UIAlertController implementation Since UIAlertView is deprecated I implemented UIAlertController with a preferredStyle of UIAlertControllerStyleAlert instead. --- .../ios/Classes/FLTImagePickerPlugin.m | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/image_picker/image_picker/ios/Classes/FLTImagePickerPlugin.m b/packages/image_picker/image_picker/ios/Classes/FLTImagePickerPlugin.m index c368c424f2c4..a46f8a26a630 100644 --- a/packages/image_picker/image_picker/ios/Classes/FLTImagePickerPlugin.m +++ b/packages/image_picker/image_picker/ios/Classes/FLTImagePickerPlugin.m @@ -190,11 +190,17 @@ - (void)showCamera { animated:YES completion:nil]; } else { - [[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error", nil) - message:NSLocalizedString(@"Camera not available.", nil) - delegate:nil - cancelButtonTitle:NSLocalizedString(@"OK", nil) - otherButtonTitles:nil] show]; + UIAlertController *cameraErrorAlert = + [UIAlertController alertControllerWithTitle:@"Error" + message:@"Camera not available." + preferredStyle:UIAlertControllerStyleAlert]; + [cameraErrorAlert addAction:[UIAlertAction actionWithTitle:@"OK" + style:UIAlertActionStyleDefault + handler:^(UIAlertAction *action){ + }]]; + [[self viewControllerWithWindow:nil] presentViewController:cameraErrorAlert + animated:YES + completion:nil]; self.result(nil); self.result = nil; _arguments = nil; From 1117af5f25c7b4da2439a0d885ceff6ffaa8661d Mon Sep 17 00:00:00 2001 From: yusufdag Date: Tue, 11 May 2021 21:15:49 +0200 Subject: [PATCH 2/9] Fix to dispatch everything at once --- .../image_picker/ios/Classes/FLTImagePickerPlugin.m | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/packages/image_picker/image_picker/ios/Classes/FLTImagePickerPlugin.m b/packages/image_picker/image_picker/ios/Classes/FLTImagePickerPlugin.m index a46f8a26a630..097dec5f5c8b 100644 --- a/packages/image_picker/image_picker/ios/Classes/FLTImagePickerPlugin.m +++ b/packages/image_picker/image_picker/ios/Classes/FLTImagePickerPlugin.m @@ -217,17 +217,15 @@ - (void)checkCameraAuthorization { case AVAuthorizationStatusNotDetermined: { [AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo completionHandler:^(BOOL granted) { - if (granted) { - dispatch_async(dispatch_get_main_queue(), ^{ + dispatch_async(dispatch_get_main_queue(), ^{ + if (granted) { if (granted) { [self showCamera]; } - }); - } else { - dispatch_async(dispatch_get_main_queue(), ^{ + } else { [self errorNoCameraAccess:AVAuthorizationStatusDenied]; - }); - } + } + }); }]; }; break; case AVAuthorizationStatusDenied: From 5178493b0b19c309367e55f9c6523c9ca9564db6 Mon Sep 17 00:00:00 2001 From: yusufdag Date: Wed, 12 May 2021 10:06:51 +0200 Subject: [PATCH 3/9] Remove unnecessary condition --- .../ios/Classes/FLTImagePickerPlugin.m | 66 +++++++++---------- 1 file changed, 32 insertions(+), 34 deletions(-) diff --git a/packages/image_picker/image_picker/ios/Classes/FLTImagePickerPlugin.m b/packages/image_picker/image_picker/ios/Classes/FLTImagePickerPlugin.m index 097dec5f5c8b..7cd571af891c 100644 --- a/packages/image_picker/image_picker/ios/Classes/FLTImagePickerPlugin.m +++ b/packages/image_picker/image_picker/ios/Classes/FLTImagePickerPlugin.m @@ -368,40 +368,38 @@ - (void)picker:(PHPickerViewController *)picker completionHandler:^(__kindof id _Nullable image, NSError *_Nullable error) { if ([image isKindOfClass:[UIImage class]]) { - if (image != nil) { - __block UIImage *localImage = image; - dispatch_async(dispatch_get_main_queue(), ^{ - if (maxWidth != (id)[NSNull null] || maxHeight != (id)[NSNull null]) { - localImage = [FLTImagePickerImageUtil scaledImage:localImage - maxWidth:maxWidth - maxHeight:maxHeight]; - } - - PHAsset *originalAsset = - [FLTImagePickerPhotoAssetUtil getAssetFromPHPickerResult:result]; - - if (!originalAsset) { - // Image picked without an original asset (e.g. User took a photo directly) - [self saveImageWithPickerInfo:nil - image:localImage - imageQuality:desiredImageQuality]; - } else { - [[PHImageManager defaultManager] - requestImageDataForAsset:originalAsset - options:nil - resultHandler:^( - NSData *_Nullable imageData, NSString *_Nullable dataUTI, - UIImageOrientation orientation, NSDictionary *_Nullable info) { - // maxWidth and maxHeight are used only for GIF images. - [self saveImageWithOriginalImageData:imageData - image:localImage - maxWidth:maxWidth - maxHeight:maxHeight - imageQuality:desiredImageQuality]; - }]; - } - }); - } + __block UIImage *localImage = image; + dispatch_async(dispatch_get_main_queue(), ^{ + if (maxWidth != (id)[NSNull null] || maxHeight != (id)[NSNull null]) { + localImage = [FLTImagePickerImageUtil scaledImage:localImage + maxWidth:maxWidth + maxHeight:maxHeight]; + } + + PHAsset *originalAsset = + [FLTImagePickerPhotoAssetUtil getAssetFromPHPickerResult:result]; + + if (!originalAsset) { + // Image picked without an original asset (e.g. User took a photo directly) + [self saveImageWithPickerInfo:nil + image:localImage + imageQuality:desiredImageQuality]; + } else { + [[PHImageManager defaultManager] + requestImageDataForAsset:originalAsset + options:nil + resultHandler:^( + NSData *_Nullable imageData, NSString *_Nullable dataUTI, + UIImageOrientation orientation, NSDictionary *_Nullable info) { + // maxWidth and maxHeight are used only for GIF images. + [self saveImageWithOriginalImageData:imageData + image:localImage + maxWidth:maxWidth + maxHeight:maxHeight + imageQuality:desiredImageQuality]; + }]; + } + }); } }]; } From 6d7c1a471ee44b70550d3934d2621a7f71d39e78 Mon Sep 17 00:00:00 2001 From: yusufdag Date: Wed, 12 May 2021 10:59:41 +0200 Subject: [PATCH 4/9] Add the description into CHANGELOG file --- packages/image_picker/image_picker/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/image_picker/image_picker/CHANGELOG.md b/packages/image_picker/image_picker/CHANGELOG.md index 9c2bcc72b7e3..201de13058dd 100644 --- a/packages/image_picker/image_picker/CHANGELOG.md +++ b/packages/image_picker/image_picker/CHANGELOG.md @@ -1,8 +1,11 @@ +## tbd +* Implement UIAlertController with a preferredStyle of UIAlertControllerStyleAlert since UIAlertView is deprecated. + ## 0.7.5 * Fixes an issue where image rotation is wrong when Select Photos chose and image is scaled. * Migrate to PHPicker for iOS 14 and higher versions to pick image from the photo library. -* Implement the limited permission to pick photo from the photo library when Select Photo is chose. +* Implement the limited permission to pick photo from the photo library when Select Photo is chosen. ## 0.7.4 From 40decd7e367e0262f3bdc428e10775982dcb096a Mon Sep 17 00:00:00 2001 From: yusufdag Date: Mon, 17 May 2021 09:46:40 +0200 Subject: [PATCH 5/9] Updated pubspec.yaml and CHANGELOG.md files --- packages/image_picker/image_picker/CHANGELOG.md | 2 +- packages/image_picker/image_picker/pubspec.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/image_picker/image_picker/CHANGELOG.md b/packages/image_picker/image_picker/CHANGELOG.md index af1f401f3858..18e1b88d864e 100644 --- a/packages/image_picker/image_picker/CHANGELOG.md +++ b/packages/image_picker/image_picker/CHANGELOG.md @@ -1,4 +1,4 @@ -## tbd +## 0.7.6 * Implement UIAlertController with a preferredStyle of UIAlertControllerStyleAlert since UIAlertView is deprecated. ## 0.7.5+1 diff --git a/packages/image_picker/image_picker/pubspec.yaml b/packages/image_picker/image_picker/pubspec.yaml index fa6f653fa003..466615d940d4 100755 --- a/packages/image_picker/image_picker/pubspec.yaml +++ b/packages/image_picker/image_picker/pubspec.yaml @@ -2,7 +2,7 @@ name: image_picker description: Flutter plugin for selecting images from the Android and iOS image library, and taking new pictures with the camera. homepage: https://github.com/flutter/plugins/tree/master/packages/image_picker/image_picker -version: 0.7.5+1 +version: 0.7.6 flutter: plugin: From 96f98cb92c239b88a50ead2b29bf65bdf0ea2e74 Mon Sep 17 00:00:00 2001 From: yusufdag Date: Mon, 17 May 2021 09:50:22 +0200 Subject: [PATCH 6/9] Fix format --- .../ios/Classes/FLTImagePickerPlugin.m | 66 +++++++++---------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/packages/image_picker/image_picker/ios/Classes/FLTImagePickerPlugin.m b/packages/image_picker/image_picker/ios/Classes/FLTImagePickerPlugin.m index b862fc8933b1..236d41d681ca 100644 --- a/packages/image_picker/image_picker/ios/Classes/FLTImagePickerPlugin.m +++ b/packages/image_picker/image_picker/ios/Classes/FLTImagePickerPlugin.m @@ -368,39 +368,39 @@ - (void)picker:(PHPickerViewController *)picker completionHandler:^(__kindof id _Nullable image, NSError *_Nullable error) { if ([image isKindOfClass:[UIImage class]]) { - __block UIImage *localImage = image; - dispatch_async(dispatch_get_main_queue(), ^{ - PHAsset *originalAsset = - [FLTImagePickerPhotoAssetUtil getAssetFromPHPickerResult:result]; - - if (maxWidth != (id)[NSNull null] || maxHeight != (id)[NSNull null]) { - localImage = [FLTImagePickerImageUtil scaledImage:localImage - maxWidth:maxWidth - maxHeight:maxHeight - isMetadataAvailable:originalAsset != nil]; - } - - if (!originalAsset) { - // Image picked without an original asset (e.g. User took a photo directly) - [self saveImageWithPickerInfo:nil - image:localImage - imageQuality:desiredImageQuality]; - } else { - [[PHImageManager defaultManager] - requestImageDataForAsset:originalAsset - options:nil - resultHandler:^( - NSData *_Nullable imageData, NSString *_Nullable dataUTI, - UIImageOrientation orientation, NSDictionary *_Nullable info) { - // maxWidth and maxHeight are used only for GIF images. - [self saveImageWithOriginalImageData:imageData - image:localImage - maxWidth:maxWidth - maxHeight:maxHeight - imageQuality:desiredImageQuality]; - }]; - } - }); + __block UIImage *localImage = image; + dispatch_async(dispatch_get_main_queue(), ^{ + PHAsset *originalAsset = + [FLTImagePickerPhotoAssetUtil getAssetFromPHPickerResult:result]; + + if (maxWidth != (id)[NSNull null] || maxHeight != (id)[NSNull null]) { + localImage = [FLTImagePickerImageUtil scaledImage:localImage + maxWidth:maxWidth + maxHeight:maxHeight + isMetadataAvailable:originalAsset != nil]; + } + + if (!originalAsset) { + // Image picked without an original asset (e.g. User took a photo directly) + [self saveImageWithPickerInfo:nil + image:localImage + imageQuality:desiredImageQuality]; + } else { + [[PHImageManager defaultManager] + requestImageDataForAsset:originalAsset + options:nil + resultHandler:^( + NSData *_Nullable imageData, NSString *_Nullable dataUTI, + UIImageOrientation orientation, NSDictionary *_Nullable info) { + // maxWidth and maxHeight are used only for GIF images. + [self saveImageWithOriginalImageData:imageData + image:localImage + maxWidth:maxWidth + maxHeight:maxHeight + imageQuality:desiredImageQuality]; + }]; + } + }); } }]; } From f59451fb2dff8270ba4df67598a1a889d561fac0 Mon Sep 17 00:00:00 2001 From: yusufdag Date: Mon, 17 May 2021 16:32:08 +0200 Subject: [PATCH 7/9] Fix the version number and description --- packages/image_picker/image_picker/CHANGELOG.md | 2 +- packages/image_picker/image_picker/pubspec.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/image_picker/image_picker/CHANGELOG.md b/packages/image_picker/image_picker/CHANGELOG.md index 18e1b88d864e..25a224be2152 100644 --- a/packages/image_picker/image_picker/CHANGELOG.md +++ b/packages/image_picker/image_picker/CHANGELOG.md @@ -1,5 +1,5 @@ ## 0.7.6 -* Implement UIAlertController with a preferredStyle of UIAlertControllerStyleAlert since UIAlertView is deprecated. +* Implement `UIAlertController` with a preferredStyle of `UIAlertControllerStyleAlert` since `UIAlertView` is deprecated. ## 0.7.5+1 diff --git a/packages/image_picker/image_picker/pubspec.yaml b/packages/image_picker/image_picker/pubspec.yaml index 466615d940d4..408045d66aa4 100755 --- a/packages/image_picker/image_picker/pubspec.yaml +++ b/packages/image_picker/image_picker/pubspec.yaml @@ -2,7 +2,7 @@ name: image_picker description: Flutter plugin for selecting images from the Android and iOS image library, and taking new pictures with the camera. homepage: https://github.com/flutter/plugins/tree/master/packages/image_picker/image_picker -version: 0.7.6 +version: 0.7.5+2 flutter: plugin: From 0c8c105dc26adb3f6946858ffbb9f581b67a025b Mon Sep 17 00:00:00 2001 From: yusufdag Date: Mon, 17 May 2021 16:48:57 +0200 Subject: [PATCH 8/9] Remove unnecessary if statement --- .../image_picker/ios/Classes/FLTImagePickerPlugin.m | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/image_picker/image_picker/ios/Classes/FLTImagePickerPlugin.m b/packages/image_picker/image_picker/ios/Classes/FLTImagePickerPlugin.m index 236d41d681ca..25ddaf48f426 100644 --- a/packages/image_picker/image_picker/ios/Classes/FLTImagePickerPlugin.m +++ b/packages/image_picker/image_picker/ios/Classes/FLTImagePickerPlugin.m @@ -219,15 +219,14 @@ - (void)checkCameraAuthorization { completionHandler:^(BOOL granted) { dispatch_async(dispatch_get_main_queue(), ^{ if (granted) { - if (granted) { - [self showCamera]; - } + [self showCamera]; } else { [self errorNoCameraAccess:AVAuthorizationStatusDenied]; } }); }]; - }; break; + break; + } case AVAuthorizationStatusDenied: case AVAuthorizationStatusRestricted: default: From 64ae3efd9e3a351c592544b129f060b1f2fdd117 Mon Sep 17 00:00:00 2001 From: yusufdag Date: Mon, 17 May 2021 17:17:48 +0200 Subject: [PATCH 9/9] Fix CHANGELOG.md version number --- packages/image_picker/image_picker/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/image_picker/image_picker/CHANGELOG.md b/packages/image_picker/image_picker/CHANGELOG.md index 25a224be2152..d453c82f9ac4 100644 --- a/packages/image_picker/image_picker/CHANGELOG.md +++ b/packages/image_picker/image_picker/CHANGELOG.md @@ -1,4 +1,4 @@ -## 0.7.6 +## 0.7.5+2 * Implement `UIAlertController` with a preferredStyle of `UIAlertControllerStyleAlert` since `UIAlertView` is deprecated. ## 0.7.5+1