Respond to CR.
This commit is contained in:
parent
89db8b3a44
commit
11b4848530
|
@ -2482,9 +2482,8 @@ typedef NS_ENUM(NSInteger, MessagesRangeSizeMode) {
|
|||
|
||||
[dataSource setSourceFilename:filename];
|
||||
// "Document picker" attachments _SHOULD NOT_ be resized, if possible.
|
||||
SignalAttachment *attachment = [SignalAttachment attachmentWithDataSource:dataSource
|
||||
dataUTI:type
|
||||
attachmentQuality:TSAttachmentQualityOriginal];
|
||||
SignalAttachment *attachment =
|
||||
[SignalAttachment attachmentWithDataSource:dataSource dataUTI:type imageQuality:TSImageQualityOriginal];
|
||||
[self tryToSendAttachmentIfApproved:attachment];
|
||||
}
|
||||
|
||||
|
@ -2613,7 +2612,7 @@ typedef NS_ENUM(NSInteger, MessagesRangeSizeMode) {
|
|||
[SignalAttachment imageAttachmentWithImage:imageFromCamera
|
||||
dataUTI:(NSString *)kUTTypeJPEG
|
||||
filename:filename
|
||||
attachmentQuality:TSAttachmentQualityCompact];
|
||||
imageQuality:TSImageQualityCompact];
|
||||
if (!attachment || [attachment hasError]) {
|
||||
DDLogWarn(@"%@ %s Invalid attachment: %@.",
|
||||
self.logTag,
|
||||
|
@ -2664,7 +2663,7 @@ typedef NS_ENUM(NSInteger, MessagesRangeSizeMode) {
|
|||
SignalAttachment *attachment =
|
||||
[SignalAttachment attachmentWithDataSource:dataSource
|
||||
dataUTI:dataUTI
|
||||
attachmentQuality:TSAttachmentQualityMedium];
|
||||
imageQuality:TSImageQualityMedium];
|
||||
[self dismissViewControllerAnimated:YES
|
||||
completion:^{
|
||||
OWSAssert([NSThread isMainThread]);
|
||||
|
@ -2754,7 +2753,7 @@ typedef NS_ENUM(NSInteger, MessagesRangeSizeMode) {
|
|||
SignalAttachment *attachment =
|
||||
[SignalAttachment attachmentWithDataSource:dataSource
|
||||
dataUTI:(NSString *)kUTTypeMPEG4
|
||||
attachmentQuality:TSAttachmentQualityOriginal];
|
||||
imageQuality:TSImageQualityOriginal];
|
||||
if (!attachment || [attachment hasError]) {
|
||||
DDLogError(@"%@ %s Invalid attachment: %@.",
|
||||
self.logTag,
|
||||
|
@ -3858,7 +3857,7 @@ typedef NS_ENUM(NSInteger, MessagesRangeSizeMode) {
|
|||
DataSource *_Nullable dataSource = [DataSourceValue dataSourceWithOversizeText:text];
|
||||
SignalAttachment *attachment = [SignalAttachment attachmentWithDataSource:dataSource
|
||||
dataUTI:kOversizeTextAttachmentUTI
|
||||
attachmentQuality:TSAttachmentQualityOriginal];
|
||||
imageQuality:TSImageQualityOriginal];
|
||||
message =
|
||||
[ThreadUtil sendMessageWithAttachment:attachment inThread:self.thread messageSender:self.messageSender];
|
||||
} else {
|
||||
|
|
|
@ -378,9 +378,8 @@ NS_ASSUME_NONNULL_BEGIN
|
|||
NSString *utiType = [MIMETypeUtil utiTypeForFileExtension:filename.pathExtension];
|
||||
DataSource *_Nullable dataSource = [DataSourcePath dataSourceWithFilePath:filePath];
|
||||
[dataSource setSourceFilename:filename];
|
||||
SignalAttachment *attachment = [SignalAttachment attachmentWithDataSource:dataSource
|
||||
dataUTI:utiType
|
||||
attachmentQuality:TSAttachmentQualityOriginal];
|
||||
SignalAttachment *attachment =
|
||||
[SignalAttachment attachmentWithDataSource:dataSource dataUTI:utiType imageQuality:TSImageQualityOriginal];
|
||||
OWSAssert(attachment);
|
||||
if ([attachment hasError]) {
|
||||
DDLogError(@"attachment[%@]: %@", [attachment sourceFilename], [attachment errorName]);
|
||||
|
@ -645,7 +644,7 @@ NS_ASSUME_NONNULL_BEGIN
|
|||
DataSource *_Nullable dataSource = [DataSourceValue dataSourceWithOversizeText:message];
|
||||
SignalAttachment *attachment = [SignalAttachment attachmentWithDataSource:dataSource
|
||||
dataUTI:kOversizeTextAttachmentUTI
|
||||
attachmentQuality:TSAttachmentQualityOriginal];
|
||||
imageQuality:TSImageQualityOriginal];
|
||||
[ThreadUtil sendMessageWithAttachment:attachment inThread:thread messageSender:messageSender];
|
||||
}
|
||||
|
||||
|
@ -671,9 +670,8 @@ NS_ASSUME_NONNULL_BEGIN
|
|||
OWSMessageSender *messageSender = [Environment current].messageSender;
|
||||
DataSource *_Nullable dataSource =
|
||||
[DataSourceValue dataSourceWithData:[self createRandomNSDataOfSize:length] utiType:uti];
|
||||
SignalAttachment *attachment = [SignalAttachment attachmentWithDataSource:dataSource
|
||||
dataUTI:uti
|
||||
attachmentQuality:TSAttachmentQualityOriginal];
|
||||
SignalAttachment *attachment =
|
||||
[SignalAttachment attachmentWithDataSource:dataSource dataUTI:uti imageQuality:TSImageQualityOriginal];
|
||||
[ThreadUtil sendMessageWithAttachment:attachment inThread:thread messageSender:messageSender ignoreErrors:YES];
|
||||
}
|
||||
+ (OWSSignalServiceProtosEnvelope *)createEnvelopeForThread:(TSThread *)thread
|
||||
|
|
|
@ -372,7 +372,7 @@ class GifPickerViewController: OWSViewController, UISearchBarDelegate, UICollect
|
|||
owsFail("\(strongSelf.TAG) couldn't load asset.")
|
||||
return
|
||||
}
|
||||
let attachment = SignalAttachment.imageAttachment(dataSource: dataSource, dataUTI: asset.rendition.utiType)
|
||||
let attachment = SignalAttachment.attachment(dataSource: dataSource, dataUTI: asset.rendition.utiType, imageQuality: .original)
|
||||
|
||||
strongSelf.delegate?.gifPickerDidSelect(attachment: attachment)
|
||||
|
||||
|
|
|
@ -434,7 +434,7 @@ class MessageDetailViewController: OWSViewController, UIScrollViewDelegate {
|
|||
|
||||
let contentType = attachment.contentType
|
||||
if let dataUTI = MIMETypeUtil.utiType(forMIMEType: contentType) {
|
||||
let attachment = SignalAttachment.attachment(dataSource: dataSource, dataUTI: dataUTI)
|
||||
let attachment = SignalAttachment.attachment(dataSource: dataSource, dataUTI: dataUTI, imageQuality: .original)
|
||||
let mediaMessageView = MediaMessageView(attachment: attachment, mode: .small)
|
||||
mediaMessageView.backgroundColor = UIColor.white
|
||||
self.mediaMessageView = mediaMessageView
|
||||
|
|
|
@ -54,7 +54,7 @@ extension SignalAttachmentError: LocalizedError {
|
|||
}
|
||||
|
||||
@objc
|
||||
public enum TSImageQuality: UInt {
|
||||
public enum TSImageQualityTier: UInt {
|
||||
case original
|
||||
case high
|
||||
case mediumHigh
|
||||
|
@ -64,12 +64,12 @@ public enum TSImageQuality: UInt {
|
|||
}
|
||||
|
||||
@objc
|
||||
public enum TSAttachmentQuality: UInt {
|
||||
public enum TSImageQuality: UInt {
|
||||
case original
|
||||
case medium
|
||||
case compact
|
||||
|
||||
func imageQuality() -> TSImageQuality {
|
||||
func imageQualityTier() -> TSImageQualityTier {
|
||||
switch self {
|
||||
case .original:
|
||||
return .original
|
||||
|
@ -470,7 +470,7 @@ public class SignalAttachment: NSObject {
|
|||
}
|
||||
let dataSource = DataSourceValue.dataSource(with:data, utiType: dataUTI)
|
||||
// Pasted images _SHOULD _NOT_ be resized, if possible.
|
||||
return imageAttachment(dataSource : dataSource, dataUTI : dataUTI, attachmentQuality:.original)
|
||||
return attachment(dataSource : dataSource, dataUTI : dataUTI, imageQuality:.original)
|
||||
}
|
||||
}
|
||||
for dataUTI in videoUTISet {
|
||||
|
@ -529,7 +529,7 @@ public class SignalAttachment: NSObject {
|
|||
// NOTE: The attachment returned by this method may not be valid.
|
||||
// Check the attachment's error property.
|
||||
@objc
|
||||
public class func imageAttachment(dataSource: DataSource?, dataUTI: String, attachmentQuality: TSAttachmentQuality) -> SignalAttachment {
|
||||
private class func imageAttachment(dataSource: DataSource?, dataUTI: String, imageQuality: TSImageQuality) -> SignalAttachment {
|
||||
assert(dataUTI.count > 0)
|
||||
|
||||
assert(dataSource != nil)
|
||||
|
@ -568,7 +568,7 @@ public class SignalAttachment: NSObject {
|
|||
}
|
||||
attachment.cachedImage = image
|
||||
|
||||
if isInputImageValidOutputImage(image: image, dataSource: dataSource, dataUTI: dataUTI, attachmentQuality:attachmentQuality) {
|
||||
if isInputImageValidOutputImage(image: image, dataSource: dataSource, dataUTI: dataUTI, imageQuality:imageQuality) {
|
||||
if let sourceFilename = dataSource.sourceFilename,
|
||||
let sourceFileExtension = sourceFilename.fileExtension,
|
||||
["heic", "heif"].contains(sourceFileExtension.lowercased()) {
|
||||
|
@ -593,13 +593,13 @@ public class SignalAttachment: NSObject {
|
|||
}
|
||||
|
||||
Logger.verbose("\(TAG) Compressing attachment as image/jpeg, \(dataSource.dataLength()) bytes")
|
||||
return compressImageAsJPEG(image : image, attachment : attachment, filename:dataSource.sourceFilename, attachmentQuality:attachmentQuality)
|
||||
return compressImageAsJPEG(image : image, attachment : attachment, filename:dataSource.sourceFilename, imageQuality:imageQuality)
|
||||
}
|
||||
}
|
||||
|
||||
// If the proposed attachment already conforms to the
|
||||
// file size and content size limits, don't recompress it.
|
||||
private class func isInputImageValidOutputImage(image: UIImage?, dataSource: DataSource?, dataUTI: String, attachmentQuality: TSAttachmentQuality) -> Bool {
|
||||
private class func isInputImageValidOutputImage(image: UIImage?, dataSource: DataSource?, dataUTI: String, imageQuality: TSImageQuality) -> Bool {
|
||||
guard let image = image else {
|
||||
return false
|
||||
}
|
||||
|
@ -610,9 +610,9 @@ public class SignalAttachment: NSObject {
|
|||
return false
|
||||
}
|
||||
|
||||
let imageQuality = attachmentQuality.imageQuality()
|
||||
let imageQualityTier = imageQuality.imageQualityTier()
|
||||
let maxSize = maxSizeForImage(image: image,
|
||||
imageUploadQuality:imageQuality)
|
||||
imageUploadQuality:imageQualityTier)
|
||||
if image.size.width <= maxSize &&
|
||||
image.size.height <= maxSize &&
|
||||
dataSource.dataLength() <= kMaxFileSizeImage {
|
||||
|
@ -626,7 +626,7 @@ public class SignalAttachment: NSObject {
|
|||
// NOTE: The attachment returned by this method may nil or not be valid.
|
||||
// Check the attachment's error property.
|
||||
@objc
|
||||
public class func imageAttachment(image: UIImage?, dataUTI: String, filename: String?, attachmentQuality: TSAttachmentQuality) -> SignalAttachment {
|
||||
public class func imageAttachment(image: UIImage?, dataUTI: String, filename: String?, imageQuality: TSImageQuality) -> SignalAttachment {
|
||||
assert(dataUTI.count > 0)
|
||||
|
||||
guard let image = image else {
|
||||
|
@ -644,13 +644,13 @@ public class SignalAttachment: NSObject {
|
|||
attachment.cachedImage = image
|
||||
|
||||
Logger.verbose("\(TAG) Writing \(attachment.mimeType) as image/jpeg")
|
||||
return compressImageAsJPEG(image : image, attachment : attachment, filename:filename, attachmentQuality:attachmentQuality)
|
||||
return compressImageAsJPEG(image : image, attachment : attachment, filename:filename, imageQuality:imageQuality)
|
||||
}
|
||||
|
||||
private class func compressImageAsJPEG(image: UIImage, attachment: SignalAttachment, filename: String?, attachmentQuality: TSAttachmentQuality) -> SignalAttachment {
|
||||
private class func compressImageAsJPEG(image: UIImage, attachment: SignalAttachment, filename: String?, imageQuality: TSImageQuality) -> SignalAttachment {
|
||||
assert(attachment.error == nil)
|
||||
|
||||
var imageUploadQuality = attachmentQuality.imageQuality()
|
||||
var imageUploadQuality = imageQuality.imageQualityTier()
|
||||
|
||||
while true {
|
||||
let maxSize = maxSizeForImage(image: image, imageUploadQuality:imageUploadQuality)
|
||||
|
@ -718,7 +718,7 @@ public class SignalAttachment: NSObject {
|
|||
return updatedImage!
|
||||
}
|
||||
|
||||
private class func maxSizeForImage(image: UIImage, imageUploadQuality: TSImageQuality) -> CGFloat {
|
||||
private class func maxSizeForImage(image: UIImage, imageUploadQuality: TSImageQualityTier) -> CGFloat {
|
||||
switch imageUploadQuality {
|
||||
case .original:
|
||||
return max(image.size.width, image.size.height)
|
||||
|
@ -735,7 +735,7 @@ public class SignalAttachment: NSObject {
|
|||
}
|
||||
}
|
||||
|
||||
private class func jpegCompressionQuality(imageUploadQuality: TSImageQuality) -> CGFloat {
|
||||
private class func jpegCompressionQuality(imageUploadQuality: TSImageQualityTier) -> CGFloat {
|
||||
switch imageUploadQuality {
|
||||
case .original:
|
||||
return 1
|
||||
|
@ -821,9 +821,9 @@ public class SignalAttachment: NSObject {
|
|||
// NOTE: The attachment returned by this method may not be valid.
|
||||
// Check the attachment's error property.
|
||||
@objc
|
||||
public class func attachment(dataSource: DataSource?, dataUTI: String, attachmentQuality: TSAttachmentQuality) -> SignalAttachment {
|
||||
public class func attachment(dataSource: DataSource?, dataUTI: String, imageQuality: TSImageQuality = .original) -> SignalAttachment {
|
||||
if inputImageUTISet.contains(dataUTI) {
|
||||
return imageAttachment(dataSource : dataSource, dataUTI : dataUTI, attachmentQuality:attachmentQuality)
|
||||
return imageAttachment(dataSource : dataSource, dataUTI : dataUTI, imageQuality:imageQuality)
|
||||
} else if videoUTISet.contains(dataUTI) {
|
||||
return videoAttachment(dataSource : dataSource, dataUTI : dataUTI)
|
||||
} else if audioUTISet.contains(dataUTI) {
|
||||
|
@ -837,7 +837,7 @@ public class SignalAttachment: NSObject {
|
|||
public class func empty() -> SignalAttachment {
|
||||
return SignalAttachment.attachment(dataSource : DataSourceValue.emptyDataSource(),
|
||||
dataUTI: kUTTypeContent as String,
|
||||
attachmentQuality:.original)
|
||||
imageQuality:.original)
|
||||
}
|
||||
|
||||
// MARK: Helper Methods
|
||||
|
|
|
@ -435,7 +435,7 @@ public class ShareViewController: UINavigationController, ShareViewDelegate, SAE
|
|||
}
|
||||
}
|
||||
|
||||
let attachment = SignalAttachment.attachment(dataSource: dataSource, dataUTI: specificUTIType, attachmentQuality:.medium)
|
||||
let attachment = SignalAttachment.attachment(dataSource: dataSource, dataUTI: specificUTIType, imageQuality:.medium)
|
||||
|
||||
return attachment
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue