summaryrefslogtreecommitdiff
path: root/org.fox.ttcomics
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2018-07-11 09:44:53 +0300
committerAndrew Dolgov <[email protected]>2018-07-11 09:44:53 +0300
commite64310fc7fcc0ac2ae73bd44120bc5cf7300dc08 (patch)
tree16cc68a1d79bacf970d9dc717ed29fbc98bb9922 /org.fox.ttcomics
parentb9a0273fb5d9f4f6d5fdc5e22fc3938187232cde (diff)
initial for glide
Diffstat (limited to 'org.fox.ttcomics')
-rwxr-xr-xorg.fox.ttcomics/build.gradle2
-rwxr-xr-xorg.fox.ttcomics/libs/universal-image-loader-1.9.3.jarbin160443 -> 0 bytes
-rwxr-xr-xorg.fox.ttcomics/org.fox.ttcomics.iml2
-rwxr-xr-xorg.fox.ttcomics/src/main/AndroidManifest.xml7
-rwxr-xr-xorg.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicFragment.java56
-rwxr-xr-xorg.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicListFragment.java62
-rwxr-xr-xorg.fox.ttcomics/src/main/java/org/fox/ttcomics2/CommonActivity.java20
-rwxr-xr-xorg.fox.ttcomics/src/main/java/org/fox/ttcomics2/ViewComicActivity.java4
-rw-r--r--org.fox.ttcomics/src/main/java/org/fox/ttcomics2/utils/ByteArrayImageDownloader.java29
-rwxr-xr-xorg.fox.ttcomics/src/main/java/org/fox/ttcomics2/utils/StreamGlideModule.java59
10 files changed, 94 insertions, 147 deletions
diff --git a/org.fox.ttcomics/build.gradle b/org.fox.ttcomics/build.gradle
index f080d5f..3ebac38 100755
--- a/org.fox.ttcomics/build.gradle
+++ b/org.fox.ttcomics/build.gradle
@@ -53,7 +53,7 @@ dependencies {
compile 'com.android.support:design:27.1.0'
compile 'com.shamanland:fab:0.0.8'
compile 'jp.co.recruit_mp:android-HeaderFooterGridView:0.2.4'
- compile files('libs/universal-image-loader-1.9.3.jar')
+ compile 'com.github.bumptech.glide:glide:3.8.0'
compile 'ch.acra:acra:4.9.1'
compile 'com.ToxicBakery.viewpager.transforms:view-pager-transforms:1.2.32@aar'
compile 'com.nhaarman.listviewanimations:lib-core:3.1.0@aar'
diff --git a/org.fox.ttcomics/libs/universal-image-loader-1.9.3.jar b/org.fox.ttcomics/libs/universal-image-loader-1.9.3.jar
deleted file mode 100755
index e8ca33b..0000000
--- a/org.fox.ttcomics/libs/universal-image-loader-1.9.3.jar
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttcomics/org.fox.ttcomics.iml b/org.fox.ttcomics/org.fox.ttcomics.iml
index e5494e2..37296f1 100755
--- a/org.fox.ttcomics/org.fox.ttcomics.iml
+++ b/org.fox.ttcomics/org.fox.ttcomics.iml
@@ -132,8 +132,8 @@
<orderEntry type="library" name="com.android.support:recyclerview-v7-27.1.0" level="project" />
<orderEntry type="library" name="org.clojure:clojure:1.7.0@jar" level="project" />
<orderEntry type="library" name="com.google.auto.service:auto-service:1.0-rc2@jar" level="project" />
- <orderEntry type="library" name="__local_aars__:C.\cygwin64\home\fox\Projects\tt-comics\org.fox.ttcomics\libs\universal-image-loader-1.9.3.jar:unspecified@jar" level="project" />
<orderEntry type="library" name="com.google.android.gms:play-services-auth-base-15.0.1" level="project" />
+ <orderEntry type="library" name="com.github.bumptech.glide:glide:3.8.0@jar" level="project" />
<orderEntry type="library" name="com.google.android.gms:play-services-auth-api-phone-15.0.1" level="project" />
<orderEntry type="library" name="stencil:stencil:0.3.5@jar" level="project" />
<orderEntry type="library" name="com.google.guava:guava:18.0@jar" level="project" />
diff --git a/org.fox.ttcomics/src/main/AndroidManifest.xml b/org.fox.ttcomics/src/main/AndroidManifest.xml
index 8c16a71..91e6eb0 100755
--- a/org.fox.ttcomics/src/main/AndroidManifest.xml
+++ b/org.fox.ttcomics/src/main/AndroidManifest.xml
@@ -13,7 +13,12 @@
android:hardwareAccelerated="true"
android:largeHeap="true"
android:fullBackupOnly="true"
- android:allowBackup="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 4121dfd..266597d 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
@@ -6,14 +6,15 @@ import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v7.app.ActionBar;
+import android.util.Log;
import android.view.GestureDetector;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
-import com.nostra13.universalimageloader.core.DisplayImageOptions;
-import com.nostra13.universalimageloader.core.ImageLoader;
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.load.engine.DiskCacheStrategy;
import org.fox.ttcomics2.archive.ComicArchive;
@@ -41,10 +42,6 @@ public class ComicFragment extends StateSavedFragment implements GestureDetector
m_page = page;
}
- public void setPage(int page) {
- m_page = page;
- }
-
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
@@ -53,28 +50,19 @@ public class ComicFragment extends StateSavedFragment implements GestureDetector
final ImageViewTouch image = view.findViewById(R.id.comic_image);
image.setFitToScreen(true);
- ImageLoader imageLoader = ImageLoader.getInstance();
-
- if (m_prefs.getBoolean("fit_to_width", false)) {
- image.setFitToWidth(true);
- }
-
- try {
- byte[] buf = m_archive.getByteArray(m_page);
-
- DisplayImageOptions options = new DisplayImageOptions.Builder()
- .showImageOnFail(R.drawable.badimage)
- .extraForDownloader(buf)
- .cacheOnDisk(false)
- .cacheInMemory(false)
- .build();
-
- imageLoader.displayImage("stream://" + m_page, image, options);
-
- } catch (IOException e) {
- image.setImageResource(R.drawable.badimage);
- e.printStackTrace();
- }
+ Log.d(TAG, "loading page:" + m_page + " " + m_archive);
+
+ try {
+ Glide.with(ComicFragment.this)
+ .load(m_archive.getItem(m_page))
+ .dontAnimate()
+ .diskCacheStrategy(DiskCacheStrategy.NONE)
+ .skipMemoryCache(true)
+ .into(image);
+ } catch (IOException e) {
+ image.setImageResource(R.drawable.badimage);
+ e.printStackTrace();
+ }
image.setOnScaleChangedListener(new ImageViewTouch.OnScaleChangedListener() {
@Override
@@ -92,12 +80,6 @@ public class ComicFragment extends StateSavedFragment implements GestureDetector
//}
- /* TextView page = (TextView) view.findViewById(R.id.comic_page);
-
- if (page != null) {
- page.setText(String.valueOf(m_page+1));
- } */
-
return view;
}
@@ -113,8 +95,8 @@ public class ComicFragment extends StateSavedFragment implements GestureDetector
}
}
}
-
- public boolean canScroll(int direction) {
+
+ /*public boolean canScroll(int direction) {
ImageViewTouch image = getView().findViewById(R.id.comic_image);
if (image != null) {
@@ -122,7 +104,7 @@ public class ComicFragment extends StateSavedFragment implements GestureDetector
} else {
return false;
}
- }
+ }*/
private void onRightSideTapped() {
ImageViewTouch image = getView().findViewById(R.id.comic_image);
diff --git a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicListFragment.java b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicListFragment.java
index 8c7f8ac..31fd6a8 100755
--- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicListFragment.java
+++ b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicListFragment.java
@@ -27,11 +27,10 @@ import android.widget.PopupMenu;
import android.widget.ProgressBar;
import android.widget.TextView;
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.nhaarman.listviewanimations.appearance.AnimationAdapter;
import com.nhaarman.listviewanimations.appearance.simple.ScaleInAnimationAdapter;
-import com.nostra13.universalimageloader.core.DisplayImageOptions;
-import com.nostra13.universalimageloader.core.ImageLoader;
-import com.nostra13.universalimageloader.core.process.BitmapProcessor;
import java.io.File;
@@ -56,7 +55,6 @@ public class ComicListFragment extends StateSavedFragment implements OnItemClick
@State protected String m_baseDirectory = "";
private SwipeRefreshLayout m_swipeLayout;
private AnimationAdapter m_animationAdapter;
- private ImageLoader m_imageLoader = ImageLoader.getInstance();
public ComicListFragment() {
super();
@@ -102,35 +100,6 @@ public class ComicListFragment extends StateSavedFragment implements OnItemClick
private class ComicsListAdapter extends SimpleCursorAdapter {
- DisplayImageOptions m_imageOptions = new DisplayImageOptions.Builder()
- .cacheInMemory(true)
- .resetViewBeforeLoading(true)
- .postProcessor(new BitmapProcessor() {
- @Override
- public Bitmap process(Bitmap bmp) {
- int maxDimension = 400;
-
- if (Math.max(bmp.getHeight(), bmp.getWidth()) > maxDimension) {
- int newHeight;
- int newWidth;
-
- if (bmp.getHeight() > bmp.getWidth()) {
- newHeight = maxDimension;
- newWidth = (int)(bmp.getWidth() * (float)maxDimension / (float)bmp.getHeight());
- } else {
- newWidth = maxDimension;
- newHeight = (int)(bmp.getHeight() * (float)maxDimension / (float)bmp.getWidth());
- }
-
- return Bitmap.createScaledBitmap(bmp, newWidth, newHeight, true);
- } else {
- return bmp;
- }
- }
- })
- .cacheOnDisk(false)
- .build();
-
public ComicsListAdapter(Context context, int layout, Cursor c,
String[] from, int[] to, int flags) {
super(context, layout, c, from, to, flags);
@@ -243,13 +212,14 @@ public class ComicListFragment extends StateSavedFragment implements OnItemClick
if (cacheFilename != null) {
File thumbnailFile = new File(cacheFilename);
- if (holder.thumbnail != null && thumbnailFile != null && thumbnailFile.exists()) {
+ if (holder.thumbnail != null && thumbnailFile.exists()) {
- if (!thumbnailFile.getAbsolutePath().equals(holder.thumbnail.getTag())) {
+ Glide.with(ComicListFragment.this)
+ .load(thumbnailFile)
+ .diskCacheStrategy(DiskCacheStrategy.NONE)
+ .skipMemoryCache(false)
+ .into(holder.thumbnail);
- m_imageLoader.displayImage("file://" + thumbnailFile.getAbsolutePath(), holder.thumbnail, m_imageOptions);
- holder.thumbnail.setTag(thumbnailFile.getAbsolutePath());
- }
} else {
holder.thumbnail.setImageDrawable(null);
}
@@ -288,22 +258,6 @@ public class ComicListFragment extends StateSavedFragment implements OnItemClick
m_animationAdapter.setAbsListView(grid);
grid.setAdapter(m_animationAdapter);
- //grid.setOnTouchListener(new ShowHideOnScroll(fab));
- grid.setOnScrollListener(new AbsListView.OnScrollListener() {
- @Override
- public void onScrollStateChanged(AbsListView view, int scrollState) {
- if (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_FLING || scrollState == AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL) {
- m_imageLoader.pause();
- } else {
- m_imageLoader.resume();
- }
- }
-
- @Override
- public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
-
- }
- });
//grid.setEmptyView(view.findViewById(R.id.no_comics));
grid.setOnItemClickListener(this);
diff --git a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/CommonActivity.java b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/CommonActivity.java
index 5599c64..d52f8d5 100755
--- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/CommonActivity.java
+++ b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/CommonActivity.java
@@ -14,12 +14,8 @@ import android.view.MenuItem;
import android.view.View;
import com.livefront.bridge.Bridge;
-import com.nostra13.universalimageloader.core.DisplayImageOptions;
-import com.nostra13.universalimageloader.core.ImageLoader;
-import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import org.fox.ttcomics2.sync.SyncClient;
-import org.fox.ttcomics2.utils.ByteArrayImageDownloader;
import org.fox.ttcomics2.utils.CacheCleanupService;
import java.io.File;
@@ -54,22 +50,6 @@ public class CommonActivity extends AppCompatActivity {
m_databaseHelper = DatabaseHelper.getInstance(this);
- if (!ImageLoader.getInstance().isInited()) {
-
- DisplayImageOptions options = new DisplayImageOptions.Builder()
- .cacheInMemory(true)
- .resetViewBeforeLoading(true)
- .cacheOnDisk(false)
- .build();
-
- ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(this)
- .defaultDisplayImageOptions(options)
- .imageDownloader(new ByteArrayImageDownloader(this))
- .build();
-
- ImageLoader.getInstance().init(config);
- }
-
m_prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
}
diff --git a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ViewComicActivity.java b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ViewComicActivity.java
index 660f32b..058e091 100755
--- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ViewComicActivity.java
+++ b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ViewComicActivity.java
@@ -24,8 +24,6 @@ import android.view.View;
import android.view.WindowManager;
import android.widget.NumberPicker;
-import com.nostra13.universalimageloader.core.ImageLoader;
-
import org.fox.ttcomics2.sync.SyncClient;
import java.io.File;
@@ -51,8 +49,6 @@ public class ViewComicActivity extends CommonActivity {
super.onCreate(savedInstanceState);
- ImageLoader.getInstance().clearMemoryCache();
-
if (m_prefs.getBoolean("prevent_screen_sleep", false)) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
diff --git a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/utils/ByteArrayImageDownloader.java b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/utils/ByteArrayImageDownloader.java
deleted file mode 100644
index 89f5260..0000000
--- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/utils/ByteArrayImageDownloader.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package org.fox.ttcomics2.utils;
-
-import android.content.Context;
-
-import com.nostra13.universalimageloader.core.download.BaseImageDownloader;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-public class ByteArrayImageDownloader extends BaseImageDownloader {
- private static final String SCHEME_STREAM = "stream";
- private static final String STREAM_URI_PREFIX = SCHEME_STREAM + "://";
-
- public ByteArrayImageDownloader(Context context) {
- super(context);
- }
-
- @Override
- protected InputStream getStreamFromOtherSource(String imageUri, Object extra) throws IOException {
- if (imageUri.startsWith(STREAM_URI_PREFIX)) {
- InputStream is = new ByteArrayInputStream((byte[])extra);
-
- return is;
- } else {
- return super.getStreamFromOtherSource(imageUri, extra);
- }
- }
-}
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
new file mode 100755
index 0000000..3659bfa
--- /dev/null
+++ b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/utils/StreamGlideModule.java
@@ -0,0 +1,59 @@
+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