From 76fbe098ce7f788c383d9777e591de4b1295de69 Mon Sep 17 00:00:00 2001 From: Florens Douwes Date: Fri, 9 May 2014 23:43:18 +0200 Subject: [PATCH] Added support for spoiler text. --- .../org/floens/chan/core/manager/ThreadManager.java | 2 ++ Clover/src/org/floens/chan/core/model/Post.java | 10 ++++++++++ .../src/org/floens/chan/core/model/PostLinkable.java | 12 +++++++++--- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/Clover/src/org/floens/chan/core/manager/ThreadManager.java b/Clover/src/org/floens/chan/core/manager/ThreadManager.java index 2a859ad1..156cbfec 100644 --- a/Clover/src/org/floens/chan/core/manager/ThreadManager.java +++ b/Clover/src/org/floens/chan/core/manager/ThreadManager.java @@ -404,6 +404,8 @@ public class ThreadManager implements Loader.LoaderListener { } else { openLink(linkable); } + } else if (linkable.type == PostLinkable.Type.SPOILER) { + new AlertDialog.Builder(activity).setMessage(linkable.value).show(); } } diff --git a/Clover/src/org/floens/chan/core/model/Post.java b/Clover/src/org/floens/chan/core/model/Post.java index d2e22062..ded37e0c 100644 --- a/Clover/src/org/floens/chan/core/model/Post.java +++ b/Clover/src/org/floens/chan/core/model/Post.java @@ -279,6 +279,16 @@ public class Post { } } + total = TextUtils.concat(total, link); + } else if (nodeName.equals("s")) { + Element spoiler = (Element) node; + + SpannableString link = new SpannableString(spoiler.text()); + + PostLinkable pl = new PostLinkable(this, spoiler.text(), spoiler.text(), Type.SPOILER); + link.setSpan(pl, 0, link.length(), 0); + linkables.add(pl); + total = TextUtils.concat(total, link); } else { // Unknown tag, add the inner part diff --git a/Clover/src/org/floens/chan/core/model/PostLinkable.java b/Clover/src/org/floens/chan/core/model/PostLinkable.java index 843fbe5d..2cf48de4 100644 --- a/Clover/src/org/floens/chan/core/model/PostLinkable.java +++ b/Clover/src/org/floens/chan/core/model/PostLinkable.java @@ -27,7 +27,7 @@ import android.view.View; */ public class PostLinkable extends ClickableSpan { public static enum Type { - QUOTE, LINK + QUOTE, LINK, SPOILER }; public final Post post; @@ -51,7 +51,13 @@ public class PostLinkable extends ClickableSpan { @Override public void updateDrawState(TextPaint ds) { - ds.setColor(type == Type.QUOTE ? Color.argb(255, 221, 0, 0) : Color.argb(255, 0, 0, 180)); - ds.setUnderlineText(true); + if (type == Type.QUOTE || type == Type.LINK) { + ds.setColor(type == Type.QUOTE ? Color.argb(255, 221, 0, 0) : Color.argb(255, 0, 0, 180)); + ds.setUnderlineText(true); + } else if (type == Type.SPOILER) { + ds.setColor(0x00000000); + ds.bgColor = 0xff000000; + ds.setUnderlineText(false); + } } }