Add an auto load image preference.

captchafix
Florens Douwes 11 years ago
parent 39533f019e
commit 0a680219fc
  1. 6
      Clover/app/src/main/java/org/floens/chan/core/ChanPreferences.java
  2. 38
      Clover/app/src/main/java/org/floens/chan/ui/fragment/ImageViewFragment.java
  3. 9
      Clover/app/src/main/java/org/floens/chan/ui/view/ThumbnailImageView.java
  4. 3
      Clover/app/src/main/res/values/strings.xml
  5. 7
      Clover/app/src/main/res/xml/preference.xml

@ -79,13 +79,17 @@ public class ChanPreferences {
} }
public static boolean getVideoAutoPlay() { public static boolean getVideoAutoPlay() {
return p().getBoolean("preference_autoplay", false); return getImageAutoLoad() && p().getBoolean("preference_autoplay", false);
} }
public static boolean getThreadAutoRefresh() { public static boolean getThreadAutoRefresh() {
return p().getBoolean("preference_auto_refresh_thread", true); return p().getBoolean("preference_auto_refresh_thread", true);
} }
public static boolean getImageAutoLoad() {
return p().getBoolean("preference_image_auto_load", true);
}
public static boolean getPassEnabled() { public static boolean getPassEnabled() {
return p().getBoolean("preference_pass_enabled", false); return p().getBoolean("preference_pass_enabled", false);
} }

