From 3d32fd7bccf1c4c317bc962e9a624455c148a603 Mon Sep 17 00:00:00 2001 From: seven332 Date: Wed, 1 Apr 2015 09:22:12 +0800 Subject: [PATCH 1/3] Fix omitted 509 url --- .../com/hippo/ehviewer/ehclient/ExDownloader.java | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/ehclient/ExDownloader.java b/app/src/main/java/com/hippo/ehviewer/ehclient/ExDownloader.java index a74e5aaba..02cce170b 100644 --- a/app/src/main/java/com/hippo/ehviewer/ehclient/ExDownloader.java +++ b/app/src/main/java/com/hippo/ehviewer/ehclient/ExDownloader.java @@ -51,11 +51,9 @@ public final class ExDownloader implements Runnable { private static final int IO_BUFFER_SIZE = 8 * 1024; - private static final String[] URL_ARRAY_509 = new String[] { - "http://ehgt.org/g/509.gif", - "http://ehgt.org/g/509s.gif", - "http://st.exhentai.net/img/509.gif", - "http://st.exhentai.net/img/509s.gif" + private static final String[] URL_509_SUFFIX_ARRAY = { + "/509.gif", + "/509s.gif" }; private final Context mContext; @@ -786,9 +784,8 @@ public final class ExDownloader implements Runnable { //Check 509 gif boolean get509 = false; - int length = URL_ARRAY_509.length; - for (int j = 0; j < length; j++) { - if (URL_ARRAY_509[j].equals(imageUrl)) { + for (String suffix : URL_509_SUFFIX_ARRAY) { + if (imageUrl.endsWith(suffix)) { // Get 509 gif here get509 = true; break; From 857366f8d6a46ec50c4c639297c9cfe90f652dc6 Mon Sep 17 00:00:00 2001 From: seven332 Date: Thu, 2 Apr 2015 18:36:53 +0800 Subject: [PATCH 2/3] Avoid SparseArray error for multi thread --- .../hippo/ehviewer/gallery/data/ImageSet.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/gallery/data/ImageSet.java b/app/src/main/java/com/hippo/ehviewer/gallery/data/ImageSet.java index 75307d24c..c22287c5a 100644 --- a/app/src/main/java/com/hippo/ehviewer/gallery/data/ImageSet.java +++ b/app/src/main/java/com/hippo/ehviewer/gallery/data/ImageSet.java @@ -16,13 +16,8 @@ package com.hippo.ehviewer.gallery.data; -import java.io.File; -import java.util.Queue; -import java.util.concurrent.ConcurrentLinkedQueue; - import android.graphics.BitmapFactory; import android.graphics.Movie; -import android.util.SparseArray; import com.hippo.ehviewer.AppHandler; import com.hippo.ehviewer.ehclient.ExDownloader; @@ -35,6 +30,12 @@ import com.hippo.ehviewer.util.EhUtils; import com.hippo.ehviewer.util.Log; import com.hippo.ehviewer.util.Utils; +import java.io.File; +import java.util.Map; +import java.util.Queue; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentLinkedQueue; + public class ImageSet implements ExDownloader.ListenerForImageSet { private static final String TAG = ImageSet.class.getSimpleName(); @@ -52,8 +53,8 @@ public class ImageSet implements ExDownloader.ListenerForImageSet { private final File mDir; private final AutoExpandArray mImageFilenameArray; private ImageListener mListener; - private final Queue mDecodeQueue = new ConcurrentLinkedQueue(); - private final SparseArray mPercentMap = new SparseArray(5); + private final Queue mDecodeQueue = new ConcurrentLinkedQueue<>(); + private final Map mPercentMap = new ConcurrentHashMap<>(5); private final DecodeWorker mDecodeWorker; /** If true, then wake Worker, worker will stop **/ private volatile boolean mStopWork = false; @@ -266,8 +267,7 @@ public class ImageSet implements ExDownloader.ListenerForImageSet { @Override public void onDownloading(final int index, final float percent) { - mPercentMap.append(index, percent); - + mPercentMap.put(index, percent); AppHandler.getInstance().post(new Runnable() { @Override public void run() { From 0335e4338b76e0682f9eaeef96465ba2220f1a67 Mon Sep 17 00:00:00 2001 From: seven332 Date: Thu, 2 Apr 2015 19:11:38 +0800 Subject: [PATCH 3/3] Avoid unknown error in EasyRecyclerView --- .../ehviewer/widget/recyclerview/EasyRecyclerView.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/hippo/ehviewer/widget/recyclerview/EasyRecyclerView.java b/app/src/main/java/com/hippo/ehviewer/widget/recyclerview/EasyRecyclerView.java index 3698ddb25..4c742abc2 100644 --- a/app/src/main/java/com/hippo/ehviewer/widget/recyclerview/EasyRecyclerView.java +++ b/app/src/main/java/com/hippo/ehviewer/widget/recyclerview/EasyRecyclerView.java @@ -636,9 +636,14 @@ public class EasyRecyclerView extends RecyclerView implements View.OnClickListen @Override public void onClick(View view) { - final int position = getChildPosition(view); + final int position = getChildAdapterPosition(view); final long id = mAdapter.getItemId(position); + if (position < 0) { + // I don't know why, but something wrong happend. + return; + } + boolean dispatchItemClick = true; if (mChoiceMode != CHOICE_MODE_NONE) {