From ffc7b4d5f5f7d0a9593aa2303ee646c0789790b5 Mon Sep 17 00:00:00 2001 From: Andy Klimczak Date: Thu, 19 May 2016 22:01:10 -0400 Subject: [PATCH] Add Reveal Image Spoiler advanced option --- Clover/app/src/main/java/org/floens/chan/core/model/Post.java | 3 ++- .../org/floens/chan/core/presenter/ImageViewerPresenter.java | 2 +- .../main/java/org/floens/chan/core/settings/ChanSettings.java | 2 ++ .../src/main/java/org/floens/chan/ui/cell/AlbumViewCell.java | 3 ++- Clover/app/src/main/java/org/floens/chan/ui/cell/PostCell.java | 2 +- .../floens/chan/ui/controller/AdvancedSettingsController.java | 1 + .../org/floens/chan/ui/controller/ImageViewerController.java | 2 +- Clover/app/src/main/res/values/strings.xml | 1 + 8 files changed, 11 insertions(+), 5 deletions(-) diff --git a/Clover/app/src/main/java/org/floens/chan/core/model/Post.java b/Clover/app/src/main/java/org/floens/chan/core/model/Post.java index 76a0a483..3eb7dace 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/model/Post.java +++ b/Clover/app/src/main/java/org/floens/chan/core/model/Post.java @@ -23,6 +23,7 @@ import android.text.TextUtils; import org.floens.chan.Chan; import org.floens.chan.chan.ChanParser; import org.floens.chan.chan.ChanUrls; +import org.floens.chan.core.settings.ChanSettings; import org.jsoup.parser.Parser; import java.util.ArrayList; @@ -162,7 +163,7 @@ public class Post { imageUrl = ChanUrls.getImageUrl(board, Long.toString(tim), ext); filename = Parser.unescapeEntities(filename, false); - if (spoiler) { + if (spoiler && !ChanSettings.revealImageSpoilers.get()) { Board b = Chan.getBoardManager().getBoardByCode(board); if (b != null && b.customSpoilers >= 0) { thumbnailUrl = ChanUrls.getCustomSpoilerUrl(board, random.nextInt(b.customSpoilers) + 1); diff --git a/Clover/app/src/main/java/org/floens/chan/core/presenter/ImageViewerPresenter.java b/Clover/app/src/main/java/org/floens/chan/core/presenter/ImageViewerPresenter.java index efc20e79..4d36b6f2 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/presenter/ImageViewerPresenter.java +++ b/Clover/app/src/main/java/org/floens/chan/core/presenter/ImageViewerPresenter.java @@ -187,7 +187,7 @@ public class ImageViewerPresenter implements MultiImageView.Callback, ViewPager. private void onLowResInCenter() { PostImage postImage = images.get(selectedPosition); - if (imageAutoLoad(postImage) && !postImage.spoiler) { + if (imageAutoLoad(postImage) && (!postImage.spoiler || ChanSettings.revealImageSpoilers.get())) { if (postImage.type == PostImage.Type.STATIC) { callback.setImageMode(postImage, MultiImageView.Mode.BIGIMAGE); } else if (postImage.type == PostImage.Type.GIF) { diff --git a/Clover/app/src/main/java/org/floens/chan/core/settings/ChanSettings.java b/Clover/app/src/main/java/org/floens/chan/core/settings/ChanSettings.java index 4f3a35c3..f5fad349 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/settings/ChanSettings.java +++ b/Clover/app/src/main/java/org/floens/chan/core/settings/ChanSettings.java @@ -117,6 +117,7 @@ public class ChanSettings { public static final BooleanSetting anonymize; public static final BooleanSetting anonymizeIds; public static final BooleanSetting showAnonymousName; + public static final BooleanSetting revealImageSpoilers; public static final BooleanSetting repliesButtonsBottom; public static final BooleanSetting confirmExit; public static final BooleanSetting tapNoReply; @@ -205,6 +206,7 @@ public class ChanSettings { anonymize = new BooleanSetting(p, "preference_anonymize", false); anonymizeIds = new BooleanSetting(p, "preference_anonymize_ids", false); showAnonymousName = new BooleanSetting(p, "preference_show_anonymous_name", false); + revealImageSpoilers = new BooleanSetting(p, "preference_reveal_image_spoilers", false); repliesButtonsBottom = new BooleanSetting(p, "preference_buttons_bottom", false); confirmExit = new BooleanSetting(p, "preference_confirm_exit", false); tapNoReply = new BooleanSetting(p, "preference_tap_no_reply", false); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/cell/AlbumViewCell.java b/Clover/app/src/main/java/org/floens/chan/ui/cell/AlbumViewCell.java index f7d6eb35..4bedb6b7 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/cell/AlbumViewCell.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/cell/AlbumViewCell.java @@ -24,6 +24,7 @@ import android.widget.TextView; import org.floens.chan.R; import org.floens.chan.core.model.PostImage; +import org.floens.chan.core.settings.ChanSettings; import org.floens.chan.ui.view.PostImageThumbnailView; import org.floens.chan.ui.view.ThumbnailView; import org.floens.chan.utils.AndroidUtils; @@ -62,7 +63,7 @@ public class AlbumViewCell extends FrameLayout { int thumbnailSize = getDimen(getContext(), R.dimen.cell_post_thumbnail_size); thumbnailView.setPostImage(postImage, thumbnailSize, thumbnailSize); - String filename = postImage.spoiler ? getString(R.string.image_spoiler_filename) : postImage.filename + "." + postImage.extension; + String filename = postImage.spoiler && !ChanSettings.revealImageSpoilers.get() ? getString(R.string.image_spoiler_filename) : postImage.filename + "." + postImage.extension; String details = postImage.extension.toUpperCase() + " " + postImage.imageWidth + "x" + postImage.imageHeight + " " + AndroidUtils.getReadableFileSize(postImage.size, false); text.setText(details); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/cell/PostCell.java b/Clover/app/src/main/java/org/floens/chan/ui/cell/PostCell.java index 811b2c9c..cdec34c7 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/cell/PostCell.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/cell/PostCell.java @@ -373,7 +373,7 @@ public class PostCell extends LinearLayout implements PostCellInterface { boolean postFileName = ChanSettings.postFilename.get(); if (postFileName) { - String filename = image.spoiler ? getString(R.string.image_spoiler_filename) : image.filename + "." + image.extension; + String filename = image.spoiler && !ChanSettings.revealImageSpoilers.get() ? getString(R.string.image_spoiler_filename) : image.filename + "." + image.extension; SpannableString fileInfo = new SpannableString("\n" + filename); fileInfo.setSpan(new ForegroundColorSpanHashed(theme.detailsColor), 0, fileInfo.length(), 0); fileInfo.setSpan(new AbsoluteSizeSpanHashed(detailsSizePx), 0, fileInfo.length(), 0); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/AdvancedSettingsController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/AdvancedSettingsController.java index 2449ad08..1d37fd05 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/AdvancedSettingsController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/AdvancedSettingsController.java @@ -123,6 +123,7 @@ public class AdvancedSettingsController extends SettingsController { settings.add(new BooleanSettingView(this, ChanSettings.anonymize, R.string.setting_anonymize, 0)); settings.add(new BooleanSettingView(this, ChanSettings.anonymizeIds, R.string.setting_anonymize_ids, 0)); settings.add(new BooleanSettingView(this, ChanSettings.showAnonymousName, R.string.setting_show_anonymous_name, 0)); + settings.add(new BooleanSettingView(this, ChanSettings.revealImageSpoilers, R.string.settings_reveal_image_spoilers, 0)); settings.add(new BooleanSettingView(this, ChanSettings.repliesButtonsBottom, R.string.setting_buttons_bottom, 0)); settings.add(new BooleanSettingView(this, ChanSettings.confirmExit, R.string.setting_confirm_exit, 0)); settings.add(new BooleanSettingView(this, ChanSettings.tapNoReply, R.string.setting_tap_no_rely, 0)); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/ImageViewerController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/ImageViewerController.java index e08b8ed9..1c2d56b3 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/ImageViewerController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/ImageViewerController.java @@ -277,7 +277,7 @@ public class ImageViewerController extends Controller implements ImageViewerPres } public void setTitle(PostImage postImage, int index, int count, boolean spoiler) { - if (spoiler) { + if (spoiler && !ChanSettings.revealImageSpoilers.get()) { navigationItem.title = getString(R.string.image_spoiler_filename); } else { navigationItem.title = postImage.filename + "." + postImage.extension; diff --git a/Clover/app/src/main/res/values/strings.xml b/Clover/app/src/main/res/values/strings.xml index d70c0826..ecffb8ee 100644 --- a/Clover/app/src/main/res/values/strings.xml +++ b/Clover/app/src/main/res/values/strings.xml @@ -410,6 +410,7 @@ along with this program. If not, see . Make everyone Anonymous Hide IDs Show Anonymous username + Reveal image spoilers Reply buttons on the bottom Confirm before exit Confirm exit