diff --git a/app/src/main/java/com/hippo/ehviewer/spider/SpiderDen.kt b/app/src/main/java/com/hippo/ehviewer/spider/SpiderDen.kt index 8a2020c7e..9200403f0 100644 --- a/app/src/main/java/com/hippo/ehviewer/spider/SpiderDen.kt +++ b/app/src/main/java/com/hippo/ehviewer/spider/SpiderDen.kt @@ -293,7 +293,13 @@ class SpiderDen(private val mGalleryInfo: GalleryInfo) { file = findImageFile(dir, index) } } - return file?.imageSource + val source = file?.imageSource ?: return null + return object : CloseableSource { + override val source: ImageDecoder.Source + get() = source + + override fun close() {} + } } companion object { diff --git a/app/src/main/java/com/hippo/unifile/Contracts.java b/app/src/main/java/com/hippo/unifile/Contracts.java index 32c560c0c..27c69cca2 100644 --- a/app/src/main/java/com/hippo/unifile/Contracts.java +++ b/app/src/main/java/com/hippo/unifile/Contracts.java @@ -25,8 +25,6 @@ import android.os.ParcelFileDescriptor; import androidx.annotation.NonNull; -import com.hippo.image.Image; - import java.io.IOException; final class Contracts { @@ -88,18 +86,7 @@ final class Contracts { } @NonNull - static Image.CloseableSource getImageSource(Context context, Uri uri) { - var source = ImageDecoder.createSource(context.getContentResolver(), uri); - return new Image.CloseableSource() { - @NonNull - @Override - public ImageDecoder.Source getSource() { - return source; - } - - @Override - public void close() { - } - }; + static ImageDecoder.Source getImageSource(Context context, Uri uri) { + return ImageDecoder.createSource(context.getContentResolver(), uri); } } diff --git a/app/src/main/java/com/hippo/unifile/MediaFile.java b/app/src/main/java/com/hippo/unifile/MediaFile.java index 973ae17dd..cf2aed0a5 100644 --- a/app/src/main/java/com/hippo/unifile/MediaFile.java +++ b/app/src/main/java/com/hippo/unifile/MediaFile.java @@ -17,13 +17,12 @@ package com.hippo.unifile; import android.content.Context; +import android.graphics.ImageDecoder; import android.net.Uri; import android.os.ParcelFileDescriptor; import androidx.annotation.NonNull; -import com.hippo.image.Image; - import java.io.IOException; class MediaFile extends UniFile { @@ -151,7 +150,7 @@ class MediaFile extends UniFile { @NonNull @Override - public Image.CloseableSource getImageSource() { + public ImageDecoder.Source getImageSource() { return Contracts.getImageSource(mContext, mUri); } diff --git a/app/src/main/java/com/hippo/unifile/RawFile.java b/app/src/main/java/com/hippo/unifile/RawFile.java index deee18a5a..566559bc8 100644 --- a/app/src/main/java/com/hippo/unifile/RawFile.java +++ b/app/src/main/java/com/hippo/unifile/RawFile.java @@ -24,8 +24,6 @@ import android.webkit.MimeTypeMap; import androidx.annotation.NonNull; -import com.hippo.image.Image; - import java.io.File; import java.io.FileOutputStream; import java.io.IOException; @@ -248,20 +246,8 @@ class RawFile extends UniFile { @NonNull @Override - public Image.CloseableSource getImageSource() { - var src = ImageDecoder.createSource(mFile); - return new Image.CloseableSource() { - @NonNull - @Override - public ImageDecoder.Source getSource() { - return src; - } - - @Override - public void close() { - - } - }; + public ImageDecoder.Source getImageSource() { + return ImageDecoder.createSource(mFile); } @NonNull diff --git a/app/src/main/java/com/hippo/unifile/SingleDocumentFile.java b/app/src/main/java/com/hippo/unifile/SingleDocumentFile.java index c83a4fcde..89bcc01da 100644 --- a/app/src/main/java/com/hippo/unifile/SingleDocumentFile.java +++ b/app/src/main/java/com/hippo/unifile/SingleDocumentFile.java @@ -17,13 +17,12 @@ package com.hippo.unifile; import android.content.Context; +import android.graphics.ImageDecoder; import android.net.Uri; import android.os.ParcelFileDescriptor; import androidx.annotation.NonNull; -import com.hippo.image.Image; - import java.io.IOException; class SingleDocumentFile extends UniFile { @@ -140,7 +139,7 @@ class SingleDocumentFile extends UniFile { @NonNull @Override - public Image.CloseableSource getImageSource() { + public ImageDecoder.Source getImageSource() { return Contracts.getImageSource(mContext, mUri); } diff --git a/app/src/main/java/com/hippo/unifile/TreeDocumentFile.java b/app/src/main/java/com/hippo/unifile/TreeDocumentFile.java index 8c1447545..c777ea4a5 100644 --- a/app/src/main/java/com/hippo/unifile/TreeDocumentFile.java +++ b/app/src/main/java/com/hippo/unifile/TreeDocumentFile.java @@ -17,6 +17,7 @@ package com.hippo.unifile; import android.content.Context; +import android.graphics.ImageDecoder; import android.net.Uri; import android.os.ParcelFileDescriptor; import android.text.TextUtils; @@ -25,8 +26,6 @@ import android.webkit.MimeTypeMap; import androidx.annotation.NonNull; -import com.hippo.image.Image; - import java.io.IOException; import java.util.ArrayList; @@ -249,7 +248,7 @@ class TreeDocumentFile extends UniFile { @NonNull @Override - public Image.CloseableSource getImageSource() { + public ImageDecoder.Source getImageSource() { return Contracts.getImageSource(mContext, mUri); } diff --git a/app/src/main/java/com/hippo/unifile/UniFile.java b/app/src/main/java/com/hippo/unifile/UniFile.java index d98f207c6..9906721ff 100644 --- a/app/src/main/java/com/hippo/unifile/UniFile.java +++ b/app/src/main/java/com/hippo/unifile/UniFile.java @@ -19,6 +19,7 @@ package com.hippo.unifile; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; +import android.graphics.ImageDecoder; import android.net.Uri; import android.os.Build; import android.os.ParcelFileDescriptor; @@ -26,8 +27,6 @@ import android.os.ParcelFileDescriptor; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import com.hippo.image.Image; - import java.io.File; import java.io.IOException; import java.util.ArrayList; @@ -414,7 +413,7 @@ public abstract class UniFile { public abstract boolean renameTo(String displayName); @NonNull - public abstract Image.CloseableSource getImageSource(); + public abstract ImageDecoder.Source getImageSource(); @NonNull public abstract ParcelFileDescriptor openFileDescriptor(@NonNull String mode) throws IOException;