Add possible support for animated lottie, webp, apng.

This commit is contained in:
Matthew Chen 2020-08-31 14:20:52 -03:00
parent f225be338b
commit 4841a9eefb
2 changed files with 9 additions and 1 deletions

View File

@ -61,12 +61,13 @@ public class StickerView: NSObject {
let stickerView: UIView
switch stickerType {
case .webp:
case .webp, .apng:
guard let stickerImage = YYImage(contentsOfFile: stickerDataUrl.path) else {
owsFailDebug("Sticker could not be parsed.")
return nil
}
let yyView = YYAnimatedImageView()
yyView.alwaysInfiniteLoop = true
yyView.contentMode = .scaleAspectFit
yyView.image = stickerImage
stickerView = yyView

View File

@ -9,6 +9,7 @@ import PromiseKit
public enum StickerType: UInt {
case webp
case signalLottie
case apng
public static func stickerType(forContentType contentType: String?) -> StickerType {
if let contentType = contentType {
@ -17,6 +18,8 @@ public enum StickerType: UInt {
return .webp
case OWSMimeTypeLottieSticker:
return .signalLottie
case OWSMimeTypeImagePng:
return .apng
default:
owsFailDebug("Unknown content type: \(contentType)")
return .webp
@ -33,6 +36,8 @@ public enum StickerType: UInt {
return OWSMimeTypeWebp
case .signalLottie:
return OWSMimeTypeLottieSticker
case .apng:
return OWSMimeTypeImagePng
}
}
@ -42,6 +47,8 @@ public enum StickerType: UInt {
return "webp"
case .signalLottie:
return kLottieStickerFileExtension
case .apng:
return "png"
}
}
}