Always send a link preview for shared sticker packs.
This commit is contained in:
parent
562289a55a
commit
5fe265e2f5
@ -892,46 +892,37 @@ public class OWSLinkPreviewManager: NSObject {
|
||||
|
||||
// tryToDownloadStickerPack will use locally saved data if possible.
|
||||
return StickerManager.tryToDownloadStickerPack(stickerPackInfo: stickerPackInfo)
|
||||
.then { (stickerPack) -> Promise<OWSLinkPreviewDraft> in
|
||||
let coverInfo = stickerPack.coverInfo
|
||||
// tryToDownloadSticker will use locally saved data if possible.
|
||||
return StickerManager.tryToDownloadSticker(stickerPack: stickerPack, stickerInfo: coverInfo).map(on: DispatchQueue.global()) { (coverData) -> OWSLinkPreviewDraft in
|
||||
return OWSLinkPreviewManager.linkPreviewDraft(forStickerPack: stickerPack,
|
||||
coverData: coverData)
|
||||
}
|
||||
}
|
||||
}
|
||||
.then { (stickerPack) -> Promise<OWSLinkPreviewDraft> in
|
||||
let coverInfo = stickerPack.coverInfo
|
||||
// tryToDownloadSticker will use locally saved data if possible.
|
||||
return StickerManager.tryToDownloadSticker(stickerPack: stickerPack, stickerInfo: coverInfo).map(on: DispatchQueue.global()) { (coverData) -> OWSLinkPreviewDraft in
|
||||
// Try to build thumbnail from cover webp.
|
||||
var jpegImageData: Data?
|
||||
if let stillImage = (coverData as NSData).stillForWebpData() {
|
||||
var stillThumbnail = stillImage
|
||||
let maxImageSize: CGFloat = 1024
|
||||
let imageSize = stillImage.size
|
||||
let shouldResize = imageSize.width > maxImageSize || imageSize.height > maxImageSize
|
||||
if shouldResize {
|
||||
if let resizedImage = stillImage.resized(withMaxDimensionPoints: maxImageSize) {
|
||||
stillThumbnail = resizedImage
|
||||
} else {
|
||||
owsFailDebug("Could not resize image.")
|
||||
}
|
||||
}
|
||||
|
||||
public class func linkPreviewDraft(forStickerPack stickerPack: StickerPack,
|
||||
coverData: Data) -> OWSLinkPreviewDraft {
|
||||
|
||||
let url = stickerPack.info.shareUrl()
|
||||
|
||||
// Try to build thumbnail from cover webp.
|
||||
var jpegImageData: Data?
|
||||
if let stillImage = (coverData as NSData).stillForWebpData() {
|
||||
var stillThumbnail = stillImage
|
||||
let maxImageSize: CGFloat = 1024
|
||||
let imageSize = stillImage.size
|
||||
let shouldResize = imageSize.width > maxImageSize || imageSize.height > maxImageSize
|
||||
if shouldResize {
|
||||
if let resizedImage = stillImage.resized(withMaxDimensionPoints: maxImageSize) {
|
||||
stillThumbnail = resizedImage
|
||||
if let stillData = stillThumbnail.jpegData(compressionQuality: 0.85) {
|
||||
jpegImageData = stillData
|
||||
} else {
|
||||
owsFailDebug("Could not encode as JPEG.")
|
||||
}
|
||||
} else {
|
||||
owsFailDebug("Could not resize image.")
|
||||
owsFailDebug("Could not extract still.")
|
||||
}
|
||||
}
|
||||
|
||||
if let stillData = stillThumbnail.jpegData(compressionQuality: 0.85) {
|
||||
jpegImageData = stillData
|
||||
} else {
|
||||
owsFailDebug("Could not encode as JPEG.")
|
||||
return OWSLinkPreviewDraft(urlString: url.absoluteString, title: stickerPack.title, jpegImageData: jpegImageData)
|
||||
}
|
||||
} else {
|
||||
owsFailDebug("Could not extract still.")
|
||||
}
|
||||
|
||||
return OWSLinkPreviewDraft(urlString: url, title: stickerPack.title, jpegImageData: jpegImageData)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user