Merge pull request #2031 from WhisperSystems/mkirk/default-filenames

always send a filename with attachments
pull/1/head
Michael Kirk 9 years ago committed by GitHub
commit fe6ea0d919

@ -174,11 +174,31 @@ class SignalAttachment: NSObject {
if dataUTI == SignalAttachment.kUnknownTestAttachmentUTI { if dataUTI == SignalAttachment.kUnknownTestAttachmentUTI {
return OWSMimeTypeUnknownForTests return OWSMimeTypeUnknownForTests
} }
let mimeType = UTTypeCopyPreferredTagWithClass(dataUTI as CFString, kUTTagClassMIMEType) guard let mimeType = UTTypeCopyPreferredTagWithClass(dataUTI as CFString, kUTTagClassMIMEType) else {
guard mimeType != nil else {
return nil return nil
} }
return mimeType?.takeRetainedValue() as? String return mimeType.takeRetainedValue() as String
}
// Use the filename if known. If not, e.g. if the attachment was copy/pasted, we'll generate a filename
// like: "signal-2017-04-24-095918.zip"
var filenameOrDefault: String {
if let filename = filename {
return filename
} else {
let kDefaultAttachmentName = "signal"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "YYYY-MM-dd-HHmmss"
let dateString = dateFormatter.string(from: Date())
let withoutExtension = "\(kDefaultAttachmentName)-\(dateString)"
if let fileExtension = self.fileExtension {
return "\(withoutExtension).\(fileExtension)"
}
return withoutExtension
}
} }
// Returns the file extension for this attachment or nil if no file extension // Returns the file extension for this attachment or nil if no file extension

@ -64,7 +64,7 @@ NS_ASSUME_NONNULL_BEGIN
expiresInSeconds:(configuration.isEnabled ? configuration.durationSeconds : 0)]; expiresInSeconds:(configuration.isEnabled ? configuration.durationSeconds : 0)];
[messageSender sendAttachmentData:attachment.data [messageSender sendAttachmentData:attachment.data
contentType:attachment.mimeType contentType:attachment.mimeType
filename:attachment.filename filename:attachment.filenameOrDefault
inMessage:message inMessage:message
success:^{ success:^{
DDLogDebug(@"%@ Successfully sent message attachment.", self.tag); DDLogDebug(@"%@ Successfully sent message attachment.", self.tag);

Loading…
Cancel
Save