diff --git a/Clover/app/src/main/java/org/floens/chan/core/ChanPreferences.java b/Clover/app/src/main/java/org/floens/chan/core/ChanPreferences.java
index 8f611e7b..6a7735f5 100644
--- a/Clover/app/src/main/java/org/floens/chan/core/ChanPreferences.java
+++ b/Clover/app/src/main/java/org/floens/chan/core/ChanPreferences.java
@@ -79,13 +79,17 @@ public class ChanPreferences {
}
public static boolean getVideoAutoPlay() {
- return p().getBoolean("preference_autoplay", false);
+ return getImageAutoLoad() && p().getBoolean("preference_autoplay", false);
}
public static boolean getThreadAutoRefresh() {
return p().getBoolean("preference_auto_refresh_thread", true);
}
+ public static boolean getImageAutoLoad() {
+ return p().getBoolean("preference_image_auto_load", true);
+ }
+
public static boolean getPassEnabled() {
return p().getBoolean("preference_pass_enabled", false);
}
diff --git a/Clover/app/src/main/java/org/floens/chan/ui/fragment/ImageViewFragment.java b/Clover/app/src/main/java/org/floens/chan/ui/fragment/ImageViewFragment.java
index 73ec2169..e281b8a2 100644
--- a/Clover/app/src/main/java/org/floens/chan/ui/fragment/ImageViewFragment.java
+++ b/Clover/app/src/main/java/org/floens/chan/ui/fragment/ImageViewFragment.java
@@ -47,6 +47,8 @@ public class ImageViewFragment extends Fragment implements ThumbnailImageViewCal
private boolean isVideo = false;
private boolean videoVisible = false;
private boolean videoSetIconToPause = false;
+ private boolean tapToLoad = false;
+ private boolean loaded = false;
public static ImageViewFragment newInstance(Post post, ImageViewActivity activity, int index) {
ImageViewFragment imageViewFragment = new ImageViewFragment();
@@ -98,20 +100,42 @@ public class ImageViewFragment extends Fragment implements ThumbnailImageViewCal
imageView.setThumbnail(post.thumbnailUrl);
- if (post.ext.equals("gif")) {
- imageView.setGif(post.imageUrl);
- } else if (post.ext.equals("webm")) {
- isVideo = true;
- activity.invalidateActionBar();
- showProgressBar(false);
+ if (ChanPreferences.getImageAutoLoad()) {
+ load();
} else {
- imageView.setBigImage(post.imageUrl);
+ tapToLoad = true;
+ showProgressBar(false);
}
}
});
}
}
+ private void load() {
+ if (loaded) return;
+ loaded = true;
+
+ if (post.ext.equals("gif")) {
+ imageView.setGif(post.imageUrl);
+ } else if (post.ext.equals("webm")) {
+ isVideo = true;
+ activity.invalidateActionBar();
+ showProgressBar(false);
+
+ if (tapToLoad) {
+ if (!videoVisible) {
+ startVideo();
+ } else {
+ if (imageView.getVideoView() != null) {
+ imageView.getVideoView().start();
+ }
+ }
+ }
+ } else {
+ imageView.setBigImage(post.imageUrl);
+ }
+ }
+
@Override
public void onSaveInstanceState(Bundle bundle) {
// https://code.google.com/p/android/issues/detail?id=19917
@@ -197,7 +221,9 @@ public class ImageViewFragment extends Fragment implements ThumbnailImageViewCal
}
private void startVideo() {
+ if (videoVisible) return;
videoVisible = true;
+
imageView.setVideo(post.imageUrl);
}
@@ -208,7 +234,15 @@ public class ImageViewFragment extends Fragment implements ThumbnailImageViewCal
@Override
public void onTap() {
- activity.finish();
+ if (tapToLoad) {
+ if (loaded) {
+ activity.finish();
+ } else {
+ load();
+ }
+ } else {
+ activity.finish();
+ }
}
@Override
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 73ea8412..99fb4a2b 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
@@ -56,7 +56,6 @@ public class ThumbnailImageView extends LoadView implements OnViewTapListener, V
private final float maxScale = 3f;
private boolean thumbnailNeeded = true;
- private boolean tapDismiss = false;
private ImageContainer imageContainerRequest;
private Request> imageRequest;
@@ -104,7 +103,6 @@ public class ThumbnailImageView extends LoadView implements OnViewTapListener, V
thumbnail.setImageBitmap(response.getBitmap());
thumbnail.setLayoutParams(Utils.MATCH_PARAMS);
setView(thumbnail, false);
- tapDismiss = true;
}
}
}, getWidth(), getHeight());
@@ -143,7 +141,6 @@ public class ThumbnailImageView extends LoadView implements OnViewTapListener, V
setView(image, !isImmediate);
callback.setProgress(false);
thumbnailNeeded = false;
- tapDismiss = true;
}
}
}, maxWidth, maxHeight);
@@ -166,7 +163,6 @@ public class ThumbnailImageView extends LoadView implements OnViewTapListener, V
setView(view, false);
callback.setProgress(false);
thumbnailNeeded = false;
- tapDismiss = true;
}
}, new Response.ErrorListener() {
@Override
@@ -206,7 +202,6 @@ public class ThumbnailImageView extends LoadView implements OnViewTapListener, V
setView(videoView, false);
callback.setProgress(false);
thumbnailNeeded = false;
- tapDismiss = true;
videoView.start();
} else {
@@ -251,16 +246,12 @@ public class ThumbnailImageView extends LoadView implements OnViewTapListener, V
@Override
public void onViewTap(View view, float x, float y) {
- if (tapDismiss) {
- callback.onTap();
- }
+ callback.onTap();
}
@Override
public void onClick(View v) {
- if (tapDismiss) {
- callback.onTap();
- }
+ callback.onTap();
}
public static interface ThumbnailImageViewCallback {
diff --git a/Clover/app/src/main/res/values/strings.xml b/Clover/app/src/main/res/values/strings.xml
index 67021a29..ebd37bf9 100644
--- a/Clover/app/src/main/res/values/strings.xml
+++ b/Clover/app/src/main/res/values/strings.xml
@@ -114,8 +114,9 @@
Ask before opening links
- Start playing videos directly
+ Start playing videos immediately
Auto refresh threads
+ Auto load image
Default name
Default email
diff --git a/Clover/app/src/main/res/xml/preference.xml b/Clover/app/src/main/res/xml/preference.xml
index 9c448f86..1c310fab 100644
--- a/Clover/app/src/main/res/xml/preference.xml
+++ b/Clover/app/src/main/res/xml/preference.xml
@@ -39,9 +39,16 @@
android:defaultValue="true"
android:key="preference_open_link_confirmation"
android:title="@string/preference_open_link_confirmation" />
+
+
+