@ -47,6 +47,8 @@ public class ImageViewFragment extends Fragment implements ThumbnailImageViewCal
private boolean isVideo = false; private boolean isVideo = false;
private boolean videoVisible = false; private boolean videoVisible = false;
private boolean videoSetIconToPause = false; private boolean videoSetIconToPause = false;
private boolean tapToLoad = false;
private boolean loaded = false;
public static ImageViewFragment newInstance(Post post, ImageViewActivity activity, int index) { public static ImageViewFragment newInstance(Post post, ImageViewActivity activity, int index) {
ImageViewFragment imageViewFragment = new ImageViewFragment(); ImageViewFragment imageViewFragment = new ImageViewFragment();
@ -98,17 +100,39 @@ public class ImageViewFragment extends Fragment implements ThumbnailImageViewCal
imageView.setThumbnail(post.thumbnailUrl); imageView.setThumbnail(post.thumbnailUrl);
if (ChanPreferences.getImageAutoLoad()) {
load();
} else {
tapToLoad = true;
showProgressBar(false);
}
}
});
}
}
private void load() {
if (loaded) return;
loaded = true;
if (post.ext.equals("gif")) { if (post.ext.equals("gif")) {
imageView.setGif(post.imageUrl); imageView.setGif(post.imageUrl);
} else if (post.ext.equals("webm")) { } else if (post.ext.equals("webm")) {
isVideo = true; isVideo = true;
activity.invalidateActionBar(); activity.invalidateActionBar();
showProgressBar(false); showProgressBar(false);
if (tapToLoad) {
if (!videoVisible) {
startVideo();
} else { } else {
imageView.setBigImage(post.imageUrl); if (imageView.getVideoView() != null) {
imageView.getVideoView().start();
} }
} }
}); }
} else {
imageView.setBigImage(post.imageUrl);
} }
} }
@ -197,7 +221,9 @@ public class ImageViewFragment extends Fragment implements ThumbnailImageViewCal
} }
private void startVideo() { private void startVideo() {
if (videoVisible) return;
videoVisible = true; videoVisible = true;
imageView.setVideo(post.imageUrl); imageView.setVideo(post.imageUrl);
} }
@ -208,8 +234,16 @@ public class ImageViewFragment extends Fragment implements ThumbnailImageViewCal
@Override @Override
public void onTap() { public void onTap() {
if (tapToLoad) {
if (loaded) {
activity.finish();
} else {
load();
}
} else {
activity.finish(); activity.finish();
} }
}
@Override @Override
public void setProgress(boolean progress) { public void setProgress(boolean progress) {

@ -56,7 +56,6 @@ public class ThumbnailImageView extends LoadView implements OnViewTapListener, V
private final float maxScale = 3f; private final float maxScale = 3f;
private boolean thumbnailNeeded = true; private boolean thumbnailNeeded = true;
private boolean tapDismiss = false;
private ImageContainer imageContainerRequest; private ImageContainer imageContainerRequest;
private Request<?> imageRequest; private Request<?> imageRequest;
@ -104,7 +103,6 @@ public class ThumbnailImageView extends LoadView implements OnViewTapListener, V
thumbnail.setImageBitmap(response.getBitmap()); thumbnail.setImageBitmap(response.getBitmap());
thumbnail.setLayoutParams(Utils.MATCH_PARAMS); thumbnail.setLayoutParams(Utils.MATCH_PARAMS);
setView(thumbnail, false); setView(thumbnail, false);
tapDismiss = true;
} }
} }
}, getWidth(), getHeight()); }, getWidth(), getHeight());
@ -143,7 +141,6 @@ public class ThumbnailImageView extends LoadView implements OnViewTapListener, V
setView(image, !isImmediate); setView(image, !isImmediate);
callback.setProgress(false); callback.setProgress(false);
thumbnailNeeded = false; thumbnailNeeded = false;
tapDismiss = true;
} }
} }
}, maxWidth, maxHeight); }, maxWidth, maxHeight);
@ -166,7 +163,6 @@ public class ThumbnailImageView extends LoadView implements OnViewTapListener, V
setView(view, false); setView(view, false);
callback.setProgress(false); callback.setProgress(false);
thumbnailNeeded = false; thumbnailNeeded = false;
tapDismiss = true;
} }
}, new Response.ErrorListener() { }, new Response.ErrorListener() {
@Override @Override
@ -206,7 +202,6 @@ public class ThumbnailImageView extends LoadView implements OnViewTapListener, V
setView(videoView, false); setView(videoView, false);
callback.setProgress(false); callback.setProgress(false);
thumbnailNeeded = false; thumbnailNeeded = false;
tapDismiss = true;
videoView.start(); videoView.start();
} else { } else {
@ -251,17 +246,13 @@ public class ThumbnailImageView extends LoadView implements OnViewTapListener, V
@Override @Override
public void onViewTap(View view, float x, float y) { public void onViewTap(View view, float x, float y) {
if (tapDismiss) {
callback.onTap(); callback.onTap();
} }
}
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if (tapDismiss) {
callback.onTap(); callback.onTap();
} }
}
public static interface ThumbnailImageViewCallback { public static interface ThumbnailImageViewCallback {
public void onTap(); public void onTap();

@ -114,8 +114,9 @@
</string-array> </string-array>
<string name="preference_open_link_confirmation">Ask before opening links</string> <string name="preference_open_link_confirmation">Ask before opening links</string>
<string name="preference_autoplay">Start playing videos directly</string> <string name="preference_autoplay">Start playing videos immediately</string>
<string name="preference_auto_refresh_thread">Auto refresh threads</string> <string name="preference_auto_refresh_thread">Auto refresh threads</string>
<string name="preference_image_auto_load">Auto load image</string>
<string name="preference_default_name">Default name</string> <string name="preference_default_name">Default name</string>
<string name="preference_default_email">Default email</string> <string name="preference_default_email">Default email</string>

@ -39,9 +39,16 @@
android:defaultValue="true" android:defaultValue="true"
android:key="preference_open_link_confirmation" android:key="preference_open_link_confirmation"
android:title="@string/preference_open_link_confirmation" /> android:title="@string/preference_open_link_confirmation" />
<CheckBoxPreference
android:defaultValue="true"
android:key="preference_image_auto_load"
android:title="@string/preference_image_auto_load"/>
<CheckBoxPreference <CheckBoxPreference
android:defaultValue="false" android:defaultValue="false"
android:key="preference_autoplay" android:key="preference_autoplay"
android:dependency="preference_image_auto_load"
android:title="@string/preference_autoplay" /> android:title="@string/preference_autoplay" />
<CheckBoxPreference <CheckBoxPreference

Loading…
Cancel
Save