|  |  | @ -1916,6 +1916,8 @@ typedef enum : NSUInteger { | 
			
		
	
		
		
			
				
					
					|  |  |  | - (void)imagePickerController:(UIImagePickerController *)picker |  |  |  | - (void)imagePickerController:(UIImagePickerController *)picker | 
			
		
	
		
		
			
				
					
					|  |  |  |     didFinishPickingMediaWithInfo:(NSDictionary<NSString *, id> *)info |  |  |  |     didFinishPickingMediaWithInfo:(NSDictionary<NSString *, id> *)info | 
			
		
	
		
		
			
				
					
					|  |  |  | { |  |  |  | { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     OWSAssert([NSThread isMainThread]); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |      | 
			
		
	
		
		
			
				
					
					|  |  |  |     [UIUtil modalCompletionBlock](); |  |  |  |     [UIUtil modalCompletionBlock](); | 
			
		
	
		
		
			
				
					
					|  |  |  |     [self resetFrame]; |  |  |  |     [self resetFrame]; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -1928,27 +1930,36 @@ typedef enum : NSUInteger { | 
			
		
	
		
		
			
				
					
					|  |  |  |         // Video picked from library or captured with camera |  |  |  |         // Video picked from library or captured with camera | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         NSURL *videoURL = info[UIImagePickerControllerMediaURL]; |  |  |  |         NSURL *videoURL = info[UIImagePickerControllerMediaURL]; | 
			
		
	
		
		
			
				
					
					|  |  |  |         [self sendQualityAdjustedAttachmentForVideo:videoURL]; |  |  |  |         [self dismissViewControllerAnimated:YES | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                                  completion:^{ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                                      [self sendQualityAdjustedAttachmentForVideo:videoURL]; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                                  }]; | 
			
		
	
		
		
			
				
					
					|  |  |  |     } else if (picker.sourceType == UIImagePickerControllerSourceTypeCamera) { |  |  |  |     } else if (picker.sourceType == UIImagePickerControllerSourceTypeCamera) { | 
			
		
	
		
		
			
				
					
					|  |  |  |         // Static Image captured from camera |  |  |  |         // Static Image captured from camera | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         UIImage *imageFromCamera = [info[UIImagePickerControllerOriginalImage] normalizedImage]; |  |  |  |         UIImage *imageFromCamera = [info[UIImagePickerControllerOriginalImage] normalizedImage]; | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (imageFromCamera) { |  |  |  |          | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |             SignalAttachment *attachment = [SignalAttachment imageAttachmentWithImage:imageFromCamera |  |  |  |         [self dismissViewControllerAnimated:YES | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                                                                               dataUTI:(NSString *) kUTTypeJPEG]; |  |  |  |                                  completion:^{ | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |             if (!attachment || |  |  |  |                                      OWSAssert([NSThread isMainThread]); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                 [attachment hasError]) { |  |  |  |                                       | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                 DDLogWarn(@"%@ %s Invalid attachment: %@.", |  |  |  |                                      if (imageFromCamera) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                           self.tag, |  |  |  |                                          SignalAttachment *attachment = [SignalAttachment imageAttachmentWithImage:imageFromCamera | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                           __PRETTY_FUNCTION__, |  |  |  |                                                                                                            dataUTI:(NSString *) kUTTypeJPEG]; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                           attachment ? [attachment errorMessage] : @"Missing data"); |  |  |  |                                          if (!attachment || | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                 failedToPickAttachment(nil); |  |  |  |                                              [attachment hasError]) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |             } else { |  |  |  |                                              DDLogWarn(@"%@ %s Invalid attachment: %@.", | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                 [self sendMessageAttachment:attachment]; |  |  |  |                                                        self.tag, | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |                                                        __PRETTY_FUNCTION__, | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |         } else { |  |  |  |                                                        attachment ? [attachment errorMessage] : @"Missing data"); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |             failedToPickAttachment(nil); |  |  |  |                                              failedToPickAttachment(nil); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |                                          } else { | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                                              [self sendMessageAttachment:attachment]; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                                          } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                                      } else { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                                          failedToPickAttachment(nil); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                                      } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                                  }]; | 
			
		
	
		
		
			
				
					
					|  |  |  |     } else { |  |  |  |     } else { | 
			
		
	
		
		
			
				
					
					|  |  |  |         // Non-Video image picked from library |  |  |  |         // Non-Video image picked from library | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | 
 |