summaryrefslogtreecommitdiff
path: root/org.fox.ttcomics
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2018-07-11 09:50:56 +0300
committerAndrew Dolgov <[email protected]>2018-07-11 09:50:56 +0300
commit54efd96860aebb9ba137b389ce331fdb49c83b6a (patch)
tree7c2e86b3725fbf4d91532ad4fb68b41b267c242f /org.fox.ttcomics
parente64310fc7fcc0ac2ae73bd44120bc5cf7300dc08 (diff)
switch glide to use byte arrays
Diffstat (limited to 'org.fox.ttcomics')
-rwxr-xr-xorg.fox.ttcomics/src/main/AndroidManifest.xml4
-rwxr-xr-xorg.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicFragment.java2
-rwxr-xr-xorg.fox.ttcomics/src/main/java/org/fox/ttcomics2/archive/CbrComicArchive.java13
-rwxr-xr-xorg.fox.ttcomics/src/main/java/org/fox/ttcomics2/utils/StreamGlideModule.java59
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