diff --git a/GKClasses/GKImagePicker.m b/GKClasses/GKImagePicker.m index 28f0191..38e6a08 100644 --- a/GKClasses/GKImagePicker.m +++ b/GKClasses/GKImagePicker.m @@ -82,14 +82,14 @@ - (void)initImagePickerIfNeededByType:(UIImagePickerControllerSourceType)type if (!self.imagePickerController) { self.imagePickerController = [[UIImagePickerController alloc] init]; self.imagePickerController.delegate = self; - self.imagePickerController.allowsEditing = YES; + self.imagePickerController.allowsEditing = NO; } - if (self.useFrontCameraAsDefault) { + self.imagePickerController.sourceType = type; + + if (self.useFrontCameraAsDefault && type == UIImagePickerControllerSourceTypeCamera) { self.imagePickerController.cameraDevice = UIImagePickerControllerCameraDeviceFront; } - - self.imagePickerController.sourceType = type; } #pragma mark UIImagePickerDelegate Methods @@ -116,7 +116,8 @@ - (void)imagePickerController:(UIImagePickerController *)picker didFinishPicking #else cropController.contentSizeForViewInPopover = picker.contentSizeForViewInPopover; #endif - UIImage *img = [info objectForKey:UIImagePickerControllerEditedImage]; + UIImage *img = [info objectForKey:UIImagePickerControllerOriginalImage]; + assert(nil != img); cropController.sourceImage = img; cropController.resizeableCropArea = self.resizeableCropArea; cropController.cropSize = self.cropSize; @@ -226,14 +227,15 @@ - (void)showCameraImagePicker __weak typeof (self) weakSelf = self; [AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo completionHandler:^(BOOL granted) { - - if ([weakSelf hasPermissionToCamera]) { - - [weakSelf initImagePickerIfNeededByType:UIImagePickerControllerSourceTypeCamera]; - [weakSelf presentImagePickerController]; - } else { - [weakSelf triggerNoPermissionFlow:GKPickerOptionCamera]; - } + dispatch_async(dispatch_get_main_queue(), ^{ + if ([weakSelf hasPermissionToCamera]) { + + [weakSelf initImagePickerIfNeededByType:UIImagePickerControllerSourceTypeCamera]; + [weakSelf presentImagePickerController]; + } else { + [weakSelf triggerNoPermissionFlow:GKPickerOptionCamera]; + } + }); }]; #endif @@ -250,14 +252,15 @@ - (void)showGalleryImagePicker { __weak typeof (self) weakSelf = self; [PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status) { - if ([weakSelf hasPermissionToPhotoLibrary]) { - - [weakSelf initImagePickerIfNeededByType:UIImagePickerControllerSourceTypePhotoLibrary]; - [weakSelf presentImagePickerController]; - } else { - [weakSelf triggerNoPermissionFlow:GKPickerOptionPhotoLibrary]; - } - + dispatch_async(dispatch_get_main_queue(), ^{ + if ([weakSelf hasPermissionToPhotoLibrary]) { + + [weakSelf initImagePickerIfNeededByType:UIImagePickerControllerSourceTypePhotoLibrary]; + [weakSelf presentImagePickerController]; + } else { + [weakSelf triggerNoPermissionFlow:GKPickerOptionPhotoLibrary]; + } + }); }]; } @@ -296,9 +299,7 @@ - (void)showNoPermissionAlert:(NSString*)title notAuthorizedAlert.tag = kGKNoPermissionsAlertViewTag; - dispatch_async(dispatch_get_main_queue(), ^{ - [notAuthorizedAlert show]; - }); + [notAuthorizedAlert show]; }