diff --git a/Clover/app/src/main/java/com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.java b/Clover/app/src/main/java/com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.java index cfb848cb..fe778e1d 100644 --- a/Clover/app/src/main/java/com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.java +++ b/Clover/app/src/main/java/com/davemorrissey/labs/subscaleview/SubsamplingScaleImageView.java @@ -183,6 +183,8 @@ public class SubsamplingScaleImageView extends View { private Paint bitmapPaint; private Paint debugPaint; + private InitedCallback initCallback; + public SubsamplingScaleImageView(Context context, AttributeSet attr) { super(context, attr); setMinimumDpi(160); @@ -221,6 +223,10 @@ public class SubsamplingScaleImageView extends View { this(context, null); } + public void setInitCallback(InitedCallback initCallback) { + this.initCallback = initCallback; + } + /** * Sets the image orientation. It's best to call this before setting the image file or asset, because it may waste * loading of tiles. However, this can be freely called at any time. @@ -1529,7 +1535,9 @@ public class SubsamplingScaleImageView extends View { * skip their own rendering until the base layer (and its scale and translate) are known. */ protected void onImageReady() { - + if (initCallback != null) { + initCallback.onInit(); + } } /** @@ -1822,4 +1830,8 @@ public class SubsamplingScaleImageView extends View { } } + + public interface InitedCallback { + public void onInit(); + } } diff --git a/Clover/app/src/main/java/org/floens/chan/ui/view/ThumbnailImageView.java b/Clover/app/src/main/java/org/floens/chan/ui/view/ThumbnailImageView.java index 95259214..4c11c10b 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/view/ThumbnailImageView.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/view/ThumbnailImageView.java @@ -121,7 +121,6 @@ public class ThumbnailImageView extends LoadView implements View.OnClickListener @Override public void onProgress(long downloaded, long total, boolean done) { if (done) { - callback.setProgress(false); callback.setLinearProgress(0, 0, true); thumbnailNeeded = false; } else { @@ -131,11 +130,25 @@ public class ThumbnailImageView extends LoadView implements View.OnClickListener @Override public void onSuccess(File file) { - SubsamplingScaleImageView image = new SubsamplingScaleImageView(getContext()); + final SubsamplingScaleImageView image = new SubsamplingScaleImageView(getContext()); image.setImageFile(file.getAbsolutePath()); image.setOnClickListener(ThumbnailImageView.this); - setView(image, false); + addView(image); + + image.setInitCallback(new SubsamplingScaleImageView.InitedCallback() { + @Override + public void onInit() { + Utils.runOnUiThread(new Runnable() { + @Override + public void run() { + removeAllViews(); + addView(image); + callback.setProgress(false); + } + }); + } + }); } @Override @@ -247,11 +260,6 @@ public class ThumbnailImageView extends LoadView implements View.OnClickListener }); } - @Override - public void setView(View view, boolean animation) { - super.setView(view, animation && !thumbnailNeeded); - } - public VideoView getVideoView() { return videoView; }