diff --git a/app/src/main/java/com/fongmi/android/tv/utils/OkHttpGlideModule.java b/app/src/main/java/com/fongmi/android/tv/utils/OkGlideModule.java similarity index 55% rename from app/src/main/java/com/fongmi/android/tv/utils/OkHttpGlideModule.java rename to app/src/main/java/com/fongmi/android/tv/utils/OkGlideModule.java index 9b47e4b6c..0742b4a64 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/OkHttpGlideModule.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/OkGlideModule.java @@ -1,6 +1,7 @@ package com.fongmi.android.tv.utils; import android.content.Context; +import android.graphics.Bitmap; import android.util.Log; import androidx.annotation.NonNull; @@ -9,16 +10,22 @@ import androidx.annotation.Nullable; import com.bumptech.glide.Glide; import com.bumptech.glide.GlideBuilder; import com.bumptech.glide.Registry; +import com.bumptech.glide.annotation.Excludes; import com.bumptech.glide.annotation.GlideModule; +import com.bumptech.glide.integration.avif.AvifByteBufferBitmapDecoder; +import com.bumptech.glide.integration.avif.AvifGlideModule; +import com.bumptech.glide.integration.avif.AvifStreamBitmapDecoder; import com.bumptech.glide.integration.okhttp3.OkHttpUrlLoader; import com.bumptech.glide.load.model.GlideUrl; import com.bumptech.glide.module.AppGlideModule; import com.github.catvod.net.OkHttp; import java.io.InputStream; +import java.nio.ByteBuffer; @GlideModule -public class OkHttpGlideModule extends AppGlideModule { +@Excludes(AvifGlideModule.class) +public class OkGlideModule extends AppGlideModule { @Override public void applyOptions(@NonNull Context context, @NonNull GlideBuilder builder) { @@ -28,5 +35,9 @@ public class OkHttpGlideModule extends AppGlideModule { @Override public void registerComponents(@NonNull Context context, @Nullable Glide glide, Registry registry) { registry.replace(GlideUrl.class, InputStream.class, new OkHttpUrlLoader.Factory(OkHttp.client())); + AvifByteBufferBitmapDecoder byteBuffer = new AvifByteBufferBitmapDecoder(glide.getBitmapPool()); + AvifStreamBitmapDecoder stream = new AvifStreamBitmapDecoder(registry.getImageHeaderParsers(), byteBuffer, glide.getArrayPool()); + registry.append(ByteBuffer.class, Bitmap.class, byteBuffer); + registry.append(InputStream.class, Bitmap.class, stream); } } \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 9da53a7e5..128225a27 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,7 +6,7 @@ # http://www.gradle.org/docs/current/userguide/build_environment.html # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. -org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 --add-exports jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects