Always load an image if it's already cached

multisite
Floens 10 years ago
parent 22ace00b21
commit 89e7b57ea6
  1. 4
      Clover/app/src/main/java/org/floens/chan/core/cache/FileCache.java
  2. 36
      Clover/app/src/main/java/org/floens/chan/core/presenter/ImageViewerPresenter.java

@ -147,6 +147,10 @@ public class FileCache {
}
}
public boolean exists(String key) {
return get(key).exists();
}
public File get(String key) {
makeDir();

@ -20,6 +20,7 @@ package org.floens.chan.core.presenter;
import android.net.ConnectivityManager;
import android.support.v4.view.ViewPager;
import org.floens.chan.Chan;
import org.floens.chan.core.model.Loadable;
import org.floens.chan.core.model.PostImage;
import org.floens.chan.core.settings.ChanSettings;
@ -178,12 +179,12 @@ public class ImageViewerPresenter implements MultiImageView.Callback, ViewPager.
private void onLowResInCenter() {
PostImage postImage = images.get(selectedPosition);
if (imageAutoLoad() && !postImage.spoiler) {
if (imageAutoLoad(postImage) && !postImage.spoiler) {
if (postImage.type == PostImage.Type.STATIC) {
callback.setImageMode(postImage, MultiImageView.Mode.BIGIMAGE);
} else if (postImage.type == PostImage.Type.GIF) {
callback.setImageMode(postImage, MultiImageView.Mode.GIF);
} else if (postImage.type == PostImage.Type.MOVIE && videoAutoLoad()) {
} else if (postImage.type == PostImage.Type.MOVIE && videoAutoLoad(postImage)) {
callback.setImageMode(postImage, MultiImageView.Mode.MOVIE);
}
}
@ -194,7 +195,7 @@ public class ImageViewerPresenter implements MultiImageView.Callback, ViewPager.
// Don't mistake a swipe when the pager is disabled as a tap
if (viewPagerVisible) {
PostImage postImage = images.get(selectedPosition);
if (imageAutoLoad() && !postImage.spoiler) {
if (imageAutoLoad(postImage) && !postImage.spoiler) {
if (postImage.type == PostImage.Type.MOVIE) {
callback.setImageMode(postImage, MultiImageView.Mode.MOVIE);
} else {
@ -253,22 +254,27 @@ public class ImageViewerPresenter implements MultiImageView.Callback, ViewPager.
callback.onVideoError(multiImageView);
}
private boolean imageAutoLoad() {
String autoLoadMode = ChanSettings.imageAutoLoadNetwork.get();
if (autoLoadMode.equals(ChanSettings.ImageAutoLoadMode.NONE.name)) {
return false;
} else if (autoLoadMode.equals(ChanSettings.ImageAutoLoadMode.WIFI.name)) {
return isConnected(ConnectivityManager.TYPE_WIFI);
} else if (autoLoadMode.equals(ChanSettings.ImageAutoLoadMode.ALL.name)) {
private boolean imageAutoLoad(PostImage postImage) {
// Auto load the image when it is cached
if (Chan.getFileCache().exists(postImage.imageUrl)) {
return true;
}
} else {
String autoLoadMode = ChanSettings.imageAutoLoadNetwork.get();
if (autoLoadMode.equals(ChanSettings.ImageAutoLoadMode.NONE.name)) {
return false;
} else if (autoLoadMode.equals(ChanSettings.ImageAutoLoadMode.WIFI.name)) {
return isConnected(ConnectivityManager.TYPE_WIFI);
} else if (autoLoadMode.equals(ChanSettings.ImageAutoLoadMode.ALL.name)) {
return true;
}
// Not connected or unrecognized
return false;
// Not connected or unrecognized
return false;
}
}
private boolean videoAutoLoad() {
return imageAutoLoad() && ChanSettings.videoAutoLoad.get();
private boolean videoAutoLoad(PostImage postImage) {
return imageAutoLoad(postImage) && ChanSettings.videoAutoLoad.get();
}
private void setTitle(PostImage postImage, int position) {

Loading…
Cancel
Save