diff --git a/imagepipeline-base/src/main/java/com/facebook/imageformat/ImageFormatChecker.kt b/imagepipeline-base/src/main/java/com/facebook/imageformat/ImageFormatChecker.kt index e30f670711..4f384f54b4 100644 --- a/imagepipeline-base/src/main/java/com/facebook/imageformat/ImageFormatChecker.kt +++ b/imagepipeline-base/src/main/java/com/facebook/imageformat/ImageFormatChecker.kt @@ -21,14 +21,23 @@ class ImageFormatChecker private constructor() { private var maxHeaderLength = 0 private var customImageFormatCheckers: List? = null private val defaultFormatChecker = DefaultImageFormatChecker() + private var binaryXmlEnabled = false init { updateMaxHeaderLength() } - fun setCustomImageFormatCheckers(customImageFormatCheckers: List?) { + fun setCustomImageFormatCheckers( + customImageFormatCheckers: List? + ): ImageFormatChecker { this.customImageFormatCheckers = customImageFormatCheckers updateMaxHeaderLength() + return this + } + + fun setBinaryXmlEnabled(binaryXmlEnabled: Boolean): ImageFormatChecker { + this.binaryXmlEnabled = binaryXmlEnabled + return this } @Throws(IOException::class) @@ -36,6 +45,13 @@ class ImageFormatChecker private constructor() { val imageHeaderBytes = ByteArray(maxHeaderLength) val headerSize = readHeaderFromStream(maxHeaderLength, `is`, imageHeaderBytes) val format = defaultFormatChecker.determineFormat(imageHeaderBytes, headerSize) + if (format == DefaultImageFormats.BINARY_XML) { + return if (binaryXmlEnabled) { + format + } else { + ImageFormat.UNKNOWN + } + } if (format !== ImageFormat.UNKNOWN) { return format }