From 581f792765ce1d93f216ab9332ec61de09ba1dab Mon Sep 17 00:00:00 2001 From: Floens Date: Wed, 24 Jan 2018 19:59:12 +0100 Subject: [PATCH] fix reveal image spoilers option also add a description to the setting. --- .../floens/chan/core/manager/WatchManager.java | 4 ++-- .../org/floens/chan/core/model/PostImage.java | 16 ++++++++++++++++ .../chan/core/presenter/ThreadPresenter.java | 2 +- .../chan/core/site/common/FutabaChanReader.java | 10 +++++----- .../ui/controller/ImageViewerController.java | 4 ++-- .../ui/controller/MediaSettingsController.java | 3 ++- .../org/floens/chan/ui/view/MultiImageView.java | 2 +- .../chan/ui/view/PostImageThumbnailView.java | 2 +- Clover/app/src/main/res/values/strings.xml | 2 +- 9 files changed, 31 insertions(+), 14 deletions(-) diff --git a/Clover/app/src/main/java/org/floens/chan/core/manager/WatchManager.java b/Clover/app/src/main/java/org/floens/chan/core/manager/WatchManager.java index 5338d4b2..2e63a7df 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/manager/WatchManager.java +++ b/Clover/app/src/main/java/org/floens/chan/core/manager/WatchManager.java @@ -166,7 +166,7 @@ public class WatchManager { pin.loadable = loadable; pin.loadable.title = PostHelper.getTitle(opPost, loadable); PostImage image = opPost.image; - pin.thumbnailUrl = image == null ? "" : image.thumbnailUrl.toString(); + pin.thumbnailUrl = image == null ? "" : image.getThumbnailUrl().toString(); return createPin(pin); } @@ -756,7 +756,7 @@ public class WatchManager { pin.isError = false; if (pin.thumbnailUrl == null && thread.op != null && thread.op.image != null) { - pin.thumbnailUrl = thread.op.image.thumbnailUrl.toString(); + pin.thumbnailUrl = thread.op.image.getThumbnailUrl().toString(); } // Populate posts list diff --git a/Clover/app/src/main/java/org/floens/chan/core/model/PostImage.java b/Clover/app/src/main/java/org/floens/chan/core/model/PostImage.java index 74d1a0c4..0230aae8 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/model/PostImage.java +++ b/Clover/app/src/main/java/org/floens/chan/core/model/PostImage.java @@ -28,6 +28,7 @@ public class PostImage { public final String originalName; public final HttpUrl thumbnailUrl; + public final HttpUrl spoilerThumbnailUrl; public final HttpUrl imageUrl; public final String filename; public final String extension; @@ -41,6 +42,7 @@ public class PostImage { private PostImage(Builder builder) { this.originalName = builder.originalName; this.thumbnailUrl = builder.thumbnailUrl; + this.spoilerThumbnailUrl = builder.spoilerThumbnailUrl; this.imageUrl = builder.imageUrl; this.filename = builder.filename; this.extension = builder.extension; @@ -62,9 +64,18 @@ public class PostImage { } } + public HttpUrl getThumbnailUrl() { + if (!spoiler) { + return thumbnailUrl; + } else { + return spoilerThumbnailUrl; + } + } + public static final class Builder { private String originalName; private HttpUrl thumbnailUrl; + private HttpUrl spoilerThumbnailUrl; private HttpUrl imageUrl; private String filename; private String extension; @@ -86,6 +97,11 @@ public class PostImage { return this; } + public Builder spoilerThumbnailUrl(HttpUrl spoilerThumbnailUrl) { + this.spoilerThumbnailUrl = spoilerThumbnailUrl; + return this; + } + public Builder imageUrl(HttpUrl imageUrl) { this.imageUrl = imageUrl; return this; diff --git a/Clover/app/src/main/java/org/floens/chan/core/presenter/ThreadPresenter.java b/Clover/app/src/main/java/org/floens/chan/core/presenter/ThreadPresenter.java index 9f32499b..c5c4c4c6 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/presenter/ThreadPresenter.java +++ b/Clover/app/src/main/java/org/floens/chan/core/presenter/ThreadPresenter.java @@ -708,7 +708,7 @@ public class ThreadPresenter implements ChanLoader.ChanLoaderCallback, PostAdapt History history = new History(); history.loadable = loadable; PostImage image = chanLoader.getThread().op.image; - history.thumbnailUrl = image == null ? "" : image.thumbnailUrl.toString(); + history.thumbnailUrl = image == null ? "" : image.getThumbnailUrl().toString(); databaseManager.runTaskAsync(databaseManager.getDatabaseHistoryManager().addHistory(history)); } } diff --git a/Clover/app/src/main/java/org/floens/chan/core/site/common/FutabaChanReader.java b/Clover/app/src/main/java/org/floens/chan/core/site/common/FutabaChanReader.java index b45776bd..8ef90afa 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/site/common/FutabaChanReader.java +++ b/Clover/app/src/main/java/org/floens/chan/core/site/common/FutabaChanReader.java @@ -219,13 +219,13 @@ public class FutabaChanReader implements ChanReader { SiteEndpoints endpoints = queue.getLoadable().getSite().endpoints(); if (fileId != null && fileName != null && fileExt != null) { - Map hack = new HashMap<>(2); - hack.put("tim", fileId); - hack.put("ext", fileExt); + Map args = makeArgument("tim", fileId, + "ext", fileExt); builder.image(new PostImage.Builder() .originalName(String.valueOf(fileId)) - .thumbnailUrl(endpoints.thumbnailUrl(builder, fileSpoiler, hack)) - .imageUrl(endpoints.imageUrl(builder, hack)) + .thumbnailUrl(endpoints.thumbnailUrl(builder, false, args)) + .spoilerThumbnailUrl(endpoints.thumbnailUrl(builder, true, args)) + .imageUrl(endpoints.imageUrl(builder, args)) .filename(Parser.unescapeEntities(fileName, false)) .extension(fileExt) .imageWidth(fileWidth) 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 a3a74068..3141ec03 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 @@ -397,7 +397,7 @@ public class ImageViewerController extends Controller implements ImageViewerPres } }); - imageLoader.get(postImage.thumbnailUrl.toString(), new ImageLoader.ImageListener() { + imageLoader.get(postImage.getThumbnailUrl().toString(), new ImageLoader.ImageListener() { @Override public void onErrorResponse(VolleyError error) { Log.e(TAG, "onErrorResponse for preview in transition in ImageViewerController, cannot show correct transition bitmap"); @@ -419,7 +419,7 @@ public class ImageViewerController extends Controller implements ImageViewerPres return; } - imageLoader.get(postImage.thumbnailUrl.toString(), new ImageLoader.ImageListener() { + imageLoader.get(postImage.getThumbnailUrl().toString(), new ImageLoader.ImageListener() { @Override public void onErrorResponse(VolleyError error) { Log.e(TAG, "onErrorResponse for preview out transition in ImageViewerController, cannot show correct transition bitmap"); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/MediaSettingsController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/MediaSettingsController.java index 66b10d55..bbc761f2 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/MediaSettingsController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/MediaSettingsController.java @@ -110,7 +110,8 @@ public class MediaSettingsController extends SettingsController { media.add(new BooleanSettingView(this, ChanSettings.revealImageSpoilers, - R.string.settings_reveal_image_spoilers, 0)); + R.string.settings_reveal_image_spoilers, + R.string.settings_reveal_image_spoilers_description)); groups.add(media); } diff --git a/Clover/app/src/main/java/org/floens/chan/ui/view/MultiImageView.java b/Clover/app/src/main/java/org/floens/chan/ui/view/MultiImageView.java index 5c1a631a..c54b444c 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/view/MultiImageView.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/view/MultiImageView.java @@ -128,7 +128,7 @@ public class MultiImageView extends FrameLayout implements View.OnClickListener public boolean onMeasured(View view) { switch (newMode) { case LOWRES: - setThumbnail(postImage.thumbnailUrl.toString()); + setThumbnail(postImage.getThumbnailUrl().toString()); break; case BIGIMAGE: setBigImage(postImage.imageUrl.toString()); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/view/PostImageThumbnailView.java b/Clover/app/src/main/java/org/floens/chan/ui/view/PostImageThumbnailView.java index 87e111d5..1c3b43e6 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/view/PostImageThumbnailView.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/view/PostImageThumbnailView.java @@ -52,7 +52,7 @@ public class PostImageThumbnailView extends ThumbnailView { this.postImage = postImage; if (postImage != null) { - setUrl(postImage.thumbnailUrl.toString(), width, height); + setUrl(postImage.getThumbnailUrl().toString(), width, height); } else { setUrl(null, width, height); } diff --git a/Clover/app/src/main/res/values/strings.xml b/Clover/app/src/main/res/values/strings.xml index 7adc1b35..ad9afeb1 100644 --- a/Clover/app/src/main/res/values/strings.xml +++ b/Clover/app/src/main/res/values/strings.xml @@ -514,7 +514,7 @@ Re-enable this permission in the app settings if you permanently disabled it."Share url to image Share the url to the image instead of the image itself Reveal image spoilers - + Always reveal spoiler thumbnails and images. Media loading