diff options
author | Andrew Dolgov <[email protected]> | 2018-07-11 09:50:56 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2018-07-11 09:50:56 +0300 |
commit | 54efd96860aebb9ba137b389ce331fdb49c83b6a (patch) | |
tree | 7c2e86b3725fbf4d91532ad4fb68b41b267c242f /org.fox.ttcomics | |
parent | e64310fc7fcc0ac2ae73bd44120bc5cf7300dc08 (diff) |
switch glide to use byte arrays
Diffstat (limited to 'org.fox.ttcomics')
4 files changed, 13 insertions, 65 deletions
diff --git a/org.fox.ttcomics/src/main/AndroidManifest.xml b/org.fox.ttcomics/src/main/AndroidManifest.xml index 91e6eb0..e34f5c4 100755 --- a/org.fox.ttcomics/src/main/AndroidManifest.xml +++ b/org.fox.ttcomics/src/main/AndroidManifest.xml @@ -15,10 +15,6 @@ android:fullBackupOnly="true"
android:allowBackup="true">
- <meta-data
- android:name="org.fox.ttcomics2.utils.StreamGlideModule"
- android:value="GlideModule" />
-
<activity
android:theme="@android:style/Theme.NoDisplay"
android:name=".LaunchActivity"
diff --git a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicFragment.java b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicFragment.java index 266597d..ef8a088 100755 --- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicFragment.java +++ b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicFragment.java @@ -54,7 +54,7 @@ public class ComicFragment extends StateSavedFragment implements GestureDetector try {
Glide.with(ComicFragment.this)
- .load(m_archive.getItem(m_page))
+ .load(m_archive.getByteArray(m_page))
.dontAnimate()
.diskCacheStrategy(DiskCacheStrategy.NONE)
.skipMemoryCache(true)
diff --git a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/archive/CbrComicArchive.java b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/archive/CbrComicArchive.java index 9e37bbc..b16d84b 100755 --- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/archive/CbrComicArchive.java +++ b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/archive/CbrComicArchive.java @@ -30,6 +30,17 @@ public class CbrComicArchive extends ComicArchive { @Override public InputStream getItem(int index) throws IOException { + try { + return new ByteArrayInputStream(getByteArray(index)); + } catch (NullPointerException e) { + e.printStackTrace(); + + return null; + } + } + + @Override + public byte[] getByteArray(int index) throws IOException { FileHeader fh = m_entries.get(index).m_fh; ByteArrayOutputStream out = new ByteArrayOutputStream(); @@ -37,7 +48,7 @@ public class CbrComicArchive extends ComicArchive { try { m_archive.extractFile(fh, out); - return new ByteArrayInputStream(out.toByteArray()); + return out.toByteArray(); } catch (RarException e) { e.printStackTrace(); diff --git a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/utils/StreamGlideModule.java b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/utils/StreamGlideModule.java deleted file mode 100755 index 3659bfa..0000000 --- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/utils/StreamGlideModule.java +++ /dev/null @@ -1,59 +0,0 @@ -package org.fox.ttcomics2.utils; - -import android.content.Context; -import android.util.Log; - -import com.bumptech.glide.Glide; -import com.bumptech.glide.GlideBuilder; -import com.bumptech.glide.Priority; -import com.bumptech.glide.load.data.DataFetcher; -import com.bumptech.glide.load.model.GenericLoaderFactory; -import com.bumptech.glide.load.model.ModelLoader; -import com.bumptech.glide.load.model.ModelLoaderFactory; -import com.bumptech.glide.load.model.stream.StreamModelLoader; -import com.bumptech.glide.module.GlideModule; - -import java.io.IOException; -import java.io.InputStream; - -class StreamGlideModule implements GlideModule { - @Override public void applyOptions(Context context, GlideBuilder builder) { - - } - @Override public void registerComponents(Context context, Glide glide) { - glide.register(InputStream.class, InputStream.class, new PassthroughStreamLoader.Factory()); - } -} - -class PassthroughStreamLoader implements StreamModelLoader<InputStream> { - @Override public DataFetcher<InputStream> getResourceFetcher(final InputStream model, int width, int height) { - return new DataFetcher<InputStream>() { - @Override public InputStream loadData(Priority priority) throws Exception { - return model; - } - @Override public void cleanup() { - try { - model.close(); - } catch (IOException e) { - Log.w("PassthroughDataFetcher", "Cannot clean up after stream", e); - } - } - @Override public String getId() { - return String.valueOf(System.currentTimeMillis()); // There's no way to have a meaningful value here, - // which means that caching of straight-loaded InputStreams is not possible. - } - @Override public void cancel() { - // do nothing - } - }; - } - - public static class Factory implements ModelLoaderFactory<InputStream, InputStream> { - @Override public ModelLoader<InputStream, InputStream> build(Context context, GenericLoaderFactory factories) { - return new PassthroughStreamLoader(); - } - @Override public void teardown() { - // nothing to do - } - } -}
\ No newline at end of file |