diff --git a/SignalMessaging/ViewControllers/Stickers/StickerView.swift b/SignalMessaging/ViewControllers/Stickers/StickerView.swift index a1b4655d7c..68ef8d4bd5 100644 --- a/SignalMessaging/ViewControllers/Stickers/StickerView.swift +++ b/SignalMessaging/ViewControllers/Stickers/StickerView.swift @@ -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 diff --git a/SignalServiceKit/src/Messages/Stickers/StickerMetadata.swift b/SignalServiceKit/src/Messages/Stickers/StickerMetadata.swift index e513670806..40589c964f 100644 --- a/SignalServiceKit/src/Messages/Stickers/StickerMetadata.swift +++ b/SignalServiceKit/src/Messages/Stickers/StickerMetadata.swift @@ -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" } } }