diff --git a/app/src/main/java/com/hippo/UriArchiveAccessor.kt b/app/src/main/java/com/hippo/UriArchiveAccessor.kt index 67635d98f..804ab69d4 100644 --- a/app/src/main/java/com/hippo/UriArchiveAccessor.kt +++ b/app/src/main/java/com/hippo/UriArchiveAccessor.kt @@ -44,6 +44,7 @@ class UriArchiveAccessor(ctx: Context, uri: Uri) { val buffer = extractToByteBuffer(index) buffer ?: return null check(buffer.isDirect) + Image.rewriteGifSource(buffer) return object : Image.ByteBufferSource { override fun getByteBuffer(): ByteBuffer { return buffer diff --git a/app/src/main/java/com/hippo/image/Image.kt b/app/src/main/java/com/hippo/image/Image.kt index 96eead118..93e208455 100644 --- a/app/src/main/java/com/hippo/image/Image.kt +++ b/app/src/main/java/com/hippo/image/Image.kt @@ -93,8 +93,6 @@ class Image private constructor(source: Source, private var src: ByteBufferSourc @JvmStatic fun decode(src: ByteBufferSource): Image? { val directBuffer = src.getByteBuffer() - check(directBuffer.isDirect) - rewriteGifSource(directBuffer) return runCatching { Image(ImageDecoder.createSource(directBuffer), src) }.onFailure { @@ -104,7 +102,7 @@ class Image private constructor(source: Source, private var src: ByteBufferSourc } @JvmStatic - private external fun rewriteGifSource(buffer: ByteBuffer) + external fun rewriteGifSource(buffer: ByteBuffer) } interface ByteBufferSource : AutoCloseable {